Conference Paper

Implementation and Performance Evaluation of Socket and RMI based Java Message Passing Systems

Authors:
To read the full-text of this research, you can request a copy directly from the authors.

Abstract

Recently, as speeds of computer processors and networks are rapidly increasing, a lot of researches are actively progressing to develop efficient and lightweight parallel computing platforms using heterogeneous and networked computers. According to this technical trend, this paper designs and implements a message passing library called JMPI(Java Message Passing Interface) which complies with MPJ, the MPI standard specification for Java language. This library provides some graphic user interface tools to enable parallel computing environments to be configured very simply by their administrators and JMPI applications to be executed very conveniently. Especially, it is implemented as two versions based on two typical distributed system communication mechanisms, Socket and RMI. According to these communication mechanisms, the performance of each message passing system is evaluated by measuring its processing speed with respect to the increasing number of computers by executing three well-known applications. Experimental results show that the most efficient processing speedup can be obtained by increasing the number of the computers in consideration of network traffics generated by applications.

No full-text available

Request Full-text Paper PDF

To read the full-text of this research,
you can request a copy directly from the authors.

... In fact, this project is tailored to grid computing systems, disregarding the performance aspects. JMPI (by Bang & Ahn) [11] (not to be confused with [67]) is an implementation of the JGF MPJ API which can use either Java RMI or Java sockets for communications. However, the reported performance is quite low (it only scales up to two nodes). ...
... 11: RMI send overhead of a 3 KB Object on SCI ...
... Hence programming with socket is tough. Programmer can not make distributed system easily with socket [4]. Performance is measured through latency, bandwidth, and total processing time mainly. ...
... This framework can provide a better understanding to developers, designers and programmer managers to design and develop the high performance portable distributed system using pure java. Researcher designed JMPI using both RMI and socket [4]. There are further research areas to implement multiple process of an MPI application on same machine as a separate thread which can improve the performance. ...
Article
Full-text available
In this paper, we reviewed of several portable parallel programming paradigms for use in a distributed programming environment. The Techniques reviewed here are portable. These are mainly distributing computing using MPI pure java based, MPI native java based (JNI) and PVM. We will discuss architecture and utilities of each technique based on our literature review. We explored these portable distributed techniques in four important characteristics scalability, fault tolerance, load balancing and performance. We have identified the various factors and issues for improving these four important characteristics.
... Nevertheless , MPJ/Ibis is not thread-safe, and its Myrinet support is based on the GM library, which shows poorer performance than the MX library. @BULLET JMPI [4] is an implementation which can use either Java RMI or Java sockets for communications. However , the reported performance is quite low (it only scales up to two nodes). ...
... @BULLET Fast MPJ (F-MPJ) [30] is our scalable Java messagepassing implementation which provides high-speed networks support (see Section 3). MPJava [24] Jcluster [35] Parallel Java [17] mpiJava [3] P2P-MPI [13] MPJ Express [25] MPJ/Ibis [6] JMPI [4] F-MPJ [30] 3. JAVA FOR HPC: CURRENT RESEARCH This section describes current research efforts in Java for HPC, which can be classified into: (1) development of high performance Java sockets for HPC; (2) design and implementation of low-level Java message-passing devices; (3) improvement of the scalability of Java message-passing collective primitives; and (4) implementation and evaluation of efficient MPJ benchmarks. These ongoing projects are providing Java with several evaluations of their suitability for HPC, as well as solutions for increasing their performance and scalability in HPC systems with high-speed networks. ...
Conference Paper
The rising interest in Java for High Performance Computing (HPC) is based on the appealing features of this language for programming multi-core cluster architectures, particularly the built-in networking and multithreading support, and the continuous increase in Java Virtual Machine (JVM) performance. However, its adoption in this area is being delayed by the lack of analysis of the existing programming options in Java for HPC and evaluations of their performance, as well as the unawareness of the current research projects in this field, whose solutions are needed in order to boost the embracement of Java in HPC. This paper analyzes the current state of Java for HPC, both for shared and distributed memory programming, presents related research projects, and finally, evaluates the performance of current Java HPC solutions and research developments on a multi-core cluster with a high-speed network, InfiniBand, and a 24-core shared memory machine. The main conclusions are that: (1) the significant interest on Java for HPC has led to the development of numerous projects, although usually quite modest, which may have prevented a higher development of Java in this field; and (2) Java can achieve almost similar performance to native languages, both for sequential and parallel applications, being an alternative for HPC programming. Thus, the good prospects of Java in this area are attracting the attention of both industry and academia, which can take significant advantage of Java adoption in HPC.
... It is instantiated using a line of code as shown in Algorithm1. The codebase for this work is published on the Internet for public use and contributions (Bang & Ahn, 2007). Figure 4 shows the signalling in the implementation, and the package structure for the prototype implementation can be extrapolated from the Figure 3. Prior to obtaining server proxy object, client and server communication is done over secure socket connection. ...
Article
Full-text available
Service availability in Java RMI (Remote Method Invocation) implementations can easily be compromised in a number of ways. One of the ways is when an attacker controls a directory service and mounts an attack on a RMI client and data. Stubs in a registry can be de- registered or overwritten by the attacker. In addition, he could register his own stubs as proxies to a server implementation. This project focuses on the security pitfalls of using default RMI implementation, namely the lack of access control mechanism to manage server methods (and objects) and limitations of RMI registry. The RMI registry is a weak point that could be exploited. This work addresses this concern by investigating RMI implementation and customizing the behavior to support client/method authorization, authentication and elimination of the need for an RMI registry. The contribution of this work is that it removes inherent vulnerability in RMI, which is due to weak security in RMI registry implementation. In addition, an emerging toolkit, Haxe, for platform-agnostic application development was introduced and its realization of RMI was briefly demonstrated. Haxe exhibits virtually all the features in Java and could be exploited like it. It however presents more promising features for the next generation of applications and services.
... • JMPI [27] is an implementation which can use either Java RMI or Java sockets for communications. However, the reported performance is quite low (it only scales up to two nodes). ...
Article
The rising interest in Java for High Performance Computing (HPC) is based on the appealing features of this language for programming multi-core cluster architectures, particularly the built-in networking and multithreading support, and the continuous increase in Java Virtual Machine (JVM) performance. However, its adoption in this area is being delayed by the lack of analysis of the existing programming options in Java for HPC and thorough and up-to-date evaluations of their performance, as well as the unawareness on current research projects in this field, whose solutions are needed in order to boost the embracement of Java in HPC. This paper analyzes the current state of Java for HPC, both for shared and distributed memory programming, presents related research projects, and finally, evaluates the performance of current Java HPC solutions and research developments on two shared memory environments and two InfiniBand multi-core clusters. The main conclusions are that: (1) the significant interest in Java for HPC has led to the development of numerous projects, although usually quite modest, which may have prevented a higher development of Java in this field; (2) Java can achieve almost similar performance to natively compiled languages, both for sequential and parallel applications, being an alternative for HPC programming; (3) the recent advances in the efficient support of Java communications on shared memory and low-latency networks are bridging the gap between Java and natively compiled applications in HPC. Thus, the good prospects of Java in this area are attracting the attention of both industry and academia, which can take significant advantage of Java adoption in HPC.
... Socket programming is still necessary for heterogeneous applications. Bang and Ahn [2] studied the use of Socket programming and RMI for parallel computing applications. They found RMI to have a performance advantage for larger systems (12 computer clusters) and Sockets to have an advantage for smaller systems. ...
Article
This paper presents the results of a set of performance tests designed to determine the relative efficiencies of five different Java application level protocols used for peer-to-peer communications. The protocols tested include; datagram (UDP), DataStreams, ObjectStreams, remote method invocation, and piped streams. Efficiency was determined by measuring transmission latency, number of packets sent, and bytes transmitted. The tests revealed a great variation in packetization efficiency and latency between the protocols. Piped streams were the most efficient for intra processor communication. Datagrams were the next most efficient for inter-processor communication. Of the TCP methods, DataStreams were the most efficient, followed by RMI, and ObjectStreams.
... Java RMI(Remote Method Invocation)[8] [9] [10] [11] [12] 란 자바 언어로 네트워크상에서 떨어져 있는 객체의 메서드 를 투명하게 호출하는 것을 말한다. ...
Article
When developing an android mobile application the androids intent is used as a mechanism to send messages between local equipment of androids application inner part and other applications. But the androids intent does not support sending messages via each android products intent. If there is a way to support each androids equipments to send messages, it will be easier to make non-stopping services. Non-stopping service is used when the user is using the android to do word or searching services and suddenly changes to a different android product but still maintains the progress what was currently being done without waiting the programs to be loaded. It is possible to send messages to each android products by using the socket, but the connection must be maintained stably which is the weak point. In this paper, I am suggesting a BRIF(Broadcasting Remote Intent Framework) framework to send messages to different android products. BRIF is a framework that uses the Googles C2DM service which services asynchronous transmissions to different android products. This is organized with the C2DM server, RemoteContext Api, web server and RISP(Remote Intent Service Provider) which is will be easy to be used for the developers since there are no big changes for coding compared to the intent code.
... JMPI [5] flexible communication method, MPICH-G2 supports Grid environment and PACX-MPI provides extensibility for future computer architecture. MagPIe [7] and G-JavaMPI [8] are based on MPICH and MPICH-G2 respectively. ...
Article
In prevailing technology trends it is apparent that the network requirements and technologies will advance in future. Therefore the need of High Performance Computing (HPC) based implementation for interconnecting clusters is comprehensible for scalability of clusters. Grid computing provides global infrastructure of interconnecting clusters consisting of dispersed computing resources over Internet. On the other hand the leading model for HPC programming is Message Passing Interface (MPI). As compared to Grid computing, MPI is better suited for solving most of the complex computational problems. MPI itself is restricted to a single cluster. It does not support message passing over the internet to use the computing resources of different clusters in an optimal way. We propose a model that provides message passing capabilities between parallel applications over the internet. The proposed model is based on Architecture for Java Universal Message Passing (A-JUMP) framework and Enterprise Service Bus (ESB) named as High Performance Computing Bus. The HPC Bus is built using ActiveMQ. HPC Bus is responsible for communication and message passing in an asynchronous manner. Asynchronous mode of communication offers an assurance for message delivery as well as a fault tolerance mechanism for message passing. The idea presented in this paper effectively utilizes wide-area intercluster networks. It also provides scheduling, dynamic resource discovery and allocation, and sub-clustering of resources for different jobs. Performance analysis and comparison study of the proposed framework with P2P-MPI are also presented in this paper.
Article
This paper presents the results of a set of performance tests designed to determine the relative efficiencies of five different Java application level protocols used for peer-to-peer communications. Efficiency was determined by measuring transmission latency, number of packets sent, packetization of data, and bytes transmitted. The protocols tested include: datagram (UDP), DataStreams, ObjectStreams, Remote Method invocation, and Piped Streams. The tests revealed a great variation in packetization efficiency and latency between the protocols. A new record oriented data stream is proposed and prototyped and testing. Preliminary performance tests showed this new record oriented data stream to be several times more efficient than ObjectStreams.
Article
Full-text available
In today's scenario File Server using reliable connection oriented protocol like TCP are well active, but majorly they are task specific like for chat server, document file server, image server, audio file server or Video Server etc. If they all are present together the server might be using other file transfer protocol and application is not transparent. To promote easy and transparent file transfer across network using Java Sockets, we introduce a Java TCP Server. The Server is multiclient multithreaded multi format supported Java Application. The requesting client validates the user request at its end and improves server performance; on other hand Server provide data only to authenticated client and refuses connection to others. The server is profiled for number of clients for mixed type of Input files like text, doc, pdf, jpeg, mp3, flv and mp4. The client server design is well implemented on 2, 4, and 8 systems in our laboratory and tested for heap memory usage, server usage time and bandwidth utilization; results are well satisfied and become platform for this paper.
Chapter
High performance computing and its applications are innumerable and the fact that it has seen a tremendous change in the recent years has given it the chance of becoming the future of computing world. The growing need for computational speed has made parallel processing as a must for every sphere of computation. Java is seen as a suitable language for high performance computing due to its appealing features. In this paper we present a model which deploys an algorithm which is suitable for increasing the computational efficiency in calculating the Minimum Spanning Tree, using the features provided by remote method invocation in java. This model implements java’s built-in features like Multi-Threading, Java RMI (Remote Method Invocation), and Object Serialization.
Conference Paper
The Message Passing Interface (MPI) standard has enabled the creation of portable and efficient programs for distributed memory parallel comput ers. Since the first version of the standard was completed in 1994, a large num - ber of MPI implementations have become available. These include several portable implementations as well as optimized implementations from every major parallel computer manufacturer. The ubiquity and high quality of MPI implementations has been a key to the success of MPI. This review describes and evaluates a number of these implementations.
Conference Paper
Nowadays, there is a persistent demand of greater computational power to solve complex problems. High Performance Computing (HPC) with the modern trend to multi-core clusters accentuates the importance of parallelism and multithreading. This paper presents a Java based message passing implementation, named Architecture for Java Universal Message Passing (A-JUMP). A-JUMP provides flexibility to programmers in writing parallel applications using multiple programming languages. Moreover, it also provides facility to use different network protocols for message communication. The backbone of A-JUMP is HPC bus that facilitates the development of parallel applications. It provides the interoperability between different hardware resources, communication protocols and mediums. The HPC bus is built upon well-established industry standards; Java Messaging Service (JMS) and Java programming language. In HPC bus, ActiveMQ is solely responsible for communication and message passing in an asynchronous manner. The communication layer of A-JUMP is disentangled from the rest of HPC bus implementation that ensures that any changes in communication protocol and network topology will remain transparent to the end users. The components of A-JUMP includes; Job Scheduler, Monitoring, Machine Registry, and Code Migrator/Execution other than HPC bus. In addition, it includes a set of easy to use APIs for writing MPI-like code. The results demonstrate promising performance for standard benchmarks like ping pong latency tests and embarrassingly parallel (EP) code execution. The comparison of these results with MPICH and MPJ Express are also presented.
Article
Full-text available
Corrosion is a natural process that seeks to reduce the binding energy in metals. The end result of corrosion involves a metal atom being oxidized. Surface corrosion on aluminum aircraft skins, near joints and around fasteners, is often an indicator of buried structural corrosion and cracking In this paper we proposed a new method on which we are moving towards designing a method to detect the corrosion within the metals, the new method has defined texture analysis as the main method for this approach, the proposed enhancement shows less false positive and less false negative. The main functions used in this approach beside texture analysis are Edge detection, structure element and image dilation. The new approach has designed to detect a part of the image that has been affected by the corrosion, the tested images has showed a good result lying on detecting the corrosion part from the image.
Article
Full-text available
Software testing is an activity which is aimed for evaluating an attribute or capability of a program and ensures that it meets the required result. There are many approaches to software testing, but effective testing of complex product is essentially a process of investigation, not merely a matter of creating and following route procedure. It is often impossible to find all the errors in the program. This fundamental problem in testing thus throws open question, as to what would be the strategy that we should adopt for testing. Thus, the selection of right strategy at the right time will make the software testing efficient and effective. In this paper I have described software testing techniques which are classified by purpose.
Article
Full-text available
The paper introduces a situational approach for Web applications design. We, first, define development situations and identify their specific characteristics through situational factors in projects. Using these situational factors, the most appropriate design process-model is selected. A meta-modeling technique is proposed that integrates the Map formalism for modeling existing design process-models. Based on COMET meta-model we have redefined most proven existing web applications development methods into method components that we have stored in a components base to be selected. Finally, a new method of useful method fragments is assembled. The approach provides three types of guidance: (1) guidance in the selection of the most appropriate design process-model, (2) guidance in the selection of the most appropriate method components and (3) guidance in the application of selected method components. The method developed was validated in a case study and proposed tool was validated empirically.
Article
Full-text available
In this paper we investigate an approach to perform a distributed CTL Model checker algorithm on a network of workstations using Kleen three value logic, the state spaces is partitioned among the network nodes, We represent the incomplete state spaces as a Maximality labeled Transition System MLTS which are able to express true concurrency. we execute in parallel the same algorithm in each node, for a certain property on an incomplete MLTS , this last compute the set of states which satisfy or which if they fail are assigned the value .The third value mean unknown whether true or false because the partial state space lacks sufficient information needed for a precise answer concerning the complete state space .To solve this problem each node exchange the information needed to conclude the result about the complete state space. The experimental version of the algorithm is currently being implemented using the functional programming language Erlang.
Article
Full-text available
The Message Passing Interface (MPI) was introduced in June 1994 as a standard message passing API for parallel scientific computing. The original MPI standard had language bindings for Fortran, C and C++. A new generation of distributed, Internet- enabled computing inspired the later introduction of similar message passing APIs for Java [1][2]. Current implementations
Conference Paper
Full-text available
The MPJ programming interface has been dened by the Java Grande forum to provide MPI-like message passing for Java appli- cations. In this paper, we present MPJ/Ibis, the rst implementation of MPJ based on our Ibis programming environment for cluster and grid computing. By exploiting both exibilit y and eciency of Ibis, our MPJ implementation delivers high-performance communication, while being deployable on various platforms, from Myrinet-based clusters to grids. We evaluated MPJ/Ibis on our DAS-2 cluster. Our results show that MPJ/Ibis' performance is competitive to mpiJava on Myrinet and Fast Ethernet, and to C-based MPICH on Fast Ethernet.
Conference Paper
Full-text available
In this paper we sketch out a proposed reference implementation for message passing in Java (MPJ), an MPI-like API from the Message-Passing Working Group of the Java Grande Forum [1,2]. The proposal relies heavily on RMI and Jini for finding computational resources, creating slave processes, and handling failures. User-level communication is implemented efficiently directly on top of Java sockets.
Article
Full-text available
A basic prerequisite for parallel programming is a good communication API. The recent interest in using Java for scientific and engineering application has led to several international efforts to produce a message passing interface to support parallel computation. In this paper we describe and then discuss the syntax, functionality and performance of one such interface, mpiJava, an object-oriented Java interface to MPI. We first discuss the design of the mpiJava API and the issues associated with its development. We then move on to briefly outline the steps necessary to 'port' mpiJava onto a range of operating systems, including Windows NT, Linux and Solaris. In the second part of the paper we present and then discuss some performance measurements made of communications bandwidth and latency to compare mpiJava on these systems. Finally, we summarise our experiences and then briefly mention work that we plan to undertake.
Conference Paper
Full-text available
Execution of MPI applications on clusters and Grid deployments suffering from node and network failures motivates the use of fault tolerant MPI implementations. We present MPICH-V2 (the second protocol of MPICH-V project), an automatic fault tolerant MPI implementation using an innovative protocol that removes the most limiting factor of the pessimistic message logging approach: reliable logging of in transit messages. MPICH-V2 relies on uncoordinated checkpointing, sender based message logging and remote reliable logging of message logical clocks. This paper presents the architecture of MPICH-V2, its theoretical foundation and the performance of the implementation. We compare MPICH-V2 to MPICH-V1 and MPICH-P4 evaluating a) its point-to-point performance, b) the performance for the NAS benchmarks, c) the application performance when many faults occur during the execution. Experimental results demonstrate that MPICH-V2 provides performance close to MPICH-P4 for applications using large messages while reducing dramatically the number of reliable nodes compared to MPICH-V1.
Conference Paper
Full-text available
During the evolution of object-oriented (OO) systems, the preservation of a correct design should be a permanent quest. However, for systems involving a large number of classes and that are subject to frequent modifications, the detection and correction of design flaws may be a complex and resource-consuming task. The use of automatic detection and correction tools can be helpful for this task. Various works have proposed transformations that improve the quality of an OO system while preserving its behavior. In this paper, we investigate whether some OO metrics can be used as indicators for automatically detecting situations where a particular transformation can be applied to improve the quality of a system. The detection process is based on analyzing the impact of various transformations on these OO metrics using quality estimation models
Article
Full-text available
Little theory exists in the field of software system measurement. Concepts such as complexity, coupling, cohesion or even size are very often subject to interpretation and appear to have inconsistent definitions in the literature. As a consequence, there is little guidance provided to the analyst attempting to define proper measures for specific problems. Many controversies in the literature are simply misunderstandings and stem from the fact that some people talk about different measurement concepts under the same label (complexity is the most common case). There is a need to define unambiguously the most important measurement concepts used in the measurement of software products. One way of doing so is to define precisely what mathematical properties characterize these concepts, regardless of the specific software artifacts to which these concepts are applied. Such a mathematical framework could generate a consensus in the software engineering community and provide a means for better communication among researchers, better guidelines for analysts, and better evaluation methods for commercial static analyzers for practitioners. We propose a mathematical framework which is generic, because it is not specific to any particular software artifact, and rigorous, because it is based on precise mathematical concepts. We use this framework to propose definitions of several important measurement concepts (size, length, complexity, cohesion, coupling). It does not intend to be complete or fully objective; other frameworks could have been proposed and different choices could have been made. However, we believe that the formalisms and properties we introduce are convenient and intuitive. This framework contributes constructively to a firmer theoretical ground of software measurement
Article
Full-text available
While there is growing interest in using Java for high-performance applications, many in the highperformance computing community do not believe that Java can match the performance of traditional native message passing environments. This paper discusses critical issues that must be addressed in the design of Java based message passing systems. Efficient handling of these issues allows Java-MPI applications to obtain performance which rivals that of traditional native message passing systems. To illustrate these concepts, the design and performance of a pure Java implementation of MPI are discussed. 1 Introduction The Message Passing Interface (MPI) [1] has proven to be an effective means of writing portable parallel programs. With the increasing interest in using Java for high-performance computing several groups have investigated using MPI from within Java. Nevertheless, there are still many in the high-performance computing community who are skeptical that Java MPI performance can c...
Article
Full-text available
pplications that can exploit symmetric multi-processing, while remote procedure calls have been introduced in the early eighties for applications that need a client/server structure (Figure 1). For most scientists, both approaches in general have been limited by the computing facilities available within a single computer center. However, current high-end applications require resources that are much more diverse not only in terms of locations and distances but also in terms of functionality. A large number of geographically distributed resources for processing, communication, and storing of information across computing centers is required. The integration of such resources to a working environment is referred to as the computational Grid [6]. The distribution of applications over the Grid requires an additional framework that hides differences of the underlying distribution of resources---that is, that bridges between different operating systems, programming paradigms, and heterogeneous
Article
Full-text available
. In this paper we present a way of successfully tackling the difficulties of binding MPI to Java with a view to ensuring portability. We have created a tool for automatically binding existing native C libraries to Java, and have applied the Java--to--C Interface generating tool (JCI) to bind MPI to Java. The approach of automatic binding by JCI ensures both portability across different platforms and full compatibility with the MPI specification. To evaluate the resulting combination we have run a Java version of the NAS parallel IS benchmark on a distributed--memory IBM SP2 machine. 1 Introduction It is generally accepted that computers based on the emerging hybrid shared/distributed-memory parallel architectures will become the fastest and most cost-effective supercomputers over the next decade. This, however, makes the search for the most appropriate programming model even more important than it has been so far. Users need a flexible yet comprehensive interface which covers both th...
Article
Recent research efforts of parallel processing on non-dedicated clusters have focused on high execution performance, parallelism management, transparent access to resources, and making clusters easy to use. However, as a collection of independent computers used by multiple users, clusters are susceptible to failure. This paper shows the development of a coordinated checkpointing facility for the GENESIS cluster operating system. This facility was developed by exploiting existing operating system services. High performance and low overheads are achieved by allowing the processes of a parallel application to continue executing during the creation of checkpoints, while maintaining low demands on cluster resources by using coordinated checkpointing.
Conference Paper
(RMI) is too slow, especially for high performance computing. RMI is designed for wide-area and high-latency networks, it is based on a slow object serialization, and it does not support high-performance communication networks. The paper demonstrates that a much faster drop-in RMI and an e cient serialization can be designed and implemented completely in Java without any native code. Moreover, the re-designed RMI supports non-TCP/IP communication networks, even with heterogeneous transport protocols. As a by-product, a benchmark collection for RMI is presented. This collection { asked for by the Java Grande Forum from its first meeting { can guide JVM vendors in their performance optimizations. On PCs connected through Ethernet, the better serialization and the improved RMI save a median of 45 % (maximum of 71%) of the runtime for some set of arguments. On our Myrinet-based ParaStation network (a cluster of DEC Alphas) we save a median of 85 % (maximum of 96%), compared to standard RMI, standard serialization, and Fast Ethernet; a remote method invocation runs as fast as 115 s round trip time, compared to about 1.5 ms. 1
Conference Paper
The importance of Java as a language for high performance computing is significant. The latest Java virtual machine technology is closing the gap between computational speed of object oriented and procedural languages like C or Fortran. Because current computers are based on the parallel execution, the Java communication capabilities become more important. The main high level mechanism for Java distributed computing is RMI (Remote Method Invocation) technology which gains significant critique because of low performance. In this paper we describe transport layer implementation for KaRMI based on PMv2 communication library which is part of the SCore Cluster System Software. Presented implementation allows to use efficiently RMI technology with the GigabitEthernet cards. The performance of our solution is compared with the standard RMI and original KaRMI.
Article
this article, we argue that the rapid development of Java technology now makes it possible to support, in a single object-oriented framework, the different communication and coordination structures that arise in scientific applications. We outline how this integrated approach can be achieved, reviewing in the process the state-of-the-art in communication paradigms within Java. We also present recent evaluation results indicating that this integrated approach can be achieved without compromising on performance
Article
In current Java implementations, Remote Method Invocation (RMI) is too slow, especially for high-performance computing. RMI is designed for wide-area and high-latency networks, it is based on a slow object serialization, and it does not support high-performance communication networks. The paper demonstrates that a much faster drop-in RMI and an efficient drop-in serialization can be designed and implemented completely in Java without any native code. Moreover, the re-designed RMI supports non-TCP/IP communication networks, even with heterogeneous transport protocols. We demonstrate that for high-performance computing some of the official serialization's generality can and should be traded for speed. As a by-product, a benchmark collection for RMI is presented. On PCs connected through Ethernet, the better serialization and the improved RMI save a median of 45% (maximum of 71%) of the runtime for some set of arguments. On our Myrinet-based ParaStation network (a cluster of DEC Alphas) we save a median of 85% (maximum of 96%), compared to standard RMI, standard serialization, and Fast Ethernet; a remote method invocation runs as fast as 80 μs round trip time, compared with about 1.5 ms.
Conference Paper
This paper reports on the architecture and design of Starfish, an environment for executing dynamic (and static) MPI-2 programs on a cluster of workstations. Starfish is unique in being efficient, fault-tolerant, highly available, and dynamic as a system internally, and in supporting fault-tolerance and dynamicity for its application programs as well. Starfish achieves these goals by combining group communication technology with checkpoint/restart, and uses a novel architecture that is both flexible and portable and keeps group communication outside the critical data path, for maximum performance
Conference Paper
Checkpointing of parallel applications can be used as the core technology to provide process migration. Both checkpointing and migration, are an important issue for parallel applications on networks of workstations. The CoCheck environment which we present in this paper introduces a new approach to provide checkpointing and migration for parallel applications. CoCheck sits on top of the message passing library and achieves consistency at a level above the message passing system. It uses an existing single process checkpointer which is available for a wide range of systems. Hence, CoCheck can be easily adapted to both, different message passing systems and new machines