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

VIA_RPI for LAM/MPI

A full description of the project, including details about to the design and source code can be downloaded from this site or from the publication archive of the Chemnitz University of Technology.

What is LAM/MPI ?

in short: An implementation of the MPI standard.

LAM/MPI is an open source MPI implementation of high quality that works on most flavors of Unix (POSIX). LAM/MPI provides high performance message passing on small off-the-shelf clusters as well as large SMP machines with high speed networks and even in heterogeneous environments. LAM-MPI is full MPI-1.2 conform and holds a great part of the MPI-2 functionality, such as:
  • Mpiexec
  • Thread support (MPI_THREAD_SINGLE - MPI_THREAD_SERIALIZED)
  • User functions at termination
  • Language interoperability
  • Dynamic processes (MPI_Comm_spawn)
Other useful features are official C++ bindings, parallel I/O (provided by ROMIO) and one-sided functionalities, guaranteed resource cleanup (Ctrl C means Ctrl C), fast mpirun startup time, support of checkpointing and restarting processes, and a strong debugging support all together with high performance. These features result in a very cluster friendly solution. Points that should be considered are a strong user base and active mailing lists. For more information about see www.lam-mpi.org .

What is an RPI ?

in short: A communication module of LAM.

LAM implements a mechanism, called SSI (System Services Interface), to encapsulate different functionalities into modules. So jobs like splitting a collective MPI operation into a sequence of single point to point operations are implemented as SSI modules and are exchangeable. One kind of the SSI modules is called RPI (Request progression interface). This is the one that has to care about how to transport data over a specific network. Now the VIA-RPI realizes this for supported Ethernet networks by using M-VIA.

What is VIA ?

in short: A defined standard of a communication protocol to speed up network performance.

VIA (Virtual Interface Architecture) is a communication protocol designed to improve network performance regarding latency. The improvement is gained by providing a direct user access to the network interface, without causing any intervention of the operating system kernel and intermediate copies of data. It defines a set of functions and their associated semantics used for moving data into and out of process memory. The design of the VI Architecture focuses on low latency and high bandwidth for exchanging data between processes with a minimum of CPU utilization. CPU utilization is minimized by avoiding interrupts and context switches whenever possible. Concurrency of the communication interfaces is managed without intervening the operating system. You can find more information within the developers guide.

And M-VIA ?

in short: A software implementation of the VIA standard.

VIA can easily be integrated into hardware and software. The first VIA network cards were released by hardware producers. Without special VIA hardware it is also possible to emulate it as a software library. An example for that is M-VIA - an implementation of the Virtual Interface Architecture (VIA) for Linux. M-VIA was developed as part of the NERSC PC Cluster Project. M-VIA coexists with traditional network protocols such as TCP/IP. M-VIA fulfills every Intel conformance test for VIA.


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