The Ibis Portability Layer (IPL)
The Ibis Portability layer (IPL) is a communication library specifically designed for usage in a grid environment. It has a number of properties which help to achieve its goal of providing programmers with an easy to use, reliable grid communication infrastructure
Ibis was designed to be used in a multi layer system. On top of the system are the applications. These applications can use any of the programming models present in the Ibis project. The Ibis Portability Layer (IPL) acts as a common interface for the different programming models to the bottom implementation layer. Multiple implementations are available. Some, such as TcpIbis using 100% Java code to ensure portability, and some, such as the MPI based Ibis implementation taking advantage of local high speed networks using native code.
For more in depth information see the following resources:
ImplementationsThe IPL communication library includes a number of implementations.
The TCP based implementation Tcp is written in 100% pure Java, using the sockets available in the standard Java library. As such it is possible to use this Ibis implementation on any system which has a Java Virtual Machine Available.
Like the TCP version, the Ibis based on Smartsockets is written in 100% pure Java. However, since it uses the Smartsockets library of the Ibis project it also has very good support for dealing with network difficulties such as firewalls and NATs. Currently, this is the default IPL implementation used.
One of the most used ways of using a high speed network in clusters today is MPI. For this reason practically every high speed network in use today has the possibility to communicate using a implementation of MPI. For this reason we are currently in the process of builing an Ibis implementation which uses MPI as the underlying communication layer. Early results are very promising, but more work is needed to complete this implementation fully.
An implementation we are currently looking at is an Ibis which sends message over a peer-to-peer network. This would have the advantage that it would be very resilant agains network problems such as failing connections, and firewalls.
An interesting addition to the available Ibisses would be an Ibis implemented on top of UDP. This is currently in progress.