Functional Programming Interface for Parallel and Distributed Computing

Ivan Petriakov, Ivan Gankevich

There are many programming frameworks and languages for parallel and distributed computing which are successful both in industry and academia, however, all of them are isolated and self-contained. We believe that the main reason that there is no common denominator between them is that there is no intermediate representation for distributed computations. For sequential computations we have bytecode that is used as an intermediate, portable and universal representation of a programme written in any language, but bytecode lacks an ability to describe process communication. If we add this feature, we get low-level representation on top of which all the frameworks and languages for parallel and distributed computations can be built. In this paper we explore how such intermediate representation can be made, how it can reduce programming effort and how it may simplify internal structure of existing frameworks. We also demonstrate how high-level interface can be build for a functional language that completely hides all the difficulties that a programmer encounters when he or she works with distributed systems.

  title={Functional Programming Interface for Parallel and Distributed Computing},
  author={Ivan Petriakov and Ivan Gankevich},
  booktitle={Proceedings of ICCSA'21},
  editor={Gervasi, Osvaldo and Murgante, Beniamino and Misra, Sanjay and Garau, Chiara and Bleci\'c, Ivan and Taniar, David and Apduhan, Bernady O. and Rocha, Ana Maria A. C. and Tarantino, Eufemia and Torre, Carmelo Maria},

Publication: Proceedings of ICCSA'21
Publisher: Springer