Fault Tolerance Interface
postckpt.c File Reference

Post-checkpointing functions for the FTI library. More...

#include "interface.h"
Include dependency graph for postckpt.c:

Functions

int FTI_Local (FTIT_configuration *FTI_Conf, FTIT_execution *FTI_Exec, FTIT_topology *FTI_Topo, FTIT_checkpoint *FTI_Ckpt)
 It returns FTI_SCES. More...
 
int FTI_SendCkpt (FTIT_configuration *FTI_Conf, FTIT_execution *FTI_Exec, FTIT_checkpoint *FTI_Ckpt, int destination, int postFlag)
 It sends Ckpt file. More...
 
int FTI_RecvPtner (FTIT_configuration *FTI_Conf, FTIT_execution *FTI_Exec, FTIT_checkpoint *FTI_Ckpt, int source, int postFlag)
 It receives Ptner file. More...
 
int FTI_Ptner (FTIT_configuration *FTI_Conf, FTIT_execution *FTI_Exec, FTIT_topology *FTI_Topo, FTIT_checkpoint *FTI_Ckpt)
 It copies ckpt. files in to the partner node. More...
 
int FTI_RSenc (FTIT_configuration *FTI_Conf, FTIT_execution *FTI_Exec, FTIT_topology *FTI_Topo, FTIT_checkpoint *FTI_Ckpt)
 It performs RS encoding with the ckpt. files in to the group. More...
 
int FTI_Flush (FTIT_configuration *FTI_Conf, FTIT_execution *FTI_Exec, FTIT_topology *FTI_Topo, FTIT_checkpoint *FTI_Ckpt, int level)
 It flushes the local ckpt. files in to the PFS. More...
 
int FTI_ArchiveL4Ckpt (FTIT_configuration *FTI_Conf, FTIT_execution *FTI_Exec, FTIT_checkpoint *FTI_Ckpt, FTIT_topology *FTI_Topo)
 It moves the level 4 ckpt. to the archive folder. More...
 
int FTI_FlushPosix (FTIT_configuration *FTI_Conf, FTIT_execution *FTI_Exec, FTIT_topology *FTI_Topo, FTIT_checkpoint *FTI_Ckpt, int level)
 It flushes the local ckpt. files in to the PFS using POSIX. More...
 
int FTI_FlushMPI (FTIT_configuration *FTI_Conf, FTIT_execution *FTI_Exec, FTIT_topology *FTI_Topo, FTIT_checkpoint *FTI_Ckpt, int level)
 It flushes the local ckpt. files in to the PFS using MPI-I/O. More...
 
int FTI_FlushSionlib (FTIT_configuration *FTI_Conf, FTIT_execution *FTI_Exec, FTIT_topology *FTI_Topo, FTIT_checkpoint *FTI_Ckpt, int level)
 It flushes the local ckpt. files in to the PFS using SIONlib. More...
 

Detailed Description

Post-checkpointing functions for the FTI library.

Copyright (c) 2017 Leonardo A. Bautista-Gomez All rights reserved

FTI - A multi-level checkpointing library for C/C++/Fortran applications

Revision 1.0 : Fault Tolerance Interface (FTI)

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Date
October, 2017

Function Documentation

int FTI_ArchiveL4Ckpt ( FTIT_configuration FTI_Conf,
FTIT_execution FTI_Exec,
FTIT_checkpoint FTI_Ckpt,
FTIT_topology FTI_Topo 
)

It moves the level 4 ckpt. to the archive folder.

Parameters
FTI_ConfConfiguration metadata.
FTI_ExecExecution metadata.
FTI_TopoTopology metadata.
FTI_CkptCheckpoint metadata.
Returns
integer FTI_SCES if successful.

This function is called if keepL4Ckpt is enabled in the configuration file. It moves the old level 4 ckpt file to the archive folder before the l4 folder in the global directory is deleted.

Here is the call graph for this function:

int FTI_Flush ( FTIT_configuration FTI_Conf,
FTIT_execution FTI_Exec,
FTIT_topology FTI_Topo,
FTIT_checkpoint FTI_Ckpt,
int  level 
)

It flushes the local ckpt. files in to the PFS.

Parameters
FTI_ConfConfiguration metadata.
FTI_ExecExecution metadata.
FTI_TopoTopology metadata.
FTI_CkptCheckpoint metadata.
levelThe level from which ckpt. files are flushed.
Returns
integer FTI_SCES if successful.

This function flushes the local checkpoint files in to the PFS.

FTI_Flush is either executed by application processes during FTI_Finalize or by the heads during FTI_PostCkpt.

Here is the call graph for this function:

int FTI_FlushMPI ( FTIT_configuration FTI_Conf,
FTIT_execution FTI_Exec,
FTIT_topology FTI_Topo,
FTIT_checkpoint FTI_Ckpt,
int  level 
)

