Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/1411273.1411281acmconferencesArticle/Chapter ViewAbstractPublication PagesicfpConference Proceedingsconference-collections
research-article

High-performance technical computing with erlang

Published: 27 September 2008 Publication History

Abstract

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.

Supplementary Material

JPG File (1411281.jpg)
index.html (index.html)
Slides from the presentation
Audio only (1411281.mp3)
Video (1411281.mp4)

References

[1]
Advanced Micro DevicesTM, Inc. AMD Core Math Library (ACML). http://developer.amd.com/cpu/Libraries/acml.
[2]
E. Anderson, Z. Bai, J. Dongarra, A. Greenbaum, A. McKenney, J. Du Croz, S. Hammarling, J. Demmel, C. Bischof, and D. Sorensen. LAPACK: a portable linear algebra library for high-performance computers. In Supercomputing '90: Proceedings of the 1990 ACM/IEEE conference on Supercomputing, pages 2--11, Washington, DC, USA, 1990. IEEE Computer Society.
[3]
Argonne National Laboratory. MPICH2: an high-performance, portable implementation of the MPI standard. http://www.mcs.anl.gov/research/projects/mpich2.
[4]
David M. Beazley. SWIG: an easy to use tool for integrating scripting languages with C and C++. In TCLTK'96: Proceedings of the 4th conference on USENIX Tcl/Tk Workshop, Berkeley, CA, USA, 1996. USENIX Association.
[5]
R. Carlsson. An introduction to Core Erlang. In Proceedings of the PLI'01 Erlang Workshop, September 2001.
[6]
Richard Carlsson, Björn Gustavsson, Erik Johansson, Thomas Lindgren, Sven-Olof Nyström, Mikael Petterson, and Robert Virding. Core Erlang 1.0.3 language specification, 2004. http://www.it.uu.se/research/group/hipe/cerl/doc/core_erlang-1.0.3.pdf.
[7]
M. D. Compere and R. G. Longoria. Combined DAE and sliding mode control methods for simulation of constrained mechanical systems. Journal of dynamic systems, measurement and control, 122:691--697, December 2000.
[8]
Ron Cytron, Jeanne Ferrante, Barry K. Rosen, Mark N. Wegman, and F. Kenneth Zadeck. Efficiently computing static single assignment form and the control dependence graph. ACM Transactions on Programming Languages and Systems (TOPLAS), 13(4):451--490, 1991.
[9]
Jack Dongarra. Preface: Basic Linear Algebra Subprograms Technical (Blast) Forum Standard I. International Journal of High Performance Applications and Supercomputing, 16(1):1--111, Spring 2002.
[10]
Jack Dongarra. Preface: Basic Linear Algebra Subprograms Technical (Blast) Forum Standard II. International Journal of High Performance Applications and Supercomputing, 16(2):115--199, Summer 2002.
[11]
John W. Eaton. GNU Octave numerical computation language. http://www.gnu.org/software/octave/.
[12]
Ericsson ABTM. Erlang efficiency guide: Constructing and matching binaries, 2008.
[13]
Scott Lystig Fritchie. The evolution of Erlang drivers and the Erlang driver toolkit. In ERLANG '02: Proceedings of the 2002 ACM SIGPLAN workshop on Erlang, pages 34--44, New York, NY, USA, 2002. ACM.
[14]
Dan Gudmundsson. ESDL, a SDL and OpenGLTM driver for Erlang/OTP. http://esdl.sourceforge.net.
[15]
Dan Gudmundsson. wxErlang, an Erlang binding to wxWidgets. http://www.erlang.org/~dgud/wxerlang/.
[16]
IntelTM Corporation. IntelTM Math kernel library. http://www.intel.com/cd/software/products/asmo-na/eng/266858.htm.
[17]
Pramod G. Joisha, Abhay Kanhere, Prithviraj Banerjee, U. Nagaraj Shenoy, and Alok Choudhary. The design and implementation of a parser and scanner for the MATLAB language in the MATCH compiler. Technical Report CPDCTR9909017, Center for Parallel and Distributed Computing, Electrical and Computer Engineering Department, Technological Institute, 2145 Sheridan Road, Northwestern University, IL 602083118, September 1999.
[18]
Romain Lenglet and Shigeru Chiba. Dryverl: a flexible Erlang/C binding compiler. In ERLANG '06: Proceedings of the 2006 ACM SIGPLAN workshop on Erlang, pages 21--31, New York, NY, USA, 2006. ACM.
[19]
Robert M. Love. The taskset on-line manpage from the Linux™ User manual. http://www.linuxcommand.org/man_pages/taskset1.html.
[20]
Message Passing Interface Forum (MPIF). MPI: A message-passing interface standard. Technical Report UT-CS-94-230, University of Tennessee, 1994.
[21]
Message Passing Interface Forum (MPIF). MPI-2: Extensions to the message-passing interface. Technical report, University of Tennessee, 1996.
[22]
National Instruments™. The LabVIEWTM Development environment. http://www.ni.com/labview/.
[23]
NumPy development team. NumPy, numerical package for python. http://numpy.scipy.org/.
[24]
Alceste Scalas. Erlang enhancement proposal 7: Foreign function interface, September 2007. http://erlang.org/eeps/eep-0007.html.
[25]
Alceste Scalas. Home page of the foreign function interface (FFI) for Erlang/OTP, 2008. http://muvara.org/crs4/erlang/ffi/.
[26]
V. S. Sunderam. PVM: a framework for parallel distributed computing. Concurrency, Practice and Experience, 2(4):315--340, 1990.
[27]
The Mathworks™. Matlab™: the language of technical computing. http://www.mathworks.com/products/matlab/.
[28]
The Mathworks™. Simulink™ : Simulation and model-based design. http://www.mathworks.com/products/simulink/.
[29]
John W. Tukey. Exploratory data analysis. Behavioral Science: Quantitative Methods. Addison-Wesley, Reading, Massachusetts, 1977.
[30]
R. Clint Whaley and Jack J. Dongarra. Automatically tuned linear algebra software. Technical Report UT-CS-97-366, University of Tennessee, 1997.

