This Article 
 Bibliographic References 
 Add to: 
A Language and System for the Construction and Tuning of Parallel Programs
April 1988 (vol. 14 no. 4)
pp. 455-471

The programming of efficient parallel software typically requires extensive experimentation with program prototypes. To facilitate such experimentation, any programming system that supports rapid prototyping of parallel programs should provide high-level language primitives with which programs can be explicitly, statically, or dynamically tuned with respect to performance and reliability. When using such primitives, programmers should not need to interact explicitly or even be aware of the different software tools involved in program construction and tuning, such as compilers, linkers, and loaders. In addition, such language primitives should be able to refer conveniently to the information about the executing program and the parallel hardware required for tuning. Such information may include monitoring data about the current or previous program or even hints regarding appropriate tuning decisions. Language primitives and an associated programming system for program tuning are presented in this paper. The primitives and system have been implemented, and have been tested with several parallel applicationson a network of UNIX@ workstations.

[1] W. E. Riddle, J. H. Sayler, A. R. Segal, A. M. Stavely, and J. C. Wileden, "A description scheme to aid the design of collections of concurrent processes," inProc. Nat. Computer Conf., ACM, Anaheim, CA, 1978, pp. 549-554.
[2] W. E. Riddle and J. C. Wileden, "Language for representing software specifications and designs,"Software Eng.Notes. vol. 3, 4, pp. 7-11, Oct. 1978.
[3] K. Schwan, R. Ramnath, S. Sarkar, and S. Vasudevan, "Cool-Language constructs for constructing and tuning parallel programs," inProc. Int. Conf. Computer Languages, IEEE, Miami Beach, FL, Oct. 1986, pp. 90-103.
[4] E. F. Gehringer, A. K. Jones, and Z. Z. Segall, "The Cm*testbed,"Computer, vol. 15, no. 10, pp. 40-53, Oct. 1982.
[5] Z. Segall and L. Rudolph, "PIE: A programming and instrumentation environment for parallel processing,"IEEE Software, vol. 2, no. 6, pp. 22-37, Nov. 1985.
[6] K. Schwan and A. K. Jones, "Flexible software development for multiple computer systems."IEEE Trans. Software Eng., vol. SE- 12, no. 3, pp. 385-401, Mar. 1986.
[7] A.K. Jones and P. Schwarz, "Experience Using Multiprocessor Systems--A Status Report,"Computing Surveys, June 1980, pp. 121-165.
[8] E.F. Gehringer, D.P. Siewiorek, and Z. Segall,Parallel Processing: The Cm*Experience, Digital Press, Billerica, Mass., 1987.
[9] K. Schwan and R. Ramnath, "Adaptable operating software for manufacturing systems and robots: A computer science research agenda." inProc. 5th Real-Time Systems Symp., IEEE, Austin. TX, Dec. 1984, pp. 755-262.
[10] K. Schwan, T. Bihari, B. W. Weide, and G. Taulbee, "High-performance operating system primitives for robotics and real-time control systems,"ACM Trans. Comput. Syst., vol. 5, no. 3, pp. 189-231, Aug. 1987.
[11] R. B. McGhee, D. E. Orin, D. R. Pugh, and M. R. Patterson, "A hierarchically-structured system for computer control of a hexapod walking machine." inProc. 5th IFTOMM Symp. Robots and ManipulatorSystems, IFTOMM, Udine, Italy, June 1984.
[12] K. Schwan, P. Gopinath, and W. Bo, "Chaos-kernel support for objects in the real-time domain,"IEEE Trans. Comput., vol. C-36, no. 8, 904-916, July 1987.
[13] W. A. Wulf, R. Levin, and S. R. Harbison,Hydra/C.mmp: An Experimental Computer System. New York: McGraw-Hill, 1981.
[14] K. Schwan and C. Gaimon, "Automating resource allocation in the Cm*multiprocessor." inProc. Fifth Int. Conf. Distributed Computing Systems, IEEE, ACM, Denver, CO, May 1985, pp. 310-320.
[15] K. Schwan and A. K. Jones, "Specifying resource allocation for the Cm*multiprocessor,"IEEE Software, vol. 3, no. 3, pp. 60-70, May 1984.
[16] R. Snodgrass, "Monitoring in a software development environment: A relational approach," inProc. ACM SIGSOFT Software Engineering Symp. on Practical Software Development Environments, pp. 124-131, Apr. 1984.
[17] D. Notkin, "The GANDALF project,"J. Syst. Software, vol. 5, no. 2, pp. 91-106, May 1985.
[18] A. Singh and Z. Segall, "Synthetic workland generation for experimentation with multiprocessors." inProc. 3rd Int. Conf. Distributed Computing Systems, IEEE, Miami, FL, Oct. 1982.
[19] A. K. Jones and E. Gehringer, Eds., "The Cm*multiprocessor project: A research review," Dep. Comput. Sci., Carnegie-Mellon Univ., Tech. Rep. CMU-CS-80-131, July 1980.
[20] J. A. Stankovtc and I. S. Sidhu, "An adaptive bidding algorithm for processes, clusters and distributed groups," inProc. Fourth Int. Conf. Distributed Computing Systems, IEEE, San Francisco, May 1984, pp. 49-59.
[21] J. Barhen, "Hypercube concurrent computation and virtual time architecture for robotic applications." inProc. Workshop Special Computer Architectures for Robot Control, Proc. Int. Conf. Robotics and Automation. IEEE, San Francisco, CA, Apr. 1986, Extended Abstract.
[22] A. K. Jones, R. J. Chansler, I. Durham, J. Mohan, K. Schwan, and S. Vegdahl, "Staros, a multiprocessor operating system," inProc. 7th ACM Symp. Operating System Principles, Asilomar, CA, Dec. 10-12, 1979, pp. 117-127.
[23] T. J. LeBlanc and S. A. Friedberg, "Hierarchical process composition in distributed operating systems," inProc. 5th Int. Conf. Distributed ComputingSystems, IEEE, ACM, Denver, CO, May 1985, pp. 26-34.
[24] J. K. Ousterhout, A. Scelza, and P. S. Sindhu, "Medusa: An experiment in distributed operating system structure,"Commun. ACM, vol. 23, no. 2, pp. 92-105, Feb. 1980.
[25] D. R. Cheriton and W. Zwaenepoel, "Distributed process groups in the V kernel,"ACM Trans. Comput. Syst., vol. 3, no. 2, pp. 77-107, May 1985.
[26] D. Kuck,et al., "The effects of program restructuring, algorithm change, and architecture choice on program performance," inProc. Int. Conf. Parallel Processing, IEEE, ACM, Aug. 1984, pp. 129- 138.
[27] J. K. Ousterhout, "Scheduling techniques for concurrent systems," inProc. 3rd Int. Conf. Distributed Computing Systems, IEEE, Miami, FL, Oct. 1982, pp. 22-30.
[28] W. W. Chu, L. J. Holloway, M.-T. Lan, and K. Efe, "Task allocation in distributed data processing,"Computer, vol. 13, no. 11, pp. 57-70, Nov. 1980.
[29] A. K. Jones and K. Schwan, "TASK forces: Distributed software for solving problems of substantial size." inProc. 4th Int. Conf. Software Engineering, ACM, GI, IEEE, Munich, West Germany, Sept. 14-16, 1979, pp. 315-329.
[30] K. Schwan,Tailoring Software for Multiple Processor Systems. Ann Arbor, MI: UMI Research Press, 1985.
[31] J. Joyce, G. Lomow, K. Slind, and B. Unger, "Monitoring distributed systems,"ACM Trans. Comput. Syst., vol. 5, no. 2, pp. 121- 150, May 1987.
[32] D.R. Barstow, H.E. Shrobe, and E. Sandewall, Eds.,Interactive Programming EnvironmentsNew York: McGraw-Hill, 1984.
[33] N. Habermann, D. Perry, P. Feiler, R. Medina-Moram, D. Notkin, G. Kaiser, and B. Denny, "A compendium of Gandalf documentation." Tech. report, Dep. Comput. Sci., Carnegie-Mellon Univ., Apr. 1981.
[34] W. F. Tichy, "Software development control based on system structure description," Ph.D. dissertation, Carnegie-Mellon Univ., Jan. 1980.
[35] E. Kant and D. R. Barstow, "The refinement paradigm: The interaction of coding and efficiency knowledge in program synthesis,"IEEE Trans. Software Eng., vol. SE-7, no. 5, pp. 458-471, Sept. 1981.
[36] E. Kant, "Understanding and automating algorithm design."IEEE Trans. Software Eng., vol.SE-11, no. II, pp. 1361-1374, Nov. 1985.
[37] R. Balzer, "A 15 year perspective on automatic programming,"IEEE Trans. Software Eng., vol. SE-11, no. 11, pp. 1257-1268, Nov. 1985.
[38] G. A. Curry and R. M. Ayers, "Experience with traits in the Xerox Star workstation,"IEEE Trans. Software Eng., vol. SE-10, no. 5, pp. 519-527, Sept. 1984.
[39] G. T. Almes, A. P. Black, E. D. Lazowska, and J. D. Noe, "The Eden system: A technical review,"IEEE Trans. Software Eng., vol. SE-11, no. 1, pp. 43-58, Jan. 1985.
[40] B. Liskov and R. Scheifler, "Guardians and actions: linguistic support for robust, distributed programs,"ACM Trans. Program. Languages Syst., vol. 5, no. 3, pp. 381-404, July 1983.
[41] R. Medina-Mora and P. Feiler, "An incremental programming environment,"IEEE Trans. Software Eng., vol. SE-7, no. 5, pp. 472- 481. Sept. 1981.
[42] D. Ogle, K. Schwan, and R. Snodgrass, "The real-time collection and analysis of dynamic information in a distributed system," Dep. Comput. Inform. Sci., Ohio State Univ., Tech. Rep. OSU-CISRC-TR-85-12, Sept. 1985.
[43] N. Habermann, R. Ellison, R. Medina-Mora, P. Feiler, D. Notkin, G. Kaiser, D. Garlan, and S. Popovich, "The 2nd compendium of Gandalf documentation," Dep. Comput. Sci., Carnegie-Mellon Univ., Tech. Rep., May 1982.
[44] G. T. Almes, "The impact of language and system on remote procedure call design." inProc. Sixth Int. Conf. Distributed Computing Systems, IEEE, Boston, MA, May 1986, pp. 414-421.
[45] K. Schwan, W. Bo, and P. Gopinath, "A high-performance, object-based operating system for real-time, robotics applications." inProc. 1986 Real-Time Systems Symp., IEEE, New Orleans, LA, Dec. 1986, pp. 147-156.
[46] I. Durham, R. C. Dugan, A. K. Jones, and S. N. Talukdar, "Power system simulation on a multiprocessor," inText Abstracts IEEEPower EngineeringSoc.SummerMeeting, Vancouver, B.C. Canada, July 15-20, 197Y.
[47] T. Bloom, "Dynamic module replacement in a distributed programming system," Ph.D. dissertation. Lab. Comput. Sci., Massachusetts Inst. Technol., Rep. MIT/LCS/TR-303, Mar. 1983.
[48] B. Miller, C. Macrander, and S. Sechrest, "A distributed programs monitor for Berkeley Unix," inProc. 5th Int. Conf. Distributed Systems, IEEE, Mar. 1985.
[49] R. Snodgrass, "Monitoring distributed systems," Ph.D. dissertation, Dep. Computer, Sci., Carnegie-Mellon Univ., Sept. 1982.
[50] B. Plattner and J. Nievergelt, "Monitoring program execution: A survey,"Computer, vol. 16, no. 11, pp. 76-93, Nov. 1981.
[51] P. Hatter, D. Heimbigner, and R. King, "IDD: An interactive distributed debugger." inProc. 5th Int. Conf. Distributed Systems. IEEE, Mar. 1985.
[52] S. German, "Monitoring for deadlock and blocking in Ada tasking,"IEEE Trans. Software Eng., vol. SE-10, no. 6, pp. 764-777, Nov. 1984.
[53] H. Partsch and R. Steinbrüggen, "Program transformation systems,"ACM Comput. Surveys, vol. 15, no. 3, pp. 199-236, Sept. 1983.
[54] D. A. Lamb, "Sharing intermediate representations: The interface description language," Ph.D. dissertation. Dep. Comput. Sci., Carnegie-Mellon Univ., Pittsburgh, PA, May 1983.
[55] E. F. Codd, "A relational model of data for large shared data banks,"Commun. ACM, pp. 377-387, June 1970.
[56] C. J. Date,An Introduction to Database System-Volume 1. Reading. MA: Addison-Wesley, 1982.
[57] K. Schwan and J. Matthews, "Graphical views of parallel programs,"ACM SIGSOFT Notices. 1986.
[58] K. Schwan, T. E. Bihari, and B. Blake, "Adaptable, reliable software for distributed and parallel real-time systems." inProc. Sixth Symp., Reliability in Distributed Software. IEEE: Williamsburg, VA, Mar. 1987, pp. 32-44.
[59] A. Spector, "Performing remote operations efficiently on a local computer network,"Commun. ACM. vol. 25, no. 4, pp. 246-260, Apr. 1982.
[60] R. W. Watson and S. Mamrak, "Special or general purpose end-to-end transport mechanisms: One view," inProc. 4th Int. Conf. Distributed Computing Systems. San Francisco, CA, May 1984, pp. 154- 165.

Index Terms:
Adaptation, monitoring, objects, parallel programming, programming environment, program views, tuning.
K. Schwan, R. Ramnath, S. Vasudevan, D. Ogle, "A Language and System for the Construction and Tuning of Parallel Programs," IEEE Transactions on Software Engineering, vol. 14, no. 4, pp. 455-471, April 1988, doi:10.1109/32.4669
Usage of this product signifies your acceptance of the Terms of Use.