This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
Program Structuring for Effective Parallel Portability
September 1993 (vol. 4 no. 9)
pp. 1041-1059

The tension between software development costs and efficiency is especially high when considering parallel programs intended to run on a variety of architectures. In the domain of shared memory architectures and explicitly parallel programs, the authors have addressed this problem by defining a programming structure that eases the development of effectively portable programs. On each target multiprocessor, an effectively portable program runs almost as efficiently as a program fine-tuned for that machine. Additionally, its software development cost is close to that of a single program that is portable across the targets. Using this model, programs are defined in terms of data structure and partitioning-scheduling abstractions. Low software development cost is attained by writing source programs in terms of abstract interfaces and thereby requiring minimal modification to port; high performance is attained by matching (often dynamically) the interfaces to implementations that are most appropriate to the execution environment. The authors include results of a prototype used to evaluate the benefits and costs of this approach.

[1] G. Alverson and D. Notkin, "Abstracting data-representation and partitioning scheduling in parallel programs," inProc. Int. Symp. Shared Memory Multiprocessing, Tokyo, Japan, Apr. 1991.
[2] G. Alverson, "Abstractions for effectively portable parallel programs," Ph.D. dissertation, Dep. Comput. Sci. Eng., Univ. Washington, 1990.
[3] R. Anderson, "An experimental study of parallel merge sort," Tech. Rep., Dep. Comput. Sci., Univ. Washington, Dec. 1988.
[4] G. R. Andrews and R. A. Olsson, "An overview of the SR language and implementation,"ACM Trans. Program. Lang. Syst., vol. 10, no. 1, pp. 51-86, Jan. 1988.
[5] Arvind, R. Nikhil, and K. Pingali, "Id nouveau, reference manual, part 2: Operational semantics," Tech. Rep., Massachusetts Inst. of Technol., Apr. 1987.
[6] BBN Advanced Computers Inc. TC2000 product background, Tech. Rep., July 1989.
[7] J. Bennett, J. Carter, and W. Zwaenepoel, "Munin: Distributed Shared Memory Based on Type-Specific Memory Coherence,"Proc. 1990 Conf. Principles and Practice of Parallel Programming, ACM Press, New York, N.Y., 1990, pp. 168-176.
[8] W. Bolosky, M. Scott, and R. Fitzgerald, "Simple but effective techniques for NUMA memory management," inProc. Twelfth ACM Symp. Oper. Syst. Principles, Dec. 1989, pp. 19-31.
[9] D. Callahan and K. Kennedy, "Compiling programs for distributed-memory multiprocessors,"J. Supercomput., Oct. 1988.
[10] M. Coffin, "Par: An approach to architecture-independent parallel programming," Ph.D. dissertation, Univ. Arizona, Aug. 1990.
[11] A. L. Cox and R. J. Fowler, "The implementation of a coherent memory abstraction on a NUMA multiprocessor: Experiences with Platinum," inProc. Twelfth ACM Symp. Oper. Syst. Principles, Dec. 1989, pp. 32-43.
[12] L. Crowl and T. LeBlanc, "Architectural adaptability in parallel programming via control abstraction," Tech. Rep., Comput. Sci. Dep., Univ. of Rochester, Jan. 1991.
[13] L. Growl,Architectural Adaptability in Parallel Programming, doctoral dissertation, Tech. Report 381, Computer Science Dept., Univ. of Rochester, N.Y., 1991.
[14] W. Crowther, J. Goodhue, R. Gurwitz, R. Rettberg, and R. Thomas, "The Butterfly (TM) parallel processor,"IEEE Comput. Architecture Technical Committee Newsletter, Sept.-Dec. 1985.
[15] Encore Computer Corp., "The Multimax family of computer systems," Tech. Rep., 1988.
[16] E. Gabber, "Vmmp: A practical tool for the development of portable and efficient programs for multiprocessors,"IEEE Trans. Parallel Distributed Syst., July 1990.
[17] A. Garcia, D. Foster, and R. Freitas, "The Advanced Computing Environment muitiprocessor workstation," Tech. Rep. RC-14419, IBM Res. Div., Mar. 1989.
[18] D. Gelertner, "Generative Communication in Linda,"ACM Trans. Programming Languages and Systems, Vol. 7, No. 1, Jan. 1985, pp. 80-112.
[19] A. Gottlieb, B. D. Lubachevsky, and L. Rudolph, "Basic techniques for the efficient coordination of very large numbers of cooperating sequential processors,"ACM Trans. Programming Languages Syst., vol. 5, no. 2, pp. 164-189, Apr. 1993.
[20] W. Griswold, G. Harrison (Alverson), D. Notkin, and L. Snyder, "Scalable abstractions for parallel programming," inProc. 5th Distributed Memory Comput. Conf., Charleston, SC, Apr. 1990.
[21] D. Grit, "A distributed memory implementation of SISAL," inProc. 5th Distributed Memory Comput. Conf., Charleston, SC, Apr. 1990.
[22] R. Halstead, "Multilisp: A Language for Concurrent Symbolic Computation,"ACM Trans. Programming Languages and Systems, Vol. 7, No. 4, Oct. 1985, pp. 501-538.
[23] G. Harrison (Alverson) and D. Notkin, "Effective parallel portability," Tech. Rep. 89-09-08, Dep. Comput. Sci. Eng., Univ. of Washington, 1989.
[24] P. Hudak, "Exploring parafunctional programming: Separating the what from the how,"IEEE Software, Jan. 1988.
[25] H. Jordan, "The Force," Tech. Rep. ECE 87-1-1, Dep. Elec. Comput. Eng., Univ. of Colorado, Jan. 1987.
[26] V. Kalé, "The Chare kernel parallel programming language and system," inProc. Int. Conf. Parallel Processing, St. Charles, IL, Aug. 1990.
[27] C. Koelbel, P. Mehrotra, and J. Van Rosendale, "Supporting shared data structures on distributed memory architectures," inProc. 2nd ACM SIGPLAN Symp. Principles Practice of Parallel Programming, Mar. 1990, Rep. 90-7, ICASE, Jan. 1990.
[28] R. P. LaRowe, Jr. and C. S. Ellis, "Experimental comparison of memory management policies for NUMA multiprocessors," Dept. Comput. Sci., Duke Univ., Tech. Rep. CS-1990-10, 1990.
[29] T. LeBlanc, M. Scott, and C. Brown, "Large-scale parallel programming: Experience with the BBN Butterfly parallel processor," inProc. PPEALS, ACM Symp. Parallel Programming, New Haven, CT, July 1988.
[30] D. Lenoski, J. Laudon, K. Gharachorloo, W.-D. Weber, A. Gupta, and J. Hennesy, "Overview and status of the Stanford DASH multiprocessor," inProc. Int. Symp. Shared Memory Multiprocessing, Apr. 1991.
[31] C. Lin and L. Snyder, "Portable parallel programming: Cross machine comparisons for SIMPLE," inProc. 5th SIAM Conf. Parallel Processing, Houston, TX, Mar. 1991.
[32] T. Lovett and S. Thakkar, "The Symmetry multiprocessor system," inProc. Int. Conf. Parallel Processing, St. Charles, IL, Aug. 1988.
[33] E. Lusk, R. Overbeek,et al., Portable Programs for Parallel Processors. New York: Holt, Rinehart, and Winston, 1987.
[34] A. Osterhaug,Guide to Parallel Programming on Sequent Com puter Systems, Sequent Computer Systems, Beaverton, Ore., 1986.
[35] Parnas, D.L. 1972. On the Criteria to be Used in Decomposing Systems into Modules,Communications of the ACM, Vol.15, pp. 1053-1058.
[36] C. Polychronopoulos,Parallel Programming and Compilers, Kluwer Academic Publishers, 1988.
[37] T. Pratt, "The Pisces2 parallel programming environment," inProc. Int. Conf. Parallel Processing, St. Charles, IL, Aug. 1987.
[38] R. Raj and H. Levy, "A compositional model for software reuse,"Comput. J., Aug. 1989.
[39] A. Rogers and K. Pingali, "Process decomposition through locality of reference," inProc. SIGPLAN'89 Conf. Programming Language Design and Implementation, 1989, pp. 69-80.
[40] M. Rosin, R. Schnabel, and R. Weaver, "Dino: Summary and examples," Tech. Rep. CU-CS-386-88, Univ. of Colorado, Mar. 1988.
[41] J. Saltz, V. K. Naik, and D. Nicol, "Reduction of the effects of communication delays in scientific algorithms on message passing MIMD architectures,"SIAM J. Sci. Stat. Comput., vol. 8, no. 1, pp. s118-s134, 1987.
[42] V. Sarkar,Partitioning and Scheduling Parallel Programs for Multiprocessing, MIT Press, 1989.
[43] V. Sarkar, "PTRAN--The IBM parallel translation system," Tech. Rep. RC-70566, IBM Res. Div., T. J. Watson Research Center, May 1990.
[44] J. T. Schwartz, "Ultracomputers,"ACM Trans. Programming Languages Syst., vol. 2, no. 4, pp. 484-521, Oct. 1980.
[45] L. Snyder, "Parallel programming and the Poker programming environment,"IEEE Comput. Mag., July 1984.
[46] L. Snyder, "Type architectures, shared memory, and the corollary of modest potential,"Annu. Rev. Comput. Sci., 1986.
[47] B. Stroustrup,The C++ Programming Language. Reading MA: Addison-Wesley, 1987.
[48] R. Thomas and W. Crowther, "The uniform system: An approach to runtime support for large scale shared memory parallel processors," inProc. Int. Conf. Parallel Processing, St. Charles, IL, Aug. 1988.
[49] L. Valiant, "A Bridging Model for Parallel Computation,"Comm. ACM, Vol. 33, No. 8, Aug. 1990, pp. 103-111.
[50] J. Weening, "Parallel execution of Lisp programs," Ph.D. dissertation, Dep. Comput. Sci., Stanford Univ., 1989.
[51] M. Wolfe,Optimizing Supercompilers for Supercomputers. Cambridge MA: MIT Press, 1989.

Index Terms:
Index Termsparallel portability; software development; costs; efficiency; shared memory architectures; parallel programs; target multiprocessor; data structure; partitioning-scheduling; parallel languages; run-time systems; parallel programming; portability; parallel programming; shared memory systems; software portability; structured programming
Citation:
G.A. Alverson, D. Notkin, "Program Structuring for Effective Parallel Portability," IEEE Transactions on Parallel and Distributed Systems, vol. 4, no. 9, pp. 1041-1059, Sept. 1993, doi:10.1109/71.243530
Usage of this product signifies your acceptance of the Terms of Use.