Implementation of Parallel Algorithms

  • Sergei Kurgalin
  • Sergei Borzunov


In many cases, the development of an efficient parallel algorithm for the solution of some problem requires new ideas and methods in comparison with the creation of a sequential version of the algorithm. Examples are the practically important problems of searching for a target element in a data structure and of computation of the value of an algebraic expression. The present chapter discusses algorithms for array element summation and data sorting.


  1. 1.
    Akl, S.G.: The Design and Analysis of Parallel Algorithms. Prentice Hall, Upper Saddle River (1989)Google Scholar
  2. 10.
    Breshears, C.: The Art of Concurrency. O’Reilly, Beijing (2009)Google Scholar
  3. 11.
    Casanova, H., Legrand, A., Robert, Y.: Parallel Algorithms. Chapman & Hall/CRC Numerical Analysis and Scientific Computing Series. CRC Press, Boca Raton (2008)CrossRefGoogle Scholar
  4. 18.
    Dow, M.: Transposing a matrix on a vector computer. Parallel Comput. 21, 1997–2005 (1995)MathSciNetCrossRefGoogle Scholar
  5. 30.
    Hibbard, T.N.: An empirical study of minimal storage sorting. Commun. ACM 6(5), 206–213 (1963)CrossRefGoogle Scholar
  6. 34.
    Knuth, D.E.: The Art of Computer Programming, vol. 3. Seminumerical Algorithms, 2nd edn. Addison-Wesley, Boston (1998)Google Scholar
  7. 38.
    Kurgalin, S., Borzunov, S.: The Discrete Math Workbook: A Companion Manual for Practical Study. Texts in Computer Science. Springer, Berlin (2018)CrossRefGoogle Scholar
  8. 39.
    Lagarias, J.C. (ed.): The Ultimate Challenge: The 3x+1 Problem. American Mathematical Society, Providence (2010)zbMATHGoogle Scholar
  9. 41.
    Linux Man-Pages Project: Linux Programmer’s Manual, Drand48_r(3) (2018).
  10. 42.
    McConnell, J.J.: Analysis of Algorithms: An Active Learning Approach, 2nd edn. Jones and Bartlett, Burlington (2008)Google Scholar
  11. 45.
    Miller, R., Boxer, L.: Algorithms Sequential and Parallel: A Unified Approach, 3rd edn. Cengage Learning, Boston (2013)Google Scholar
  12. 52.
    Ortega, J.M.: Introduction to Parallel and Vector Solution of Linear Systems. Frontiers in Computer Science. Springer, Berlin (1988)CrossRefGoogle Scholar
  13. 53.
    Pacheco, P.S.: An Introduction to Parallel Programming. Elsevier, Amsterdam (2011)Google Scholar
  14. 56.
    Pratt, V.R.: Shellsort and Sorting Networks. Outstanding Dissertations in the Computer Sciences. Garland, New York (1979)Google Scholar
  15. 57.
    Press, W.H., Teukolsky, S.A., Vetterling, W.T., Flannery, B.P.: Numerical Recipes: The Art of Scientific Computing, 3rd edn. Cambridge University Press, Cambridge (2007)zbMATHGoogle Scholar
  16. 58.
    Quinn, M.J.: Parallel Programming in C with MPI and OpenMP. McGraw-Hill Higher Education, Boston (2004)Google Scholar
  17. 65.
    Sedgewick, R.: A new upper bound for shellsort. J. Algorithms 7(2), 159–173 (1986)MathSciNetCrossRefGoogle Scholar
  18. 66.
    Sedgewick, R.: Algorithms in C, 3rd edn. Addison-Wesley, Boston (1998)zbMATHGoogle Scholar
  19. 68.
    Shell, D.L.: A high-speed sorting procedure. Commun. ACM 2(7), 30–32 (1959)CrossRefGoogle Scholar
  20. 77.
    Voevodin, V.V.: Mathematical Foundations of Parallel Computing. World Scientific Series in Computer Science, vol. 33. World Scientific, Singapore (1992)Google Scholar
  21. 81.
    Wilkinson, B., Allen, M.: Parallel Programming Techniques and Applications Using Networked Workstations and Parallel Computers, 2nd edn. Pearson Prentice Hall, Upper Saddle River (2004)Google Scholar

Copyright information

© Springer Nature Switzerland AG 2019

Authors and Affiliations

  • Sergei Kurgalin
    • 1
  • Sergei Borzunov
    • 1
  1. 1.Department of Digital TechnologiesVoronezh State UniversityVoronezhRussia

Personalised recommendations