Abstract
Ibis [3] is an ongoing research project in which we are building a Java-based Grid programming environment for distributed supercomputing applications. Java’s high portability allows parallel applications to run on a heterogeneous grid without requiring porting or recompilation. A major problem in using Java for high-performance computing, however, is the inferior performance and limited expressiveness of Java’s Remote Method Invocation (RMI). Earlier projects (e.g., Manta [1]) solved the performance problem, but at the cost of using a runtime system written in native code, which gives up Java’s high portability. The philosophy behind Ibis is to try to obtain good performance without using any native code, but allow native solutions as special-case optimizations. For example, a Grid application developed with Ibis can use a pure-Java RMI implementation over TCP/IP that will run “everywhere”; if the application runs on, say, a Myrinet cluster, Ibis can load a more efficient RMI implementation for Myrinet that partially uses native code. The pure-Java implementation of Ibis does several optimizations, using bytecode rewriting. For example, it boosts RMI performance by avoiding the high overhead of runtime type inspection that current RMI implementations have. The special-case implementations do more aggressive optimizations, even allowing zero-copy communication in certain cases.
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.