Orgel: An Parallel Programming Language with Declarative Communication Streams

  • Kazuhiko Ohno
  • Shigehiro Yamamoto
  • Takanori Okano
  • Hiroshi Nakashima
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1940)


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.


Parallel Programming Parallel Execution Agent Type Stream Type Runtime System 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [1]
    V. S. Sunderam. PVM: A framework for parallel distributed computing. Concurrency:Practice and Experience 2, Vol. 2, No. 4, pp. 315–339, December 1990.345CrossRefGoogle Scholar
  2. [2]
    Message Passing Interface Forum. MPI: A Message-Passing Interface Standard,June1995. 345Google Scholar
  3. [3]
    B. Nichols, D. Buttlar, and J. P. Farrell. Pthreads Programming. O'REILLY, 1998.345, 351Google Scholar
  4. [4]
    K. Ueda and T. Chikayama. Design of the kernel language for the parallel inferencemachine. The Computer Journal, Vol. 33, No. 6, pp. 494–500, 1990. 345CrossRefMathSciNetGoogle Scholar
  5. [5]
    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
  6. [6]
    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
  7. [7]
    Y. Shoham. Agent-oriented programming. Artificial Intelligence, Vol. 60, pp. 51–92, 1993. 346CrossRefMathSciNetGoogle Scholar
  8. [8]
    G. Agha. Concurrent object-oriented programming. Communications of the ACM, Vol. 33, No. 9, pp. 125–141, September 1990. 346CrossRefGoogle Scholar
  9. [9]
    T. Chikayama, T Fujise, and D. Sekita. KLIC User’s Manual. ICOT, March1995.346Google Scholar
  10. [10]
    K. Yoshida and T. Chikayama. aum — a stream-based concurrent object-orientedlanguage —. New Generation Computing, Vol. 7, No. 2, pp. 127–157, 1990. 348CrossRefGoogle Scholar
  11. [11]
    ICOTTM-1206. Introduction of AY A (version 1.0) (in Japanese). 348Google Scholar
  12. [12]
    G. A. Alverson, W. G. Griswold, C. Lin, D. Notkin, and L. Snyder. Abstractionsfor portable, scalable parallel programming. IEEE Transactions on Parallel andDistributed Systems, Vol. 9, No. 1, pp. 71–86, January 1998. 348CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2000

Authors and Affiliations

  • Kazuhiko Ohno
    • 1
  • Shigehiro Yamamoto
    • 1
  • Takanori Okano
    • 2
  • Hiroshi Nakashima
    • 1
  1. 1.Toyohashi University of TechnologyToyohashiJapan
  2. 2.Hitachi Systems & Services, Ltd.Japan

Personalised recommendations