Abstract
In recent years, there has been a surge of interest in Javabased volunteer computing systems, which aim to make it possible to build very large paralledl computing networks very quickly by enabling users to join a parallel computation by simply visiting a web page and running a Java applet on a standard browser. A key research issue in implementing such systems is that of choosing an appropriate programming model. While traditional models such as MPI-like message-passing can and have been ported to Java-based systems, they are not generally well-suited to the heterogeneous and dynamic structure of volunteer computing systems, where nodes can join and leave a computation at any time. In this paper, we present an implementation of the Bulk Synchronous Parallel (BSP) model, which provides programmers with familiar message-passing and remote memory primitives while remaining flexible enough to be used in dynamic environments. We show how we have implemented this model using the Bayanihan software framework to enable programmers to port the growing base of BSP-based parallel applications to Java while achieving adaptive parallelism and protection against both the random faults and intentional sabotage that are possible in volunteer computing systems.
Preview
Unable to display preview. Download preview PDF.
References
Proc. ACM 1997 Workshop on Java for Science and Engineering Computation. Las Vegas (1997) http://www.npac.syr.edu/users/gcf/03/javaforcse/ acmspecissue/latestpapers.html
Proc. ACM 1998 Workshop on Java for High-Performance Network Computing. Palo Alto (1998). http://www.cs.ucsb.edu/conferences/java98/
Baratloo, A., Karaul, M., Kedem, Z., Wyckoff, P.: Charlotte: Metacomputing on the Web. Proc. of the 9th International Conference on Parallel and Distributed Computing Systems. (1996) http://cs.nyu.edu/milan/charlotte/
Beberg, A. L., Lawson, J., McNett, D.: http://www.distributed.net/
BSP Worldwide Home Page. http://www.bsp-worldwide.org/
Cappello, P., Christiansen, B. O., Ionescu, M. F., Neary, M. O., Schauser, K. E., Wu. D.: Javelin: Internet-Based Parallel Computing Using Java. ACM Workshop on Java for Science and Engineering Computation. (1997) http://www.cs.ucsb.edu/research/superweb/
DOGMA Home Page. http://zodiac.cs.byu.edu/DOGMA/
Fox, G.C. ed.: Special Issue on Java for Computational Science and Engineering—Simulation and Modeling. Concurrency: Practice and Experience. 9(6) (1997).
Ferrari, A.: JPVM: Network Parallel Computing in Java. Proc. ACM 1998 Workshop on Java for High-Performance Network Computing. Palo Alto (1998). http://www.cs.virginia.edu/~ajf2j/jpvm.html
Geist, A., Beguelin, A., Dongarra, J., Jiang, W., Manchek, R., Sunderam, V.: PVM: Parallel Virtual Machine: A User’s Guide and Tutorial for Networked Parallelism. MIT Press. (1994) http://www.netlib.org/pvm3/book/pvm-book.html
Gladychev, P., Patel, A., O’Mahony, D.: Cracking RC5 with Java applets. Proc. ACM Workshop on Java for High-Performance Network Computing (1998).
Gropp, W., Lusk, E., Skjellum, A.: Using MPI. MIT Press. (1994)
Hill, J.M.D., Donaldson, S.R., Lanfear, T.: Process Migration and Fault Tolerance of BSPlib Programs Running on Networks of Workstations. Proc. Euro-Par’98. LNCS, Vol. 1470. Springer, Berlin (1998) 80–91
Hirano, S.: HORB: Distributed Execution of Java Programs. Proc. WWCA ’97. LNCS, Vol. 1274. Springer, Berlin (1997) 29–42 http://www.horb.org/
Nibhanupudi, M.V., Szymanski, B.K.: Adaptive Parallelism in the Bulk Synchronous Parallel model. Proc. Euro-Par’96. LNCS, Vol. 1124. Springer (1996)
Philippsen, M., Zenger, M.: JavaParty—Transparent Remote Objects in Java, in: Concurrency: Practice and Experience. 9(11)(1997) 1125–1242
Sarmenta, L.F.G.: Bayanihan: Web-Based Volunteer Computing Using Java. Proc. WWCA’98. LNCS, Vol. 1368. Springer, Berlin (1998) 444–461
Sarmenta, L.F.G., Hirano, S., Ward, S.A.: Towards Bayanihan: Building an Extensible Framework for Volunteer Computing Using Java. Proc. ACM Workshop on Java for High-Performance Network Computing (1998).
Sarmenta, L.F.G., Hirano, S.: Building and Studying Web-Based Volunteer Computing Systems Using Java. Future Generation Computer Systems, Special Issue on Metacomputing (1999) http://www.cag.lcs.mit.edu/bayanihan/
Skillicorn, D., Hill, J.M.D., McColl, W.F.: Questions and answers about BSP. Scientific Programming. 6(3) (1997) 249–274
Strumpen, V., Ramkumar, B.: Portable Chekpointing for Heterogeneous Architectures. Fault-Tolerant Parallel and Distributed Systems. Kluwer Academic Press (1998) 73–92
Sun Microsystems: Java Home Page. http://java.sun.com/
Valiant, L.G.: A bridging model for parallel computation. Communications of the ACM. 33(8) (1997) 103–111
Vanhelsuwe, L.: Create your own supercomputer with Java. JavaWorld. (Jan. 1997) http://www.javaworld.com/jw-01-1997/jw-01-dampp.ibd.html
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1999 Springer-Verlag
About this paper
Cite this paper
Sarmenta, L.F.G. (1999). An adaptive, fault-tolerant implementation of BSP for Java-based volunteer computing systems. In: Rolim, J., et al. Parallel and Distributed Processing. IPPS 1999. Lecture Notes in Computer Science, vol 1586. Springer, Berlin, Heidelberg . https://doi.org/10.1007/BFb0097965
Download citation
DOI: https://doi.org/10.1007/BFb0097965
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-65831-3
Online ISBN: 978-3-540-48932-0
eBook Packages: Springer Book Archive