It flushes the local ckpt. files in to the PFS using MPI-I/O.

Parameters
FTI_ConfConfiguration metadata.
FTI_ExecExecution metadata.
FTI_TopoTopology metadata.
FTI_CkptCheckpoint metadata.
levelThe level from which ckpt. files are flushed.
Returns
integer FTI_SCES if successful.

This function flushes the local checkpoint files in to the PFS.

Here is the call graph for this function:

int FTI_FlushPosix ( FTIT_configuration FTI_Conf,
FTIT_execution FTI_Exec,
FTIT_topology FTI_Topo,
FTIT_checkpoint FTI_Ckpt,
int  level 
)

It flushes the local ckpt. files in to the PFS using POSIX.

Parameters
FTI_ConfConfiguration metadata.
FTI_ExecExecution metadata.
FTI_TopoTopology metadata.
FTI_CkptCheckpoint metadata.
levelThe level from which ckpt. files are flushed.
Returns
integer FTI_SCES if successful.

This function flushes the local checkpoint files in to the PFS.

Here is the call graph for this function:

int FTI_FlushSionlib ( FTIT_configuration FTI_Conf,
FTIT_execution FTI_Exec,
FTIT_topology FTI_Topo,
FTIT_checkpoint FTI_Ckpt,
int  level 
)

It flushes the local ckpt. files in to the PFS using SIONlib.

Parameters
FTI_ConfConfiguration metadata.
FTI_ExecExecution metadata.
FTI_TopoTopology metadata.
FTI_CkptCheckpoint metadata.
levelThe level from which ckpt. files are flushed.
Returns
integer FTI_SCES if successful.

This function flushes the local checkpoint files in to the PFS.

Here is the call graph for this function:

int FTI_Local ( FTIT_configuration FTI_Conf,
FTIT_execution FTI_Exec,
FTIT_topology FTI_Topo,
FTIT_checkpoint FTI_Ckpt 
)

It returns FTI_SCES.

Parameters
FTI_ConfConfiguration metadata.
FTI_ExecExecution metadata.
FTI_TopoTopology metadata.
FTI_CkptCheckpoint metadata.
Returns
integer FTI_SCES.

This function just returns FTI_SCES to have homogeneous code.

Here is the call graph for this function:

int FTI_Ptner ( FTIT_configuration FTI_Conf,
FTIT_execution FTI_Exec,
FTIT_topology FTI_Topo,
FTIT_checkpoint FTI_Ckpt 
)

It copies ckpt. files in to the partner node.

Parameters
FTI_ConfConfiguration metadata.
FTI_ExecExecution metadata.
FTI_TopoTopology metadata.
FTI_CkptCheckpoint metadata.
Returns
integer FTI_SCES if successful.

This function copies the checkpoint files into the partner node. It follows a ring, where the ring size is the group size given in the FTI configuration file.

Here is the call graph for this function:

int FTI_RecvPtner ( FTIT_configuration FTI_Conf,
FTIT_execution FTI_Exec,
FTIT_checkpoint FTI_Ckpt,
int  source,
int  postFlag 
)

It receives Ptner file.

Parameters
FTI_ConfConfiguration metadata.
FTI_ExecExecution metadata.
FTI_CkptCheckpoint metadata.
sourcesouce group rank
postFlag0 if postckpt done by approc, > 0 if by head
Returns
integer FTI_SCES if successful.

This function receives ckpt file from partner process and saves it as Ptner file. Partner should call FTI_SendCkpt to send file.

Here is the call graph for this function:

int FTI_RSenc ( FTIT_configuration FTI_Conf,
FTIT_execution FTI_Exec,
FTIT_topology FTI_Topo,
FTIT_checkpoint FTI_Ckpt 
)

It performs RS encoding with the ckpt. files in to the group.

Parameters
FTI_ConfConfiguration metadata.
FTI_ExecExecution metadata.
FTI_TopoTopology metadata.
FTI_CkptCheckpoint metadata.
Returns
integer FTI_SCES if successful.

This function performs the Reed-Solomon encoding for a given group. The checkpoint files are padded to the maximum size of the largest checkpoint file in the group +- the extra space to be a multiple of block size.

Here is the call graph for this function:

int FTI_SendCkpt ( FTIT_configuration FTI_Conf,
FTIT_execution FTI_Exec,
FTIT_checkpoint FTI_Ckpt,
int  destination,
int  postFlag 
)

It sends Ckpt file.

Parameters
FTI_ConfConfiguration metadata.
FTI_ExecExecution metadata.
FTI_CkptCheckpoint metadata.
destinationdestination group rank
postFlag0 if postckpt done by approc, > 0 if by head
Returns
integer FTI_SCES if successful.

This function sends ckpt file to partner process. Partner should call FTI_RecvPtner to receive this file.

Here is the call graph for this function: