wiki:KaRMI/GM

Myrinet/GM Support for KaRMI

Introduction

Myrinet is a high performance network hardware from Myricom. There are several software packages to access this network hardware from user level applications. The "default" library that is bundled with the hardware is called GM. JavaParty supports Myrinet hardware by providing a native library that is linked with the GM library from Myricom. To use Myrinet, you will need the KaRMI version (rather than the RMI version) of JavaParty, because Myrinet is supported only by KaRMI as additional network technology.

Compile Myrinet/GM support

The sources for the native library can be found in the KaRMI or JavaParty distribution within the archive karmi-src.zip. It contains another archive in its top-level directory named:

gmlib.tgz

If you have all essential tools for building projects based on GNU automake and autoconf, you can build the library with the following commands:

./configure --prefix=<where-to-install-the-library>
make
make install

Make sure that you have set your CPPFLAGS environment variable in such a way that the compiler can find the header files of both, the Java JNI and GM. Also, do not forget to set the LDFLAGS environment variable such that the linker will find the GM library installed on your system. Assuming csh or tcsh as shell, you might have to enter something as follows:

setenv CPPFLAGS "-I/usr/jdk-1.3/include \
                 -I/usr/jdk-1.3/include/linux \
                 -I/opt/myricom/gm-1.4/include"

setenv LDFLAGS  "-I/opt/myricom/gm-1.4/lib"

JavaParty over GM

To use JavaParty with Myrinet over the GM library, you just have to include in your LD_LIBRARY_PATH environment variable the directory where you installed the native library in the previous step.

To verify that everything works fine, you can probe whether the Myrinet technology is detected by KaRMI:

java -jar jar/karmi.jar

If everything works as expected, you should at least get the following output:

Log messages during initialization:
-------------------------------------------------------------------
initializing 1. technology: uka.karmi.gm.GMTechnology
initialization successful.

initializing 3. technology: uka.karmi.socket.SocketTechnology
initialization successful.
-------------------------------------------------------------------

Note: Due to a limitation in KaRMI, at the moment only a single Java virtual machine per cluster node can use the Myrinet hardware at a time. If you start more than one VM per node, all surplus VMs will communicate over regular TCP/IP. See also the "Bug Parade" section.

Last modified 12 years ago Last modified on Aug 20, 2005 3:16:03 PM