Abstract
Message Passing (MP) and Distributed Shared Memory (DSM) are the two most common approaches to distributed parallel computing. MP is difficult to use, whereas DSM is not scalable. Performance scalability and ease of programming can be achieved at the same time by using navigational programming (NavP). This approach combines the advantages of MP and DSM, and it balances convenience and flexibility. Similar to MP, NavP suggests to its programmers the principle of pivot-computes and hence is efficient and scalable. Like DSM, NavP supports incremental parallelization and shared variable programming and is therefore easy to use. The implementation and performance analysis of real-world algorithms, namely parallel Jacobi iteration and parallel Cholesky factorization, presented in this paper supports the claim that the NavP approach is better suited for general-purpose parallel distributed programming than either MP or DSM.
Similar content being viewed by others
REFERENCES
L. Pan, L. F. Bic, and M. B. Dillencourt, Distributed Sequential Computing Using Mobile Code: Moving Computation to Data, L. M. Ni and M. Valero (eds.), Proceedings of the 2001 International Conference on Parallel Processing (ICPP 2001), IEEE Computer Society, Los Alamitos, California, pp. 77-84 (September 2001).
L. Pan, L. F. Bic, M. B. Dillencourt, and M. K. Lai, Mobile Agents-The Right Vehicle for Distributed Sequential Computing, S. Sahni, V. K. Prasanna, and U. Shukla (eds.), Proceedings, 9th International Conference on High Performance Computing-HiPC 2002, Lecture Notes in Computer Science, Vol. 2552, Springer-Verlag, Berlin, Germany, pp. 575-584 (December 2002).
I. Pramanick, MPI and PVM Programming, R. Buyya (ed.), High-Performance Cluster Computing, Vol. 2, Programming and Applications, Prentice-Hall PTR, Upper Saddle River, N.J., pp. 48-86 (1999).
L. S. Blackford, J. Choi, A. Cleary, E. D'Azevedo, J. Demmel, I. Dhillon, J. Dongarra, S. Hammarling, G. Henry, A. Petitet, K. Stanley, D. Walker, and R. C. Whaley, ScaLAPACK Users' Guide, Society for Industrial and Applied Mathematics, Philadelphia, Pennsylvania (1997).
L. Pan, L. F. Bic, and M. B. Dillencourt, Shared Variable Programming Beyond Shared Memory: Bridging Distributed Memory with Mobile Agents, H. Ehrig, B. Kramer, and A. Ertas (eds.), Proceedings of the 6th International Conference on Integrated Design & Process Technology (IDPT-2002), Society for Design & Process Science, Grandview, Texas (June 2002).
L. F. Bic, M. Fukuda, and M. B. Dillencourt, Distributed Computing using Autonomous Objects, IEEE Computer, 29(8):55-61 (August 1996).
C. Wicke, L. F. Bic, M. B. Dillencourt, and M. Fukuda, Automatic State Capture of Self-Migrating Computations in Messengers, K. Rothermel and F. Hohl (eds.), Proceedings, Second International Conference on Mobile Agents, MA '98, Lecture Notes in Computer Science, Vol. 1477, Springer-Verlag, Berlin, Germany, pp. 68-79 (September 1998).
M. Fukuda, L. F. Bic, and M. B. Dillencourt, Messages versus Messengers in Distributed Programming, J. Parallel Distr. Com., 57:188-211 (1999).
E. Gendelman, Messengers User's Manual (version 2.1), Information & Computer Science, University of California, Irvine, Irvine, California (2001).
D. Chess, C. Harrison, and A. Kershenbaum, Mobile Agents: Are They a Good Idea?, J. Vitek and C. Tschudin (eds.), Selected Presentations and Invited Papers, Second International Workshop on Mobile Object Systems, MOS '96, Lecture Notes in Computer Science, Vol. 1222, Springer-Verlag, Berlin, Germany, pp. 25-47 (July 1997).
A. Fuggetta, G. P. Picco, and G. Vigna, Understanding Code Mobility, IEEE Transactions on Software Engineering, 24(5):342-361 (May 1998).
D. B. Lange and M. Oshima, Seven Good Reasons for Mobile Agents, Commun. ACM, 42(3):88-89 (March 1999).
D. Milojicic, Trend Wars: Mobile Agent Applications, IEEE Concurency, 7(3):80-90 (July-Sept. 1999).
R. S. Gray, D. Kotz, G. Cybenko, and D. Rus, Mobile Agents: Motivations and State-of-the-Art Systems, Technical Report TR2000-365, Dartmouth College, Hanover, New Hampshire (April 2000).
L. Bettini and R. De Nicola, Translating strong mobility into weak mobility, G. P. Picco (ed.), Proceedings, 5th International Conference on Mobile Agents, MA 2001, Lecture Notes in Computer Science, Vol. 2240, Springer-Verlag, Berlin, Germany, pp. 182-197 (December 2001).
D. Kotz, R. Gray, and D. Rus, Future Directions for Mobile Agent Research, IEEE Distributed Systems Online, 3(8) (2002).
C. Wicke, Implementation of an Autonomous Agents System, Master's thesis, Dept. of Information and Computer Science, University of California, Irvine, Irvine, California (September 1998).
E. Gendelman, L. F. Bic, and M. B. Dillencourt, Fast File Access for Fast Agents, G. P. Picco (ed.), Proceedings, 5th International Conference on Mobile Agents, MA 2001, Lecture Notes in Computer Science, Vol. 2240, Springer-Verlag, Berlin, Germany, pp. 88-102 (December 2001).
R. Morgan, Building an Optimizing Compiler, Butterworth-Heinemann, Boston, Massachusetts (1998).
C. Leopold, Parallel and Distributed Computing: A Survey of Models, Paradigms, and Approaches, John Wiley & Sons, New York (2001).
V. Kumar, A. Grama, A. Gupta, and G. Karypis, Introduction to Parallel Computing: Design and Analysis of Algorithms, Benjamin Cummings, Redwood City, California (1994).
E. Markatos and T. LeBlanc, Load Balancing vs. Locality Management in Shared-Memory Multiprocessors, Technical Report 399, Computer Science Department, University of Rochester, Rochester, New York (October 1991).
G. Burns, R. Daoud, and J. Vaigl, LAM: An Open Cluster Environment for MPI, J. W. Ross (ed.), Proceedings of Supercomputing Symposium, pp. 379-386 (1994).
J. M. Squyres and A. Lumsdaine, A Component Architecture for LAM/MPI, Proceedings, 10th European PVM/MPI Users' Group Meeting, Lecture Notes in Computer Science, Vol. 2840, Springer-Verlag, Berlin, Germany (2003).
W. L. Briggs, A Multigrid Tutorial, Society for Industrial and Applied Mathematics, Philadelphia, Pennsylvania (1987).
G. H. Golub and C. F. Van Loan, Matrix Computations, 3rd edn., Johns Hopkins University Press, Baltimore, Maryland (1996).
W. W. Carlson, J. M. Draper, D. E. Culler, K. Yelick, E. Brooks, and K. Warren, Introduction to UPC and Language Specification, Technical Report CCS-TR-99-157, IDA Center for Computing Sciences, Bowie, Maryland (May 1999).
T. A. El-Ghazawi and S. Chauvin, Getting Started with UPC, High Performance Computing Laboratory, George Washington University, Washington DC (dyJune 2001).
R. S. Schreiber, An Introduction to HPF, Lecture Notes in Computer Science, Vol. 1132, pp. 27-44 (1996).
C. H. Koelbel, The High Performance Fortran Handbook, MIT Press, Cambridge, Massachusetts (1994).
MPI-2: Extensions to the Message-Passing Interface, The MPI Forum (July 1997).
R. Chandra, L. Dagum, D. Kohr, D. Maydan, J. McDonald, and R. Menon, Parallel Programming in OpenMP, Morgan Kaufmann Publishers, San Francisco, California (2001).
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Pan, L., Lai, M.K., Noguchi, K. et al. Distributed Parallel Computing Using Navigational Programming. International Journal of Parallel Programming 32, 1–37 (2004). https://doi.org/10.1023/B:IJPP.0000015563.36375.17
Issue Date:
DOI: https://doi.org/10.1023/B:IJPP.0000015563.36375.17