Orgel: An Parallel Programming Language with Declarative Communication Streams
Because of the irregular and dynamic data structures, parallel programming in non-numerical field often requires asynchronous and unspecific number of messages. Such programs are hard to write using MPI/Pthreads, and many new parallel languages, designed to hide messages under the runtime system, suffer from the execution overhead. Thus, we propose a parallel programming language Orgel that enables brief and efficient programming. An Orgel program is a set of agents connected with abstract channels called streams. The stream connections and messages are declaratively specified, which prevents bugs due to the parallelization, and also enables effective optimization. The computation in each agent is described in usual sequential language, thus efficient execution is possible. The result of evaluation shows the overhead of concurrent switching and communication in Orgel is only 1.2 and 4.3 times larger than that of Pthreads, respectively. In the parallel execution, we obtained 6.5-10 times speedup with 11-13 processors.
KeywordsParallel Programming Parallel Execution Agent Type Stream Type Runtime System
Unable to display preview. Download preview PDF.
- Message Passing Interface Forum. MPI: A Message-Passing Interface Standard,June1995. 345Google Scholar
- B. Nichols, D. Buttlar, and J. P. Farrell. Pthreads Programming. O'REILLY, 1998.345, 351Google Scholar
- K. Ohno, M. Ikawa, M. Goshima, S. Mori, H. Nakashima, and S. Tomita. Improvementof message communication in concurrent logic language. In Proceeding of theSecond International Symposium on Parallel Symbolic Computation PASCO’97,pp. 156–164, 1997. 345Google Scholar
- K. Ohno, M. Ikawa, M. Goshima, S. Mori, H. Nakashima, and S. Tomita. Efficient goal scheduling in concurrent logic language using type-based dependencyanalysis. In LNCS1345 Advances in Computing Science — ASIAN’97, pp. 268–282. Springer-Verlag, 1997. 345Google Scholar
- T. Chikayama, T Fujise, and D. Sekita. KLIC User’s Manual. ICOT, March1995.346Google Scholar
- ICOTTM-1206. Introduction of AY A (version 1.0) (in Japanese). 348Google Scholar