PTL Logo

Fault Tolerance Research @ Open Systems Laboratory

Application Level Checkpoint/Restart Interfaces

  •  

Installation

Source Code Access:

The Application Checkpoint/Restart Library does not have a tarball release at this time. A Mercurial repository has been setup at the link below containing the current development head:

Downloading (Mercurial Required):

shell$ hg clone http://bitbucket.org/jjhursey/ompi-app-cr-lib/

Building Open MPI with the Application C/R Library:

Currently, the Application C/R Library is shipped as part of the Open MPI project. The only reason for this dependency is because we were too lazy to make our own build system. So we piggyback on theirs at the moment. In a later revision we will separate the two projects more cleanly.

Building Open MPI:

1) Run autogen.sh

shell$ ./autogen.sh

2) Run Configure

These are the options that I usually use. You really only need the first two options:
  --enable-mpi-ext=appcr and --with-ft=cr

shell$ ./configure --prefix=/path/to/install/dir \
   --enable-mpi-ext=appcr \
   --with-ft=cr \
   --enable-ft-thread \
   --enable-mpi-threads \
   --enable-binaries \
   --with-devel-headers \
   --disable-io-romio \
   --enable-debug \
   --without-memory-manager

If you need CIFTS FTB support also include the following option:
  -with-ftb=$PATH_TO_FTB

3) Make and Make Install

shell$ make -j 2
shell$ make -j 2 install

Implementation Headers:

In your application you will need to add the following headers:
#include <mpi.h>
#include <mpi-ext.h>

This is instead of the following header (which will be introduced in a later
implementation once the App. C/R Library is pulled out of the Open MPI source.);
#include <appcr.h>

Building your Application:

In this version of the implementation you do not need to add any additional options to the traditional building procedure. Eventually, we will separate out the appcr library, but currenlty it is rolled into Open MPI.

shell$ mpicc myapp.c -o myapp

Running your Application:

Your application will run as normal, however there are a few environment variables that need to be set before your application can properly use the Application C/R Library. See our Examples page for more details.