This Article 
 Bibliographic References 
 Add to: 
VMMP: A Practical Tool for the Development of Portable and Efficient Programs for Multiprocessors
July 1990 (vol. 1 no. 3)
pp. 304-317

The VMMP (virtual machine for multiprocessors) software package is presented. It provides a coherent set of services for parallel application programs running on diverse multiple input multiple data (MIMD) multiprocessors, including shared memory and message passing multiprocessors. The communication, synchronization, and data distribution requirements of parallel algorithms are analyzed. Related languages and tools are described. VMMP services are identified. VMMP implementation, coding and portability are discussed. Some measurements of the performance of VROMP application programs and VMMP overhead are given. Several hints for improving the performance of application programs are described.

[1] R. G. Babb II and D. C. Dinucci, "Design and implementation of parallel programs with large-grain data flow," inThe Characteristics of Parallel Algorithms, L. H. Jamieson, D. B. Gannon, and R. J. Douglas, Eds., Cambridge, MA: MIT Press, 1987, pp. 335-349.
[2] B. N. Bershad, E. D. Lazowska, H. M. Levy, and D. B. Wagner, "An open environment for building parallel programming systems," inProc. ACM/SIGPLAN PPEALS 1988-Parallel Programming: Experience with Applications, Languages Syst., New Haven, CT, July 19-21, 1988, pp. 1-9. Also appeared as SIGPLAN Notices, vol. 23, no. 9, Sept. 1988.
[3] R. Bisiani and A. Forin, "Multilanguage parallel programming of heterogeneous machines,"IEEE Trans. Comput., vol. 37, no. 8, pp. 930-945, Aug. 1988.
[4] F. W. Burton and M. M. Huntbach, "Virtual tree machines,"IEEE Trans. Comput., vol. C-33, no. 3, pp. 278-280, Mar. 1984.
[5] N. Carriero and D. Gelernter, "Linda in context,"Commun. ACM, vol. 32, pp. 444-458, Apr. 1989.
[6] E. C. Cooper and R. P. Draves, "C threads," A part of the MACH Operating System documentation, Dep. Comput. Sci., Carnegie Mellon Univ., July 1987.
[7] F. Darema, D. A. George, V. A. Norton, and G. F. Pfister, "A singleprogram-multiple-data computational model for EPEX/FORTRAN,"Parallel Comput., vol. 7, no. 1, pp. 11-24, Apr. 1988.
[8] J. J. Dongarra and D. C. Sorensen, "SCHEDULE: Tools for developing and analyzing parallel Fortran programs," inThe Characteristics of Parallel Algorithms, L. H. Jamieson, D. B. Gannon, and R. J. Douglas, Eds. Cambridge, MA: MIT Press, 1987, pp. 363-394.
[9] R. Finkel and U. Manber, "DIB-A distributed implementation of backtracking,"ACM Trans. Programming Languages Syst., vol. 9, no. 2, pp. 235-256, Apr. 1987.
[10] M. Foxet al., Solving Problems on Concurrent Processors, vol. 1. Englewood Cliffs, NJ: Prentice-Hall, 1988.
[11] E. Gabber, "Parallel programming using the MMX operating system and its processor," inProc. 3rd Israel Conf. Comput. Syst. Software Eng., Tel-Aviv, Israel, June 6-7, 1988, pp. 122-132. Also appeared as Tech. Rep. 107/88, Eskenasy Instit. Comput. Sci., Tel-Aviv Univ., Tel-Aviv, Israel, May 1988.
[12] E. Gabber, "Developing a portable parallelizing Pascal compiler in Prolog," inThe Practice of Prolog, L. Sterling, Ed. Cambridge, MA: MIT Press, to be published.
[13] A. Garcia, D. J. Foster, and R. F. Freitas, "The advanced computing environment multiprocessor workstation," IBM Res. Rep. RC 14491 (#64901), IBM T. J. Watson Research Center, Mar. 1989.
[14] G. A. Geist and C. H. Romine, "LU factorization algorithms on distributed- Memory multiprocessor architectures,"SIAM J. Scientif. Statist. Comput., vol. 9, no. 4, pp. 639-649, July 1988.
[15] R. H. Halstead, "Parallel symbolic computing,"IEEE Comput. Mag., vol. 19, pp. 35-43, Aug. 1986.
[16] E. Horowitz and S. Sahni,Fundamentals of Computer Algorithms. Rockville, MD: Computer Sci. Press, 1978.
[17] P. Hudak, "Parafunctional Programming,"Computer, Aug. 1986, pp. 60-71.
[18] K. Hwang, "Advanced parallel processing with supercomputer architectures,"Proc. IEEE, vol. 75, no. 10, pp. 1348-1379, Oct. 1987.
[19] INMOS Ltd.,OCCAM Programming Manual.Englewood Cliffs, NJ: Prentice-Hall, 1984.
[20] H. F. Jordan, "The force," inThe Characteristics of Parallel AlgorithmsL. H. Jamieson, D. B. Gannon, and R. J. Douglas, Eds. Cambridge, MA: MIT Press, 1987, pp. 395-436.
[21] M. Kallstrom and S. S. Thakkar, "Programming three parallel computers,"IEEE Software, vol. 5, no. 1, pp. 11-22, Jan. 1988.
[22] J. A. Kapenga and E. DeDoncker, "A parallelization of adaptive task partitioning algorithms,"Parallel Comput., vol. 7, no. 2, pp. 211-225, June 1988.
[23] A.H. Karp, "Programming for Parallelism,"Computer, Vol. 20, No. 5, May 1987, pp. 43- 57.
[24] A. H. Karp and R. G. Babb II, "A comparison of 12 parallel Fortran dialects,"IEEE Software, vol. 5, no. 5, pp. 52-67, Sept. 1988.
[25] C. King, W. Chou, and L. M. Ni, "Pipelined data parallel algorithms-Concepts and modeling," inProc. 1988 Int. Conf. Supercomput., St. Malo, France, ACM, July 4-8, 1988, pp. 385-395.
[26] H. T. Kung, "Why systolic architectures?,"IEEE Comput. Mag., vol. 15, no. 1, pp. 37-46, Jan. 1982.
[27] P. L'Ecuyer, "Efficient and portable combined random number generators,"Commun. ACM, vol. 31, no. 6, pp. 742-774, 1988.
[28] T.H. Lai and S. Sahni, "Anomalies in Parallel Branch-and-Bound Algorithms,"Comm. ACM, June 1984, pp. 594-602.
[29] E. L. Lusk and R. A. Overbeek, "A minimalist approach to portable, parallel programming," inThe Characteristics of Parallel Algorithms, L. H. Jamieson, D. B. Gannon, and R. J. Douglas, Eds. Cambridge, MA: MIT Press, 1987, pp. 351-362.
[30] T. A. Marsland and M. S. Campbell, "Parallel search of strongly ordered game trees,"ACM Comput. Surv., vol. 14, no. 4, pp. 533-552, 1982.
[31] T. A. Marsland and F. Popowich, "Parallel game-Tree search,"IEEE Trans. Pattern Anal. Machine Intell., vol. PAMI-7, no. 4, pp. 442-452, July 1985.
[32] O. A. McBryan and E. F. Van de Velde, "Hypercube algorithms and implementations,"SIAM J. Scientif. Statist. Comput., vol. 8, no. 2, pp. s227-s287, Mar. 1987.
[33] D. L. McBurney and M. R. Sleep, "Transputer-based experiments with the ZAPP architecture," inProc. 1st PARLE-Parallel Architecture and Languages Europe, Lecture Notes in Computer Science, 258 Springer Verlag, June 1987, pp. 242-259.
[34] P. Mehrotra and J. Van Rosendale, "The BLAZE language: A parallel language for scientific programming,"Parallel Comput., vol. 5, no. 3, pp. 339-361, 1987.
[35] H. Muhlenbein, T. Schneider, and S. Streitz, "Network programming with MUPPET,"J. Parallel Distributed Comput., vol. 5, no. 5, pp. 641-653, Oct. 1988.
[36] D. M. Nicol and J. H. Saltz, "Principles for problem aggregation and assignment in medium scale multiprocessors," ICASE Rep. 87-39, Instit. Comput. Appl. Sci. Eng., Sept. 1987.
[37] R. H. Perrot, D. Crookes, and P. Milligan, "The programming language ACTUS,"Software-Practice&Experience, vol. 13, no. 4, pp. 305-322, Apr. 1983.
[38] T. W. Pratt, "Pisces: An environment for parallel scientific computation,"IEEE Software, vol. 2, no. 4, pp. 7-20, July 1985.
[39] A. G. Ranade, "How to emulate shared memory," inProc. 1987 Annu. Symp. Foundations. Comput. Sci., 1987, pp. 185-194.
[40] R. Rashid, A. Tevanian Jr., M. Young, D. Golub, R. Baron, D. Black, W. J. Bolosky, and J. Chew, "Machine-independent virtual memory management for paged uniprocessor and multiprocessor architectures,"IEEE Trans. Comput., vol. 37, pp. 896-907, Aug. 1988.
[41] T. Ruppelt and G. Wirtz, "From mathematical specification to parallel programs on a message based system," inProc. 1988 Int. Conf. Supercomput., St. Malo, France, ACM, July 4-8, 1988, pp. 108-118.
[42] R. Sedgewick,Algorithms. Reading, MA, Addison-Wesley, 1983.
[43] L. Snyder, "Parallel programming and the poker programming environment,"IEEE Comput. Mag., vol. 17, no. 7, pp. 27-36, July 1984.
[44] T. L. Sterling, A. J. Musciano, E. Y. Chan, and D. A. Thomae, "Effective implementation of a parallel language on a multiprocessor,"IEEE Micro, vol. 7, no. 6, pp. 46-62, Dec. 1987.
[45] B. Stroustrup,The C++ Programming Language. Reading, MA: Addison-Wesley, 1986.
[46] United States Department of Defense,Ada Language Reference Manual, American National Standards Institute/MIL-STD 1815A, Jan. 1983.
[47] B. W. Wah, G. Li and C. F. Yu, "Multiprocessing combinatorial search problems,"IEEE Comput. Mag., vol. 18, no. 6, pp. 93- 108, June 1985.
[48] C. Whitby-Strevens, "The Transputer," inProc. 12th Annu. Symp. Comput. Architecture, Boston, MA, June 1985, pp. 292-300.
[49] N. Wirth,Programming in Modula-2, 3rd ed. Berlin: Springer-Verlag, 1985.

Index Terms:
Index TermsVMMP; practical tool; portable and efficient programs; virtual machine; software package; parallel application programs; shared memory; message passing multiprocessors; synchronization; parallel algorithms; coding; VROMP; multiprocessing systems; software portability; software tools
E. Gabber, "VMMP: A Practical Tool for the Development of Portable and Efficient Programs for Multiprocessors," IEEE Transactions on Parallel and Distributed Systems, vol. 1, no. 3, pp. 304-317, July 1990, doi:10.1109/71.80158
Usage of this product signifies your acceptance of the Terms of Use.