TU Chemnitz > Fakultät für Informatik > Professur für Rechnerarchitektur > Projects > VIA RPI
The project

Installation from source


  • Get the M-VIA source code from NERSC .

  • Change the default number of maximal pinable memory pages (VIPK_MAX_MAPPABLE_PAGES) in file Makefile.config to your needs. A value of about the half of your total memory is mostly a good choice and configure, compile and install M-VIA

  • Get a of of LAM 7.1 from www.lam-mpi.org/svn .

  • Download the VIA RPI sources and copy the complete source tree of the VIA RPI to /base_of_LAM_source/share/ssi/rpi, where "base_of_LAM_source" is the toplevel source directory of the LAM distribution.

  • Configure, compile and install LAM as described in the INSTALL file included in LAMs toplevel source directory. Additional options that are provided by the VIA RPI are the following:

    • --with-rpi-via=</where/is/mvia>
      Replace "/where/is/mvia" with the directory where the M-VIA library (libvipl.a) and header file (vipl.h) are located.

    • --with-rpi-via-device=<device>
      This defines the device that shall be used for all communication of LAM using the VIA RPI ( /dev/via_eth1).

    • --disable-rpi-via-ptmalloc
      ptmalloc is a package that catches "free-memory" system calls. The VIA RPI uses this to trigger some actions like unregistering the memory so that nothing within the RPI gets in a fuddle.

    • --with-rpi-via-tiny <size>
      This limits the size of messages that are sent by using the tiny protocol to "size" bytes. It is optimized for our test cluster.

    • --with-rpi-via-short <size>
      This limits the size of messages that are sent by using the short protocol to "size" bytes. It is optimized for our test cluster. Every message that is bigger is sent by using the long protocol.

    • --with-rpi-via-area <size>
      Defines the size in bytes of the memory areas, where remote processes may write messages to. If this is too small, messages may get overwritten. Even room for two short messages should be save for the most meaningful programs.

    • --with-rpi-via-sdesc <count>
      Number of datastructures that hold the description of a send operation. The bigger it is the more sendoperations can be started (posted to the send queue) at a time.

    • --with-rpi-via-rdesc <count>
      Number of datastructures that are needed for receiving data. In case this is too small, the program might crash. Even 2 should be save for the most meaningful programs.

Installation of the precompiled library


  • Get a CVS snapshot of LAM from www.lam-mpi.org/cvs .

  • Configure, compile and install it, using the additional configure options --with-modules --enable-shared --disable-static .

  • Get the M-VIA source code from NERSC .

  • Change the default number of maximal pinnable memory pages (VIPK_MAX_MAPPABLE_PAGES) in file Makefile.config to your needs. A value of about the half of your total memory is mostly a good choice.

  • Compile and install M-VIA to the default directory /usr/local. This is necessary because of the hard links to this inside the VIA-RPI library.

  • Download the VIA RPI shared library ssi_rpi_via.so .

  • Copy the ssi_rpi_via.so to <directory_where_LAM_is_installed>/lib/lam.

These are the otions the library has been build with.
  • --with-rpi-via=/usr/local

  • --with-rpi-via-device=/dev/via_eth1

  • --disable-rpi-via-ptmalloc

  • --with-rpi-via-tiny=16384

  • --with-rpi-via-short=32768

  • --with-rpi-via-area=65536

  • --with-rpi-via-sdesc=100

  • --with-rpi-via-rdesc=10

The usage section shows how this values may be changed at time of execution.


Tobias Wenzel
10. Juni 2004
Technische Universität Chemnitz, Straße der Nationen 62, 09107 Chemnitz
Impressum - Copyright © 2005 by TU Chemnitz, alle Rechte vorbehalten.
Druckansicht