CONCURRENCY: PRACTICE AND EXPERIENCE Concurrency: Pract. Exper. 2000; 12:643–666 Wide-area parallel programming using the remote method invocation model Rob van Nieuwpoort *,† , Jason Maassen, Henri E. Bal, Thilo Kielmann and Ronald Veldema Department of Computer Science, Vrije Universiteit, De Boelelaan, 1081 HV, Amsterdam, The Netherlands SUMMARY Java’s support for parallel and distributed processing makes the language attractive for metacomputing applications, such as parallel applications that run on geographically distributed (wide-area) systems. To obtain actual experience with a Java-centric approach to metacomputing, we have built and used a high- performance wide-area Java system, called Manta. Manta implements the Java Remote Method Invocation (RMI) model using different communication protocols (active messages and TCP/IP) for different networks. The paper shows how wide-area parallel applications can be expressed and optimized using Java RMI. Also, it presents performance results of several applications on a wide-area system consisting of four Myrinet- based clusters connected by ATM WANs. We finally discuss alternative programming models, namely object replication, JavaSpaces, and MPI for Java. Copyright 2000 John Wiley & Sons, Ltd. KEY WORDS: Java; RMI; metacomputing; parallel programming 1. INTRODUCTION Metacomputing is an interesting research area that tries to integrate geographically distributed computing resources into a single powerful system. Many applications can benefit from such an integration [1,2]. Metacomputing systems support such applications by addressing issues like resource allocation, fault tolerance, security, and heterogeneity. Most metacomputing systems are language- neutral and support a variety of programming languages. Recently, interest has also arisen in metacomputing architectures that are centered around a single language. This approach admittedly is restrictive for some applications, but also has many advantages, such as a simpler design and the usage of a single type system. In [3], the advantages of a Java-centric approach to metacomputing are described, including support for code mobility, distributed polymorphism, distributed garbage collection, and security. * Correspondence to: Rob van Nieuwpoort, Department of Computer Science, Vrije Universiteit, De Boelelaan, 1081 HV, Amsterdam, The Netherlands. E-mail: rob@cs.vu.nl Received 1 August 1999 Copyright 2000 John Wiley & Sons, Ltd. Revised 15 November 1999