This Article 
 Bibliographic References 
 Add to: 
A Distributed Parallel Programming Framework
May 2002 (vol. 28 no. 5)
pp. 478-493

This paper presents Visper, a novel object-oriented framework that identifies and enhances common services and programming primitives, and implements a generic set of classes applicable to multiple programming models in a distributed environment. Groups of objects, which can be programmed in a uniform and transparent manner, and agent-based distributed system management, are also featured in Visper. A prototype system is designed and implemented in Java, with a number of visual utilities that facilitate program development and portability. As a use case, Visper integrates parallel programming in an MPI-like message-passing paradigm at a high level with services such as checkpointing and fault tolerance at a lower level. The paper reports a range of performance evaluation on the prototype and compares it to related works.

[1] “Aglets: Programming Mobile Agents in Java,”, 1998.
[2] J.C. Browne, S.I. Hyder, J. Dongarra, K. Moore, and P. Newton, “Visual Programming and Debugging for Parallel Computing,” IEEE Parallel and Distributed Technology, vol. 3, 1995.
[3] M.M. Burnett, M.J. Baker, C. Bohus, P. Carlson, S. Yang, and P. van Zee, “Scaling up Visual Programming Languages,” Computer, pp. 45-54, Mar. 1995.
[4] S.K. Chang, M.M. Burnett, S. Levialdi, K. Marriott, J. Pfeiffer, and S. Tanimoto, “The Future of Visual Languages,” Proc. 15th IEEE Symp. Visual Languages, pp. 58-61, 1999.
[5] K.M. Chandy and L. Lamport, "Distributed Snapshots: Determining Global States of Distributed Systems," ACM Trans. Computer Systems, Feb. 1985.
[6] R. Davis and R.G. Smith, “Negotiation as a Metaphor for Distributed Problem Solving,” Artificial Intelligence, vol. 20, no. 1, pp. 63-109, 1983.
[7] DOGMA: Distributed Object Group Metacomputing Architecture,http://ccc.cs.byu.eduDOGMA, Sept. 1998.
[8] R. Duncan, "A Survey of Parallel Computer Architectures," Computer, pp. 5-16, Feb. 1990.
[9] P. Eades, W. Lai, K. Misue, and K. Sugiyama, “Preserving the Mental Map of a Diagram,” Proc. Compugraphics 91, pp. 24-33, 1991.
[10] E.N. Elnozahy, D.B. Johnson, and W. Zwaenepoel, "The Performance of Consistent Checkpointing," Proc. 11th Symp. Reliable Distributed Systems, pp. 86-95, Oct. 1992.
[11] M. Elnozahy, L. Alvisi, Y.M. Wang, and D.B. Johnson, “A Survey of Rollback-Recovery Protocols in Message-Passing Systems,” Technical Report CMU-CS-99-148, School of CS, Carnegie Mellon Univ., June 1999.
[12] J. Ferber, “Stimulating with Reactive Agents,” Many Agent Simulation and Artificial Life, E. Hillebrand and J. Stender, eds., pp. 8-28, 1994.
[13] A. Ferrari, “JPVM: Network Parallel Computing in Java,” Concurrency: Practice and Experience, vol. 10, nos. 11-13, pp. 985-992, 1998.
[14] M.J. Fischer, N.A. Lynch, and M.S. Paterson, “Impossibility of Distributed Consensus with One Faulty Process,” J. ACM, vol. 32, no. 2, pp. 374i–382, 1985.
[15] S. Fünfrocken, “Transparent Migration of Java-Based Mobile Agents,” K. Rothermel, and F. Hohl, eds., Proc. Second Int'l Workshop Mobile Agents, (MA '98), 1998.
[16] E. Gamma et al., Design Patterns: Elements of Object-Oriented Software, Addison-Wesley, Reading, Mass., 1994.
[17] M. Genesereth and S. Ketchpel, "Software Agents," Comm. ACM, July 1994, pp. 48-53.
[18] C. Ghezzi and G. Vigna, “Mobile Code Paradigms and Technologies: A Case Study,” K. Rothermel and R. Popescu-Zeletin, eds., Proc. First Int'l Workshop Mobile Agents (MA '97), 1997.
[19] P.A. Gray and V.S. Sunderam, “Metacomputing with the IceT System,” Int'l J. High Performance Computing Applications, vol. 13, no. 3, pp. 241-252, 1999.
[20] W. Gropp, E. Lusk, and A. Skjellum, Using MPI: Portable Parallel Programming with the Message Passing Interface. MIT Press, 1994.
[21] “Jama: A Java Matrix Package,”, 1998.
[22] “JATLite Overview,” Computer Science Dept., Stanford Univ.,, 1997.
[23] D. Kranzlmüller, N. Stankovic, and J. Volkert, “Debugging Parallel Programs with Visual Patterns,” Proc. 15th IEEE Int'l Symp. Visual Languages, (VL '99), pp. 180-181, Sept. 1999.
[24] L. Lamport, "Time, clocks and the ordering of events in a distributed system," Comm. ACM, vol. 21, no. 7, pp. 558-565, July 1978.
[25] Message Passing Interface Forum, MPI-2: Extensions to the Message-Passing Interface, http://www.mcs.anl.govmpi, July 1997.
[26] “ObjectSpace Voyager—The Agent ORB for Java,” http://www.objectspace.comvoyager, 1997.
[27] Pasadena Working Group #7, “DRAFT: Message-Passing and Object-Oriented Programming,” Proc. Second Pasadena Workshop System Software and Tools for High Performance Computing Environments, http:/, 1995.
[28] M. Philippsen and M. Zenger, “JavaParty—Transparent Remote Objects in Java,” Concurrency: Practice and Experience, vol. 9, no. 11, pp. 1225-1242, 1997.
[29] B. Randell, “System Structure for Software Fault Tolerance,” IEEE Trans. Software Eng., vol. 1, no. 2, pp. 220-232, June 1975.
[30] R. D. Schlichting and F. B. Schneider,“Fail-stop processors: An approach to designing fault-tolerant computing systems,”ACM Trans. Comput. Syst., vol. 1, no. 3, pp. 222–238, Aug. 1983.
[31] SoftWired AG. Ibus Programmer's Manual, version 0.5.http://www.softwired.chibus.htm, Aug. 1998.
[32] N. Stankovic and K. Zhang, “Visual Programming for Message-Passing Systems,” Int'l J. Software Eng. and Knowledge Eng., vol. 9, no. 4, pp. 397-423, Aug. 1999.
[33] N. Stankovic and K. Zhang, “A Framework for Object-Oriented Metacomputing,” Proc. Third Int'l Symp. Computing in Object-Oriented Parallel Environments, (ISCOPE '99), S. Matsuoka, R.R. Oldehoeft, and M. Tholburn, eds., pp. 71-76, Dec. 1999.
[34] N. Stankovic and K. Zhang, “An Evaluation of Java Implementations of Message-Passing,” Software: Practice and Experience, vol. 30, no. 7, pp. 741-763, June 2000.
[35] N. Stankovic, “An Open Java System for SPMD Programming,” Concurrency: Practice and Experience, vol. 12, no. 11, pp. 1051-1076, Sept. 2000.
[36] N. Stankovic, D. Kranzlmüller, and K. Zhang, “The PCG: An Empirical Study,” J. Visual Languages and Computing, vol. 12, no. 2, pp. 203-216, Apr. 2001.
[37] J.M. Stone, “Debugging Concurrent Processes: A Case Study,” Proc. ACM SIGPLAN 1988 Programming Language Design and Implementation, pp. 145-153, June 1988.
[38] Java Remote Method Invocation Specification, revision 1.42. Sun Microsystems, Inc., Oct. 1997.
[39] Java Core Reflection, API and Specification. Sun Microsystems, Inc., Feb. 1997.
[40] Sun Microsystems, Inc., “Java IDL,” http:/, 1999.
[41] H. Takagi, S. Matsuoka, H. Nakada, S. Sekiguchi, M. Satoh, and U. Nagashima, “Ninflet: A Migratable Parallel Objects Framework Using Java,” Proc. ACM 1998 Workshop Java for High-Performance Network Computing, pp. 151-159, Feb. 1998.
[42] S.N.K. Watt, “Artificial Societies and Psychological Agents,” Software Agents and Soft Computing, H.S. Nwana, and N. Azarmi, eds., Towards Enhancing Machine Intelligence, Concepts, and Applications, pp. 27-41, 1997.
[43] K. Zhang, X. Ma, and T. Hintz, “The Role of Graphics in Parallel Program Development,” J. Visual Languages and Computing, vol. 10, no. 3, pp. 215-243, 1999.

Index Terms:
distributed parallel programming, visual programming, message-passing, object-oriented model, fault tolerance
N. Stankovic, K. Zhang, "A Distributed Parallel Programming Framework," IEEE Transactions on Software Engineering, vol. 28, no. 5, pp. 478-493, May 2002, doi:10.1109/TSE.2002.1000451
Usage of this product signifies your acceptance of the Terms of Use.