Abstract
This study describes a Scheme library, named Orca, which is used to compute symbolic expressions in parallel via remote evaluation based on the message-passing interface (MPI) standard. Today, MPI is one of the most used standards, in particular high-performance computing systems. However, MPI programmers are explicitly required to deal with many complexities that render MPI programming hard to reason about. We designed and implemented a set of new APIs to alleviate this complexity by taking advantage of the expressive power of Scheme language using remote evaluation techniques on MPI systems. We introduce the application programming interface (API) of the library and evaluate the implemented model on a real-world application of a common parallel algorithm. Our experiments show that it is practical and useful for a variety of applications to exploit multiple processors of a distributed-memory architecture.
A. A. Yıldırım—Independent Researcher
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Brown, J.R., Nelson, E.C.: Functional programming. Technical report, TRW DEFENSE AND SPACE SYSTEMS GROUP REDONDO BEACH CALIF (1978)
Clamen, S.M., Leibengood, L.D., Nettles, S.M., Wing, J.M.: Reliable distributed computing with avalon/common lisp. In: Proceedings 1990 International Conference on Computer Languages, pp. 169–179 (1990)
Dalcín, L., Paz, R., Storti, M.: MPI for python. J. Parallel Distrib. Comput. 65(9), 1108–1115 (2005)
Forejt, V., Joshi, S., Kroening, D., Narayanaswamy, G., Sharma, S.: Precise predictive analysis for discovering communication deadlocks in MPI programs. ACM Trans. Program. Lang. Syst. 39(4) (2017)
Foster, I.: Task parallelism and high-performance languages. IEEE Parallel Distrib. Technol. Syst. Appl. 2(3), 27 (1994)
Free Software Foundation (2020). Accessed 21 June 2020
Gregor, B., Troyer, M.: (2020). Accessed 21 June 2020
Gropp, W., Lusk, E., Skjellum, A.: Portable Parallel Programming with the Message-Passing Interface. The MIT Press, Using MPI (2014)
Hammond, K.: Why parallel functional programming matters: panel statement. In International Conference on Reliable Software Technologies, pp. 201–205. Springer (2011)
Haque, W.: Concurrent deadlock detection in parallel programs. Int. J. Comput. Appl. 28(1), 19–25 (2006)
Hughes, J.: Why functional programming matters. Comput. J. 32(2), 98–107 (1989)
Jones, M.P., Hudak, P.: Implicit and explicit parallel programming in haskell. Disponível por FTP em nebula. systemsz. cs. yale. edu/pub/yale-fp/reports/RR-982. ps. Z (julho de 1999) (1993)
Luecke, G.R., Zou, Y., Coyle, J., Hoekstra, J., Kraeva, M.: Deadlock detection in MPI programs. Concurrency Comput. Pract. Exper. 14(11), 911–932 (2002)
McCarthy, J., Levin, M.I.: LISP 1.5 programmer’s manual. MIT Press, Cambridge (1965)
Message Passing Interface Forum. MPI: A message-passing interface standard, version 3.1. Specification, June 2015
Murthy, V.K., Krishnamurthy, E.V.: Software pattern design for cluster computing. In: Proceedings International Conference on Parallel Processing Workshop, pp. 360–367 (2002)
Ong, E.: MPI ruby: scripting in a parallel environment. Comput. Sci. Eng. 4(4), 78–82 (2002)
Peter, S.: Pacheco. Parallel Programming with MPI. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA (1996)
Smith, L.A.: Mixed mode MPI/OpenMP programming. UK High-End Computing Technology Report, pp. 1–25 (2000)
Stamos, J.W., Gifford, D.K.: Remote evaluation. ACM Trans. Program. Lang. Syst. 12(4), 537–564 (1990)
Sussman, G.J., Steele, G.L.: Scheme: a interpreter for extended lambda calculus. High.-Order Symb. Comput. 11(4), 405–439 (1998)
Wilbur, S., Bacarisse, B.: Building distributed systems with remote procedure call. Softw. Eng. J. 2(5), 148–159 (1987)
Yoo, A.B., Jette, M.A., Grondona, M.: Slurm: simple linux utility for resource management. In: Workshop on Job Scheduling Strategies for Parallel Processing, pp. 44–60. Springer (2003)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2022 The Author(s), under exclusive license to Springer Nature Switzerland AG
About this paper
Cite this paper
Yıldırım, A.A. (2022). Orca: A Software Library for Parallel Computation of Symbolic Expressions via Remote Evaluation on MPI Systems. In: Arai, K. (eds) Intelligent Computing. Lecture Notes in Networks and Systems, vol 283. Springer, Cham. https://doi.org/10.1007/978-3-030-80119-9_10
Download citation
DOI: https://doi.org/10.1007/978-3-030-80119-9_10
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-80118-2
Online ISBN: 978-3-030-80119-9
eBook Packages: Intelligent Technologies and RoboticsIntelligent Technologies and Robotics (R0)