High-performance technical computing with erlang

Alceste Scalas*, Giovanni Casu, Piero Pili

*Corresponding author for this work

Research output: Chapter in Book/Published conference outputConference publication


High-performance Technical Computing (HPTC) is a branch of HPC (High-performance Computing) that deals with scientific applications, such as physics simulations. Due to its numerical nature, it has been traditionally based on low-level or mathematically-oriented languages (C, C++, Fortran), extended with libraries that implement remote execution and inter-process communication (like MPI and PVM). But those libraries just provide what Erlang does out-of-the-box: networking, process distribution, concurrency, interprocess communication and fault tolerance. So, is it possible to use Erlang as a foundation for developing HPTC applications? This paper shows our experiences in using Erlang for distributed number-crunching systems. We introduce two extensions: a simple and efficient foreign function interface (FFI), and an Erlang binding for numerical libraries. We use them as a basis for developing a simple mathematically-oriented programming language (in the style of Matlab™) compiled into Core Erlang. These tools are later used for creating a HPTC framework (based on message-passing) and an IDE for distributed applications. The results of this research and development show that Erlang/OTP can be used as a platform for developing large and scalable numerical applications.

Original languageEnglish
Title of host publicationErlang'08
Subtitle of host publicationProceedings of the 2008 SIGPLAN Erlang Workshop
Number of pages12
Publication statusPublished - 1 Dec 2008
Event7th ACM SIGPLAN Erlang Workshop, Erlang'08 - Victoria, BC, Canada
Duration: 27 Sep 200827 Sep 2008


Conference7th ACM SIGPLAN Erlang Workshop, Erlang'08
CityVictoria, BC


  • Erlang
  • HPC
  • Numerical applications


Dive into the research topics of 'High-performance technical computing with erlang'. Together they form a unique fingerprint.

Cite this