Those of you familiar with writing scientific applications will probably agree that your first choice in languages for core algorithms will fall somewhere around Fortran, C or C++. Notice that Java is not traditionally placed in this list. I’ve had the professional pleasure of trying to explicitly mine performance from large Java-based applications. Outside of the typical loop optimizations, I found that Java, by design, isn’t capable of getting terribly “close to the metal.” That may be changing.
I stumbled upon an article at ZDNet that details a recent research paper on RDMA communications and the Java programming language. Researchers at the University of A Coruña in Spain have developed a Java library called Java Fast Sockets [JFS] that dramatically increased the throughput and reduces the overall latency associated with normal Java socket and NIO APIs.
From the paper:
This paper presents Java Fast Sockets (JFS), an optimized Java socket implementation on clusters for high performance computing. Current socket libraries do not efficiently support high-speed cluster interconnects and impose substantial communication overhead. JFS overcomes these performance constraints by: (1) enabling high-speed communication on cluster networks such as Scalable Coherent Interface (SCI), Myrinet and Gigabit Ethernet; (2) avoiding the need of primitive data type array serialization; (3) reducing buffering and unnecessary copies; and (4) reimplementing the protocol for boosting shared memory (intra-node) communication. Its interoperability and user and application transparency allow for immediate applicability on a wide range of parallel and distributed target applications. A performance evaluation conducted on a dual-core cluster has shown experimental evidence of throughput increase on SCI, Myrinet, Gigabit Ethernet and shared memory communication. It has also been analyzed the impact of this improvement on the overall application performance of representative parallel codes.
A small, native library provides the necessary operating system hooks for Java apps to take advantage of any RDMA capabilities found in JFS. This could prove very interesting for the acceptance of Java into more scientific realms. Many universities have completely dropped Fortran and C from the coursework, in favor of C++, Java and other object oriented programming languages.
For more info, read the full article here.