Cited By

View all
  • (2013)Using many-core coprocessor to boost up Erlang VMProceedings of the twelfth ACM SIGPLAN workshop on Erlang10.1145/2505305.2505307(3-14)Online publication date: 28-Sep-2013
  • (2013)Erlang as a Language for Cloud Computing and Its Integration with Many-core CoprocessorProceedings of the 2013 International Conference on Cloud and Service Computing10.1109/CSC.2013.9(1-8)Online publication date: 4-Nov-2013

Recommendations

Reviews

Kai Diethelm

Erlang/Open Telecom Platform (OTP) is a runtime system that has been successfully used in specialized application areas like telecommunications for quite a few years. It is, however, almost unknown to people working in most other areas of computer science. Despite its obscurity, Erlang/OTP has features that are highly desirable in some areas of high-performance technical computing, such as networking, process distribution, concurrency, interprocess communication, and fault tolerance. Therefore, it seems natural to investigate if and how Erlang/OTP can be used in such applications. In order for such an attempt to be accepted by the scientific computing community, it is indispensable to combine Erlang/OTP with well-known, documented, and tested standard libraries like basic linear algebra subprograms (BLAS). Thus, one needs to replace the commonly used elements of high-performance computing environments like parallel virtual machine (PVM) or message passing interface standard (MPI) with Erlang/OTP, and try to leave the mathematical parts of the system unchanged. It turns out that such a path is indeed viable, and that the resulting performance is surprisingly good in many typical applications. Online Computing Reviews Service

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
ERLANG '08: Proceedings of the 7th ACM SIGPLAN workshop on ERLANG
September 2008
96 pages
ISBN:9781605580654
DOI:10.1145/1411273
  • General Chair:
  • Tee Teoh,
  • Program Chair:
  • Zoltán Horváth
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 27 September 2008

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. erlang
  2. hpc
  3. numerical applications

Qualifiers

  • Research-article

Conference

ICFP08
Sponsor:

Acceptance Rates

ERLANG '08 Paper Acceptance Rate 9 of 10 submissions, 90%;
Overall Acceptance Rate 51 of 68 submissions, 75%

Upcoming Conference

ICFP '25
ACM SIGPLAN International Conference on Functional Programming
October 12 - 18, 2025
Singapore , Singapore

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)8
  • Downloads (Last 6 weeks)0
Reflects downloads up to 16 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2013)Using many-core coprocessor to boost up Erlang VMProceedings of the twelfth ACM SIGPLAN workshop on Erlang10.1145/2505305.2505307(3-14)Online publication date: 28-Sep-2013
  • (2013)Erlang as a Language for Cloud Computing and Its Integration with Many-core CoprocessorProceedings of the 2013 International Conference on Cloud and Service Computing10.1109/CSC.2013.9(1-8)Online publication date: 4-Nov-2013

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media