An open API service indexing awesome lists of open source software.

https://github.com/sandialabs/fenix

Fenix: A Portable, Flexible Fault Tolerance Programming Framework for MPI Applications
https://github.com/sandialabs/fenix

scr-2147 snl-comp-science-libs snl-other

Last synced: about 1 month ago
JSON representation

Fenix: A Portable, Flexible Fault Tolerance Programming Framework for MPI Applications

Awesome Lists containing this project

README

        

```
************************************************************************

_|_|_|_| _|_|_|_| _| _| _|_|_| _| _|
_| _| _|_| _| _| _| _|
_|_|_| _|_|_| _| _| _| _| _|
_| _| _| _|_| _| _| _|
_| _|_|_|_| _| _| _|_|_| _| _|

************************************************************************
```

# Installation

These instructions assume you are in your home directory.

1. Checkout Fenix sources
* For example: ` git clone

&& cd Fenix`
2. Create a build directory.
3. Specify the MPI C compiler to use. [Open MPI 5+](https://github.com/open-mpi/ompi/tree/v5.0.x) is the required version.
* Check out the CMake documentation for the best information on how to do this, but in general:
* Set the CC environment variable to the correct `mpicc`,
* Invoke cmake with `-DCMAKE_C_COMPILER=mpicc`,
* Add the mpi install directory to CMAKE_PREFIX_PATH.
* If you experience segmentation faults during simple MPI function calls, this is often caused by accidentally building against multiple versions of MPI. See the FENIX_SYSTEM_INC_FIX CMake option for a potential fix.
4. Run ` cmake ../ -DCMAKE_INSTALL_PREFIX=... && make install`
5. Optionally, add the install prefix to your CMAKE\_PREFIX\_PATHS environment variable, to enable `find_package(fenix)` in your other projects.


// ************************************************************************
//
// Copyright (C) 2016 Rutgers University and Sandia Corporation
//
// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
// the U.S. Government retains certain rights in this software.
//
// 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 Corporation nor the names of the
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY RUTGERS UNIVERSITY AND SANDIA
// CORPORATION "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
// RUTGERS UNIVERSITY, SANDIA CORPORATION OR THE 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.
//
// Authors Marc Gamell, Matthew Whitlock, Eric Valenzuela, Keita Teranishi, Manish Parashar
// and Michael Heroux
//
// Questions? Contact Keita Teranishi ([email protected]) and
// Marc Gamell ([email protected])
// ************************************************************************