This Article 
 Bibliographic References 
 Add to: 
Molecule: A Language Construct for Layered Development of Parallel Programs
May 1989 (vol. 15 no. 5)
pp. 587-599

A new language construct, called molecule, is described for the efficient implementation of algorithms on parallel computers. A molecule can be considered a procedure associated with a molecule type. Each molecule type characterizes a particular computation mode (sequential, pipelining, array processing, dataflow, multiprocessing, etc.). Basic concepts of molecule are introduced with a procedural language, called PAL. A concrete example is presented to illustrate layered software development using PAL on a multicomputer (the iPSC). It is concluded that high-level languages, augmented with the molecule construct, offer application flexibility, user friendliness, and efficiency in implementing parallel programs.

[1] W. Abu-Sufah and A. D. Malony, "Vector processing on the Alliant FX/8 multiprocessor," inProc. 1986 Int. Conf. Parallel Processing, Aug. 1986, pp. 559-566.
[2] W. B. Ackerman, "Data flow languages,"IEEE Comput., vol. 15, pp. 15-25, Feb. 1982.
[3] W.B. Ackerman and J.B. Dennis,VAL--A Value-Oriented Algorithmic Language: Preliminary Reference Manual, MIT Laboratory for Computer Science Technical Report, MIT/LCS/TR-218, Cambridge, Mass., June 1979.
[4] K. P. Gostelow Arvind and W. E. Plouffe, "An asynchronous programming language and computing machine," Dep. Inform. Comput. Sci., Univ. Calif., Irvine, CA, Dec. 1978.
[5] B.R. Rau, "Cydra 5 Directed Dataflow Architecture,"Proc. Compcon Spring 88, No. 828, Computer Society Press, Los Alamitos, Calif., pp. 106-113.
[6] K. E. Batcher, "Design of a massive parallel processor,"IEEE Trans. Comput., vol. C-29, pp. 836-840, Sept. 1980.
[7] iPSC Concurrent Processor Manual, Intel Corp., 1986.
[8] Multitasking User Guide, Cray Research, Inc., Tech. Note SN-0222, Feb. 1984.
[9] D. Lawrie, D. D. Gajski, D. J. Kuck, and A. Sameh, "Cedar," inCOMPCON, Spring 1984, pp. 36-39.
[10] E. W. Dijkstra, "Cooperating sequential processes," inProgramming Languages, F. Genuys, Ed. New York: Academic, 1968.
[11] J. A. Feldman, "High level programming for distributed computing,"Commun. ACM, vol. 22, pp. 353-368, June 1979.
[12] D. Gelernter, "Domesticating parallelism,"IEEE Comput., vol. 19, pp. 12-16, Aug. 1986.
[13] S. Hawkinson, "The FPS T Series: A parallel vector super computer," inMultiprocessors and Array Processors, W. J. Karplus, ed, San Diego, CA: Simulation Councils, Jan. 1987.
[14] W. D. Hillis,The Connection Machine. Cambridge, MA: MIT Press, 1985.
[15] K. Hwang, "Advanced parallel processing with supercomputer architectures,"Proc. IEEE, vol. 75, pp. 1348-1379, Oct. 1987.
[16] K. Hwang and F. A. Briggs,Computer Architecture and Parallel Processing. New York: McGraw-Hill, 1984.
[17] K. Hwang and Y. H. Cheng, "Partitioned matrix algorithms for VLSI arithmetic systems,"IEEE Trans. Comput., vol. C-31, pp. 1215- 1224, Dec. 1982.
[18] K. Hwang and D. Degroot,Parallel Processing for Supercomputers and Artificial Intelligence. New York: McGraw-Hill, 1989.
[19] K. Hwang and S. P. Su, "Priority scheduling in event-driven data-flow computers," School Elec. Eng., Purdue Univ., West Lafayette, IN, Tech. Rep. TR-EE 83-36, 1983.
[20] K. Hwang and Z. Xu, "Pipeline nets for compound vector supercomputing,"IEEE Trans. Comput., vol. C-37, pp. 33-47, Jan. 1988.
[21] A.H. Karp, "Programming for Parallelism,"Computer, Vol. 20, No. 5, May 1987, pp. 43- 57.
[22] R. M. Karp and R. E. Miller, "Properties of a model for parallel computations: Determinacy, termination, and queueing,"SIAM J. Appl. Math., vol. 14, no. 6, pp. 1390-1411, Nov. 1966.
[23] W. J. Karplus,Multiprocessors and Array Processors. San Diego, CA: Simulation Councils, Jan. 1987.
[24] B. W. Kernighan and D. M. Ritchie,The C Programming Language. Englewood Cliffs, NJ: Prentice-Hall, 1978.
[25] J. Larson, "Multitasking on the Cray X-MP/2 multiprocessor,"IEEE Comput., vol. 17, pp. 62-69, July 1984.
[26] J. Martin, "Operating systems and environments for large-scale parallel processors,"IEEE Software, vol. 15, pp. 4-5, July 1985.
[27] U. S. Dep. Defense,Programming Language Ada: Reference Manual(Lecture Notes Comput. Sci., vol. 106). New York: Springer-Verlag, 1981.
[28] M. Quinn,Designing Efficient Algorithms for Parallel Computers. New York: McGraw-Hill, 1987.
[29] N. Wirth, "The programming language Pascal,"Acta Inform., vol. 1, no. 1, pp. 35-63, 1971.
[30] W. A. Wulf and M. Shaw, "Global variable considered harmful,"SIGPLAN Notices, vol. 8, no. 2, pp. 28-34, Feb. 1973.
[31] Z. Xu and K. Hwang, "Molecules: Typed procedures for concurrent programming on vector/parallel/distributed computers," Comput. Res. Inst., Univ. Southern Calif., Los Angeles, CA, Tech. Rep. CRI- 86-26, 1986.

Index Terms:
language construct; layered development; parallel programs; algorithms; parallel computers; molecule type; computation mode; sequential; pipelining; array processing; dataflow; multiprocessing; procedural language; PAL; layered software development; multicomputer; iPSC; high-level languages; application flexibility; user friendliness; parallel programming
Z. Xu, K. Hwang, "Molecule: A Language Construct for Layered Development of Parallel Programs," IEEE Transactions on Software Engineering, vol. 15, no. 5, pp. 587-599, May 1989, doi:10.1109/32.24708
Usage of this product signifies your acceptance of the Terms of Use.