Build Instructions

Visit the Github page

https://github.com/SCOREC/core

Download the code

You will need `git` installed for this.

git clone https://github.com/SCOREC/core.git scorec

Install dependencies

MPI is a required third-party library, there are two good implementations:
http://www.mpich.org/
http://www.open-mpi.org/

Zoltan and ParMetis are strongly recommended third-party libraries.
http://glaros.dtc.umn.edu/gkhome/metis/parmetis/download
http://www.cs.sandia.gov/~web1400/1400_download.html

It is recommended that you add the installation paths of third-party libraries to the environment variable

CMAKE_PREFIX_PATH

which will make the following step go a lot smoother

Configure

You will need `cmake`2.8 or higher installed for this.
An example configure script mpich3-gcc4.9.2-config.sh is provided

cd scores
mkdir build
cd build
../mpich3-gcc4.9.2-config.sh

For more advanced configuration, here is a description of some
available options:

  • Required: Set -DCMAKE_C_COMPILER to /path/to/C/mpi/compiler/wrapper
  • Required: Set -DCMAKE_CXX_COMPILER to /path/to/C++/mpi/compiler/wrapper
  • Optional: Set -DCMAKE_INSTALL_PREFIX to the directory where headers, libs, and binary files are installed when 'make install' is ran.
  • Optional: Specifying CMake dependency install locations
    • Set -DCMAKE_PREFIX_PATH to the prefix directories for optional components instead of setting the INSTALL_PREFIX for each component.
  • Optional: Build all executables and prepare for testing
    • Set -DIS_TESTING=OFF
  • Optional: Specifying ParMETIS and ZOLTAN install locations
    • Set -DMETIS_LIBRARY to /path/to/lib/libmetis.a
    • Set -DPARMETIS_LIBRARY to /path/to/lib/libparmetis.a
    • Set -DPARMETIS_INCLUDE_DIR to /path/to/parmetis/include where parmetis.h is located
    • Set -DZOLTAN_LIBRARY to /path/to/lib/libzoltan.a
    • Set -DZOLTAN_INCLUDE_DIR to /path/to/zoltan/include where zoltan.h is located

Compile

To compile all the libraries, use

make -j 4

To compile executables, list them as make targets:

make split zsplit balance

You can also just set IS_TESTING=True in CMake and
all executables will build by default.

The executables are then available in

scorec/build/test/

To install the libraries and headers after defining CMAKE_INSTALL_PREFIX, run

make install

Running tests

Download the test meshes

git clone :SCOREC/pumi-meshes.git meshes

Reconfigure with MESHES and IS_TESTING defined

-DIS_TESTING=ON
-DMESHES="/path/to/meshes" 

Rebuild

make -j 4

Run CTest

ctest -VV