Fault Tolerance Interface
topo.c File Reference

Topology functions for the FTI library. More...

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

Functions

int FTI_SaveTopo (FTIT_configuration *FTI_Conf, FTIT_topology *FTI_Topo, char *nameList)
 It writes the topology in a file for recovery. More...
 
int FTI_ReorderNodes (FTIT_configuration *FTI_Conf, FTIT_topology *FTI_Topo, int *nodeList, char *nameList)
 It reorders the nodes following the previous topology. More...
 
int FTI_BuildNodeList (FTIT_configuration *FTI_Conf, FTIT_execution *FTI_Exec, FTIT_topology *FTI_Topo, int *nodeList, char *nameList)
 It builds the list of nodes in the current execution. More...
 
int FTI_CreateComms (FTIT_configuration *FTI_Conf, FTIT_execution *FTI_Exec, FTIT_topology *FTI_Topo, int *userProcList, int *distProcList, int *nodeList)
 It builds the list of nodes in the current execution. More...
 
int FTI_Topology (FTIT_configuration *FTI_Conf, FTIT_execution *FTI_Exec, FTIT_topology *FTI_Topo)
 It builds and saves the topology of the current execution. More...
 

Detailed Description

Topology 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_BuildNodeList ( FTIT_configuration FTI_Conf,
FTIT_execution FTI_Exec,
FTIT_topology FTI_Topo,
int *  nodeList,
char *  nameList 
)

It builds the list of nodes in the current execution.

Parameters
FTI_ConfConfiguration metadata.
FTI_ExecExecution metadata.
FTI_TopoTopology metadata.
nodeListThe list of the nodes to fill.
nameListThe list of the node names to fill.
Returns
integer FTI_SCES if successful.

This function makes all the processes to detect in which node are they located and distributes the information globally to create an uniform mapping structure between processes and nodes.

Here is the call graph for this function:

int FTI_CreateComms ( FTIT_configuration FTI_Conf,
FTIT_execution FTI_Exec,
FTIT_topology FTI_Topo,
int *  userProcList,
int *  distProcList,
int *  nodeList 
)

It builds the list of nodes in the current execution.

Parameters
FTI_ConfConfiguration metadata.
FTI_ExecExecution metadata.
FTI_TopoTopology metadata.
userProcListThe list of the app. processess.
distProcListThe list of the distributed processes.
nodeListThe list of the nodes to fill.
Returns
integer FTI_SCES if successful.

This function makes all the processes to detect in which node are they located and distributes the information globally to create an uniform mapping structure between processes and nodes.

int FTI_ReorderNodes ( FTIT_configuration FTI_Conf,
FTIT_topology FTI_Topo,
int *  nodeList,
char *  nameList 
)

It reorders the nodes following the previous topology.

Parameters
FTI_ConfConfiguration metadata.
FTI_TopoTopology metadata.
nodeListThe list of the nodes.
nameListThe list of the node names.
Returns
integer FTI_SCES if successful.

This function writes the topology of the system (List of nodes and their ID) in a topology file that will be read during recovery to detect which nodes (and therefore checkpoit files) are missing in the new topology.

Here is the call graph for this function:

int FTI_SaveTopo ( FTIT_configuration FTI_Conf,
FTIT_topology FTI_Topo,
char *  nameList 
)

It writes the topology in a file for recovery.

Parameters
FTI_ConfConfiguration metadata.
FTI_TopoTopology metadata.
nameListThe list of the node names.
Returns
integer FTI_SCES if successful.

This function writes the topology of the system (List of nodes and their ID) in a topology file that will be read during recovery to detect which nodes (and therefore checkpoit files) are missing in the new topology.

Here is the call graph for this function:

int FTI_Topology ( FTIT_configuration FTI_Conf,
FTIT_execution FTI_Exec,
FTIT_topology FTI_Topo 
)

It builds and saves the topology of the current execution.

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

This function builds the topology of the system, detects and replaces missing nodes in case of recovery and creates the communicators required for FTI to work. It stores all required information in FTI_Topo.

Here is the call graph for this function: