ASIM team
LIP6 Laboratory
Paris, France

Software Components

MPC software components include kernel loadable modules furnishing advanced communication layers, external daemons for monitoring, and an optimized dedicated PVM library and daemon for developpers. 

To download the whole source/binary tree of MPC-OS (including an emulator of hardware components), simply mail us !

Full description of MPC-OS (software components of MPC )

Click here to get the Ph.D Thesis manuscript of A. Fenyo : it contains a full description of the major software components relative to MPC.

Our Platforms

ASIM team owns an experimental 6-nodes platform of MPC. A new 4-nodes MPC should be available soon at LIP6. Moreover, several laboratories have experimented the MPC parallel computer with our emulator. A demonstration of a 4-nodes MPC took place at DATE'98. This demonstration is based on a tty driver for HSL, on top of which PPP is started to provide full TCP-IP capacity on the 4-nodes platform. Then we run the multimedia game `doom' to demonstrate the availability of the hardware and software components. 


An optimized dedicated port of PVM to MPC has been performed. It will be available 2nd quarter 1998. It has been developed in cooperation with ENST. You can find more informations about this optimized version of PVM here

The MPC Parallel Computer of LIP6 laboratory

You can now launch your PVM jobs on our MPC machine. You can find more informations about this here (in french).

MPC Communication Kernel : MPC-OS

  • Online old version 3.0 of MPC-OS installation guide - new version 4.2 is under construction 
  • Old version 3.0 of MPC-OS installation guide in postscript form 
  • Online old version 3.0 of MPC-OS programming guide - new version 4.2 is under construction 
  • Old version 3.0 of MPC-OS programming guide in postscript form 
  • A paper about MPC-OS, published at RenPar'10, in postscript and HTML form 
MPC-OS contains about 40000 lines of mixed C/C++/perl/shell/XWindow software featuring : 
  • source and binary distribution available for FreeBSD-3.x 
  • self configuration and compilation of the package (automake/autoconf) 
  • basic kernel communication layers : hsldriver, PUT, SLR/P, SLR/V 
  • optimized implementation of secure layers : DDSCP, RFCP, SFCP, MICP - Slides available online (HTML) 
  • advanced memory locking system (wiring the ranges of virtual addresses during inter-nodes DMA) 
  • multithreaded Object Request Broker development toolkit 
  • manager for negociation of resources (built on top of the multithreaded ORB). The Loader daemon handles task activation. The manager handles new task activation (throw communications with the Loader daemon), application classes creation (task managment), channel negociations between tasks and allocation/deallocation of kernel data structures for communication end-points. 
  • Automatic computation of routing tables from a description of the topology of the network 
  • many external daemons and programs (monitoring, benchmarking, etc.) : 
    • hslclient (RPC transport and configuration client) 
    • hslserver (RPC transport and configuration server) 
    • getevents (kernel events retriever) 
    • vmspace (memory analyser) 
    • init_pcibus (configuration of PCI bus) 
    • readpci (read from PCI configuration space on a device) 
    • writepci (write to PCI configuration space on a device) 
    • readphys (direct read in physical memory) 
    • writephys (direct write in physical memory) 
    • dumpPCIDDC (dump the internal tables used by PCIDDC) 
    • dumptables (dump internal tables used by SLR/SCP) 
    • testputbench (benchmark and test program for layer PUT) 
    • testputrecv (test program for layer PUT) 
    • testputsend (direct access to PUT API) 
    • prot_dump (dump the MPC-OS vm map entries used to wire data) 
    • prot_garbcoll (start a garbage collection inside the MPC-OS vm map entries) 
  • mpcview : a graphical XWindow interface to manage PCIDDC 
  • user-level layer PUT (useraccess library) 
  • MDCP, a new layer on top of SLR/P, provides read/write primitives without any callback function to handle (easier to use than lower level kernel layers - Note that MDCP is still `zero-copy' if the write() primitive is called before the read() one) 
  • SELECT implementation to wait for events on file descriptors and channels in the same time 
  • libmpc : user level library allowing the user to make requests to the manager (spawn tasks, channel allocation...) and to the MDCP kernel layer 
  • libsocketwrap is a shared object that wraps the socket API and maps those syscalls into libmpc calls. This library can be dynamically linked into any application to provide a binary compatible port to MPC-OS. libsocketwrap has been tested with the MPICH implementation of MPI, on a 2 nodes MPC computer (testbench : distributed computation of PI). libsocketwrap needs a little work to become fully functionnal with other high level toolkits 
  • many examples of use (addlpe, fetchobj, on, off, receivelpe, testrecv, testrecv2, testrecv2wait, testrecvv, testsend, testsend2, testsend2wait, testsendv, testuseraccess, vmtest, prot_wire) 
  • emulator of PCIDDC and RCube chips on top of Ethernet for people wanting to start developing on MPC, without having any MPC computer 
The team of B. Folliot developed at LIP6 a distributed swap kernel module on top of SLR/P, presented in a paper (P. Cadinot, N. Dorta, B. Folliot - 48Kb) published in RenPar'97. 


HTML-4.0 compliantMade With Cascading Style SheetsPowered by FreeBSDPowered by Apache

Server design A. Fenyö - contact people
About this Web Site
$Date: 1999/06/24 11:50:16 $ 
Copyright © 1997-1998 UPMC/LIP6
All rights reserved