What Do We Need to Know About Parallel Algorithms and Their Efficient Implementation?

The computing world is changing and all devices—from mobile phones and personal computers to high-performance supercomputers—are becoming parallel. At the same time, the efficient usage of all the opportunities offered by modern computing systems represents a global challenge. Using full potential o...

Full description

Saved in:
Bibliographic Details
Published inTopics in Parallel and Distributed Computing pp. 23 - 58
Main Authors Voevodin, Vladimir, Antonov, Alexander, Voevodin, Vadim
Format Book Chapter
LanguageEnglish
Published Cham Springer International Publishing 2018
Online AccessGet full text
ISBN9783319931081
3319931083
DOI10.1007/978-3-319-93109-8_2

Cover

More Information
Summary:The computing world is changing and all devices—from mobile phones and personal computers to high-performance supercomputers—are becoming parallel. At the same time, the efficient usage of all the opportunities offered by modern computing systems represents a global challenge. Using full potential of parallel computing systems and distributed computing resources requires new knowledge, skills and abilities, where one of the main roles belongs to understanding key properties of parallel algorithms. What are these properties? What should be discovered and expressed explicitly in existing algorithms when a new parallel architecture appears? How to ensure efficient implementation of an algorithm on a particular parallel computing platform? All these as well as many other issues are addressed in this chapter. The idea that we use in our educational practice is to split a description of an algorithm into two parts. The first part describes algorithms and their properties. The second part is dedicated to describing particular aspects of their implementation on various computing platforms. This division is made intentionally to highlight the machine-independent properties of algorithms and to describe them separately from a number of issues related to the subsequent stages of programming and executing the resulting programs.
ISBN:9783319931081
3319931083
DOI:10.1007/978-3-319-93109-8_2