Skip to content

old installation

helq edited this page Jan 30, 2024 · 1 revision

NOTE:


This page is slightly out of date. An up-to-date walkthrough guide of installing CODES can be found in our tutorials section:

Tutorial: CODES Installation

Installation Guide


0 - Checkout, build, and install the trunk version of ROSS (https://github.com/carothersc/ROSS). At the time of release (0.6.0), ROSS's latest commit hash was 10d7a06b2d, so this revision is "safe" in the unlikely case incompatible changes come along in the future. If working from the CODES master branches, use the ROSS master branch.

    git clone http://github.com/carothersc/ROSS.git
    # if using 0.5.2 release: git checkout d3bdc07
    cd ROSS
    mkdir build
    cd build
    # note: other options for ARCH include i386 (for 32 bit machines),
    # bgp, and bgq (for Blue Gene systems)
    ARCH=x86_64 CC=mpicc CXX=mpicxx cmake -DCMAKE_INSTALL_PREFIX=../install ../
    make -j 3
    make install

the result should be that the latest version of ROSS is installed in the ROSS/install/ directory>

For more details on installing ROSS, go to

https://github.com/carothersc/ROSS/blob/master/README.md

If using ccmake to configure, don't forget to set CMAKE_C_COMPILER and CMAKE_CXX_COMPILER to mpicc/mpicxx

1 - If you are building CODES directly from the repository, run

./prepare.sh

2 - CODES requires pkg-config and non-ancient versions of flex/bison (i.e. there have been problems with the Mac version). Use your favorite package manager to obtain them.

3 - Configure CODES. This can be done in the source directory or in a dedicated build directory if you prefer out-of-tree builds. The CC environment variable must refer to an MPI compiler.

mkdir build
cd build
../configure --prefix=/path/to/codes/install CC=mpicc CXX=mpicxx PKG_CONFIG_PATH=/path/to/ross/install/lib/pkgconfig

To enable network tracing with dumpi (https://github.com/sstsimulator/sst-dumpi), use the option --with-dumpi=/path/to/dumpi/installwith configure.

NOTE: we only require libundumpi for trace processing. Hence, if building dumpi from source you may configure with --disable-libdumpi and --enable-libundumpi (this is especially useful if you have mpich3, which breaks libdumpi's function wrappers through constifying the MPI interface).

For building DUMPI with mpich3 versions and higher, use the following build options:

CFLAGS="-DMPICH_SUPPRESS_PROTOTYPES=1 -DHAVE_PRAGMA_HP_SEC_DEF=1"
./bootstrap.sh    
./configure --enable-libdumpi CC=mpicc --prefix=$INSTALL_PATH

4- Use the --with-darshan argument to configure to enable the optional Darshan I/O workload generator (http://www.mcs.anl.gov/research/projects/darshan/). In order to use this option, you must either have the darshan-util portion of Darshan installed in the default system path, or else add <DARSHAN_PREFIX>/lib/pkgconfig to your PKG_CONFIG_PATH environment variable before calling configure.

Machine-specific configurations:

  • Fusion (ANL): add the following keys to your ~/.soft file and run "resoft" prior to following the steps described in this file:
+python-2.7.3
 +autoconf-2.68
 +git
 +cmake

5- To install CODES with Cortex, see instructions at https://xgitlab.cels.anl.gov/codes/codes/wikis/codes-cortex-install

Notes on using the clang static analyzer

  • follow steps 0-2 as shown above, with one exception:
    • add the following argument to configure: CFLAGS=-I<path_to_your_mpi_include_directory>
  • edit Makefile, and delete the "CC = mpicc" (or similar) line
  • run "scan-build --use-cc=mpicc make"

Notes on using uncrustify

  • version 0.61 is required
  • build/install uncrustify from your favorite distro (0.61), OR download from https://github.com/bengardner/uncrustify and build from source (configure --prefix /path/to/install && make && make install)
  • either use uncrustify directly (see uncrustify --help) or use the provided reformat.sh tool which is a shim over some of the options (see reformat.sh -h)

Clone this wiki locally