-
Notifications
You must be signed in to change notification settings - Fork 76
Building Phylanx on Rostam
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.
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.
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.
$ 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.4 is installed system-wide on Rostam.
module load cmake/3.19.5
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 |
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.
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