Skip to content

Building Phylanx on Rostam

Parsa Amini edited this page Apr 18, 2021 · 3 revisions

Note: This article only covers the compiling and running of Phylanx on Rostam. To know more about Rostam's hardware, available libraries, or Slurm workload manager, please refer to Rostam wiki.

Libraries

To build Phylanx, you need the following libraries, which all are available on Rostam. Rostam uses a module system to configure the environment for libraries. Rostam modules are written so that loading the module is enough for CMake to find the library. By using the module, you don't need to set CMake flags for the libraries.

HPX

There is a set of pre-compiled HPX available on Rostam. These builds are updated weekly. The following CMake flags are used to compile HPX.

  • HPX_WITH_THREAD_IDLE_RATES=ON
  • HPX_WITH_THREAD_LOCAL_STORAGE=ON
  • HPX_WITH_PARCELPORT_MPI=ON
  • HPX_WITH_PAPI=ON

Following builds are available:

Version Compiler Mode Boost Module Path
master gcc 10.2.0 debug 1.73.0 hpx/master-gcc-debug /opt/hpx/master-gcc-debug/
master gcc 8.1.0 release 1.67.0 hpx/master-gcc-release /opt/hpx/master-gcc-release/
master clang 6.0.0 debug 1.67.0 hpx/master-clang-debug /opt/hpx/master-clang-debug/
master clang 6.0.0 release 1.67.0 hpx/master-clang-release /opt/hpx/master-clang-release/

Note: Loading an HPX module will load all dependent modules.

Example

$ module load hpx/master-gcc-release
$ module list 
Currently Loaded Modulefiles:
  1) binutils/2.30                   5) papi/5.6.0
  2) gcc/8.1.0                       6) gperftools/2.7
  3) boost/1.67.0-gcc8.1.0-release   7) hpx/master-gcc-release
  4) mpi/mpich-3.2-x86_64


$ hello_world --hpx:version
...
Versions:
  HPX: V1.2.0-trunk (AGAS: V3.0), Git: 43dbd3843b
  Boost: V1.67.0
  Hwloc: V1.11.0
  MPI: MPICH V3.2, MPI V3.1

Build:
  Type: release
  Date: Jul 18 2018 11:53:21
  Platform: linux
  Compiler: GNU C++ version 8.1.0
  Standard Library: GNU libstdc++ version 20180502
  Allocator: tcmalloc

Python 3

Python 3.4 is installed system-wide on Rostam.

CMake

module load cmake/3.19.5

pybind11

The following modules are available:

Version Module
2.4.3 pybind11/2.4.3
2.5.0 pybind11/2.5.0
2.6.2 pybind11/2.6.2

Blaze

The following modules are available:

Version Module
3.7 blaze/3.7
3.8 blaze/3.8
master blaze/master

Note: Blaze module above is configured with -DBLAZE_SMP_THREADS=C++11 flag.

Note: The master module above is re-compiled from the updated upstream code every month.

Example:

module load hpx/stable-debug cmake/3.19.5 blaze/master pybind11/2.5.0
git clone https://github.com/STEllAR-GROUP/phylanx.git
cmake -S phylanx -B phylanx/build -DCMAKE_BUILD_TYPE=Debug
cmake --build phylanx/build --parallel
cmake -E chdir phylanx/build ctest