From 39d2e9d09165ad1ce5669ccb35f54550ae4f9796 Mon Sep 17 00:00:00 2001 From: Guido Reina Date: Tue, 23 Nov 2021 12:10:56 +0100 Subject: [PATCH 1/8] builds ls1 with mpi on centos 8 for now. --- tools/singularity/base-system.def | 10 ++++++++++ tools/singularity/ls1-megamol.def | 17 +++++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 tools/singularity/base-system.def create mode 100644 tools/singularity/ls1-megamol.def diff --git a/tools/singularity/base-system.def b/tools/singularity/base-system.def new file mode 100644 index 0000000000..f5fa5179e0 --- /dev/null +++ b/tools/singularity/base-system.def @@ -0,0 +1,10 @@ +bootstrap: library +from: centos:8 + +%post + dnf makecache + dnf -y install filesystem + dnf -y install gcc-toolset-10-gcc gcc-toolset-10-gcc-c++ gcc-toolset-10-gdb + # can't get this to work... + #echo \#\!/bin/bash > /etc/profile.d/gcc10.sh + #echo source scl_source enable gcc-toolset-10 >> /etc/profile.d/gcc10.sh \ No newline at end of file diff --git a/tools/singularity/ls1-megamol.def b/tools/singularity/ls1-megamol.def new file mode 100644 index 0000000000..ecf76cb2cf --- /dev/null +++ b/tools/singularity/ls1-megamol.def @@ -0,0 +1,17 @@ +bootstrap: localimage +from: base.sif + +%post + dnf -y install mpich mpich-devel + dnf -y install cmake git + mkdir -p /tmp + cd /tmp + git clone https://github.com/ls1mardyn/ls1-mardyn.git --depth 1 + source scl_source enable gcc-toolset-10 + export CFLAGS=-I/usr/include/mpich-x86_64 + export CXXFLAGS=-I/usr/include/mpich-x86_64 + cd ls1-mardyn + cmake -B build -D ENABLE_MPI=ON -D CMAKE_INSTALL_PREFIX=/opt/ls1 -D CMAKE_C_COMPILER=/usr/lib64/mpich/bin/mpicc -D CMAKE_CXX_COMPILER=/usr/lib64/mpich/bin/mpic++ + cmake --build build -- -j + # this would work but does nothing currently + cmake --install build \ No newline at end of file From 366993484e3bd153d8ffa57665068688869bf83f Mon Sep 17 00:00:00 2001 From: Guido Reina Date: Tue, 23 Nov 2021 13:23:48 +0100 Subject: [PATCH 2/8] inject the local sources instead --- tools/singularity/ls1-megamol.def | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/tools/singularity/ls1-megamol.def b/tools/singularity/ls1-megamol.def index ecf76cb2cf..48fb2eb3c1 100644 --- a/tools/singularity/ls1-megamol.def +++ b/tools/singularity/ls1-megamol.def @@ -1,16 +1,18 @@ bootstrap: localimage from: base.sif +%files + ../../../ls1-mardyn/cmake /tmp/ls1-mardyn/cmake + ../../../ls1-mardyn/src /tmp/ls1-mardyn/src + ../../../ls1-mardyn/CMakeLists.txt /tmp/ls1-mardyn/CMakeLists.txt + %post dnf -y install mpich mpich-devel dnf -y install cmake git - mkdir -p /tmp - cd /tmp - git clone https://github.com/ls1mardyn/ls1-mardyn.git --depth 1 source scl_source enable gcc-toolset-10 export CFLAGS=-I/usr/include/mpich-x86_64 export CXXFLAGS=-I/usr/include/mpich-x86_64 - cd ls1-mardyn + cd /tmp/ls1-mardyn cmake -B build -D ENABLE_MPI=ON -D CMAKE_INSTALL_PREFIX=/opt/ls1 -D CMAKE_C_COMPILER=/usr/lib64/mpich/bin/mpicc -D CMAKE_CXX_COMPILER=/usr/lib64/mpich/bin/mpic++ cmake --build build -- -j # this would work but does nothing currently From e521b2abdd0338833b81fb6b704a2fb16081a2da Mon Sep 17 00:00:00 2001 From: Guido Reina Date: Fri, 26 Nov 2021 16:17:24 +0100 Subject: [PATCH 3/8] more wip --- .gitignore | 1 + tools/singularity/ls1-megamol.def | 37 +++++++++++++++++++++++++++++-- 2 files changed, 36 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index fce587059b..0f39952a52 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,4 @@ src/MarDyn_*.* *.a *.so doxygen_doc/ +tools/singularity/*.sif diff --git a/tools/singularity/ls1-megamol.def b/tools/singularity/ls1-megamol.def index 48fb2eb3c1..ee8ae626fd 100644 --- a/tools/singularity/ls1-megamol.def +++ b/tools/singularity/ls1-megamol.def @@ -1,5 +1,6 @@ bootstrap: localimage from: base.sif +stage: build %files ../../../ls1-mardyn/cmake /tmp/ls1-mardyn/cmake @@ -7,13 +8,45 @@ from: base.sif ../../../ls1-mardyn/CMakeLists.txt /tmp/ls1-mardyn/CMakeLists.txt %post + MEGAMOL_URL="https://github.com/reinago/megamol.git" + MEGAMOL_BRANCH="flagstorage_serialization" + OSPRAY_URL="https://github.com/ospray/ospray.git" + OSPRAY_BRANCH="v2.8.0" + MY_BUILD_CONFIG="Release" + dnf -y install mpich mpich-devel dnf -y install cmake git + dnf -y --enablerepo=powertools install ninja-build + # only for interactive debugging, disable later + dnf -y install nano source scl_source enable gcc-toolset-10 + + # ls1 export CFLAGS=-I/usr/include/mpich-x86_64 export CXXFLAGS=-I/usr/include/mpich-x86_64 cd /tmp/ls1-mardyn cmake -B build -D ENABLE_MPI=ON -D CMAKE_INSTALL_PREFIX=/opt/ls1 -D CMAKE_C_COMPILER=/usr/lib64/mpich/bin/mpicc -D CMAKE_CXX_COMPILER=/usr/lib64/mpich/bin/mpic++ - cmake --build build -- -j + cmake --build build --config ${MY_BUILD_CONFIG} -- -j # this would work but does nothing currently - cmake --install build \ No newline at end of file + cmake --install build --config ${MY_BUILD_CONFIG} + + # # MegaMol half-build to fetch TBB + # cd /tmp + # git clone --depth 1 --branch ${MEGAMOL_BRANCH} ${MEGAMOL_URL} + # cd megamol + # cmake -G Ninja -B build -D ENABLE_MPI=ON -D MPI_GUESS_LIBRARY_NAME= -D ENABLE_GL=OFF -D CMAKE_INSTALL_PREFIX=/opt/megamol -D CMAKE_MPI_C_COMPILER=gcc -D CMAKE_MPI_CXX_COMPILER=g++ + # cmake --build build --config ${MY_BUILD_CONFIG} + + # # OSPRay complete build, using MegaMol's TBB + # cd /tmp + # TBB_ROOT=/tmp/megamol/build/_deps/tbb-install + # git clone --depth 1 --branch ${OSPRAY_BRANCH} ${OSPRAY_URL} + # cmake -S scripts/superbuild -B build/super -D DOWNLOAD_TBB=false -D BUILD_EMBREE_FROM_SOURCE=false -D CMAKE_INSTALL_PREFIX=/opt/ospray -D CMAKE_BUILD_TYPE=Release -G Ninja + # cmake --build build/super --config ${MY_BUILD_CONFIG} + # cmake --install build/super --config ${MY_BUILD_CONFIG} + + # # now full MegaMol with OSPRAY + # cd /tmp/megamol + # cmake -B build -D BUILD_PLUGIN_MMOSPRAY=ON + # cmake --build build --config ${MY_BUILD_CONFIG} + # cmake --install build --config ${MY_BUILD_CONFIG} From 18977b87cb805c92cb5075b08520af1971a58c7b Mon Sep 17 00:00:00 2001 From: Guido Reina Date: Fri, 26 Nov 2021 21:53:58 +0100 Subject: [PATCH 4/8] libuuid --- tools/singularity/ls1-megamol.def | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/singularity/ls1-megamol.def b/tools/singularity/ls1-megamol.def index ee8ae626fd..761fe5cb24 100644 --- a/tools/singularity/ls1-megamol.def +++ b/tools/singularity/ls1-megamol.def @@ -15,7 +15,7 @@ stage: build MY_BUILD_CONFIG="Release" dnf -y install mpich mpich-devel - dnf -y install cmake git + dnf -y install cmake git libuuid-devel dnf -y --enablerepo=powertools install ninja-build # only for interactive debugging, disable later dnf -y install nano From 3e4069eee6096977d63b6b136f8a594e4e1e706a Mon Sep 17 00:00:00 2001 From: Guido Reina Date: Mon, 29 Nov 2021 19:22:17 +0100 Subject: [PATCH 5/8] intermediate step, build up to megamol --- tools/singularity/devenv.def | 10 ++++++ tools/singularity/ls1-megamol.def | 52 ++++++++++++++++++------------- 2 files changed, 41 insertions(+), 21 deletions(-) create mode 100644 tools/singularity/devenv.def diff --git a/tools/singularity/devenv.def b/tools/singularity/devenv.def new file mode 100644 index 0000000000..25227a5895 --- /dev/null +++ b/tools/singularity/devenv.def @@ -0,0 +1,10 @@ +bootstrap: localimage +from: base.sif +stage: build + +%post + dnf -y install mpich mpich-devel + dnf -y install cmake git libuuid-devel ncurses-devel + dnf -y --enablerepo=powertools install ninja-build + # only for interactive debugging, disable later + dnf -y install nano diff --git a/tools/singularity/ls1-megamol.def b/tools/singularity/ls1-megamol.def index 761fe5cb24..c412964f64 100644 --- a/tools/singularity/ls1-megamol.def +++ b/tools/singularity/ls1-megamol.def @@ -1,47 +1,57 @@ bootstrap: localimage -from: base.sif +from: devenv.sif stage: build %files - ../../../ls1-mardyn/cmake /tmp/ls1-mardyn/cmake - ../../../ls1-mardyn/src /tmp/ls1-mardyn/src - ../../../ls1-mardyn/CMakeLists.txt /tmp/ls1-mardyn/CMakeLists.txt + # ../../../ls1-mardyn/cmake/ /tmp/ls1-mardyn/cmake/ + # ../../../ls1-mardyn/src/ /tmp/ls1-mardyn/src/ + # ../../../ls1-mardyn/CMakeLists.txt /tmp/ls1-mardyn/CMakeLists.txt %post + LS1_URL="https://github.com/reinago/ls1-mardyn.git" + LS1_BRANCH="master" MEGAMOL_URL="https://github.com/reinago/megamol.git" - MEGAMOL_BRANCH="flagstorage_serialization" + MEGAMOL_BRANCH="fs_x" OSPRAY_URL="https://github.com/ospray/ospray.git" OSPRAY_BRANCH="v2.8.0" MY_BUILD_CONFIG="Release" - dnf -y install mpich mpich-devel - dnf -y install cmake git libuuid-devel - dnf -y --enablerepo=powertools install ninja-build - # only for interactive debugging, disable later - dnf -y install nano + # replaced by devenv intermediate container + # dnf -y install mpich mpich-devel + # dnf -y install cmake git libuuid-devel ncurses-devel + # dnf -y --enablerepo=powertools install ninja-build + # # only for interactive debugging, disable later + # dnf -y install nano + source scl_source enable gcc-toolset-10 - # ls1 + # # ls1 export CFLAGS=-I/usr/include/mpich-x86_64 export CXXFLAGS=-I/usr/include/mpich-x86_64 - cd /tmp/ls1-mardyn + # cd /tmp/ls1-mardyn + cd /tmp + git clone --depth 1 --branch ${LS1_BRANCH} ${LS1_URL} + cd ls1-mardyn cmake -B build -D ENABLE_MPI=ON -D CMAKE_INSTALL_PREFIX=/opt/ls1 -D CMAKE_C_COMPILER=/usr/lib64/mpich/bin/mpicc -D CMAKE_CXX_COMPILER=/usr/lib64/mpich/bin/mpic++ cmake --build build --config ${MY_BUILD_CONFIG} -- -j # this would work but does nothing currently - cmake --install build --config ${MY_BUILD_CONFIG} + # cmake --install build --config ${MY_BUILD_CONFIG} - # # MegaMol half-build to fetch TBB - # cd /tmp - # git clone --depth 1 --branch ${MEGAMOL_BRANCH} ${MEGAMOL_URL} - # cd megamol - # cmake -G Ninja -B build -D ENABLE_MPI=ON -D MPI_GUESS_LIBRARY_NAME= -D ENABLE_GL=OFF -D CMAKE_INSTALL_PREFIX=/opt/megamol -D CMAKE_MPI_C_COMPILER=gcc -D CMAKE_MPI_CXX_COMPILER=g++ - # cmake --build build --config ${MY_BUILD_CONFIG} + export PATH=/usr/lib64/mpich/bin:$PATH + + # MegaMol half-build to fetch TBB + cd /tmp + git clone --depth 1 --branch ${MEGAMOL_BRANCH} ${MEGAMOL_URL} + cd megamol + cmake -G Ninja -B build -D ENABLE_MPI=ON -D MPI_GUESS_LIBRARY_NAME= -D ENABLE_GL=OFF -D CMAKE_INSTALL_PREFIX=/opt/megamol -D CMAKE_MPI_C_COMPILER=gcc -D CMAKE_MPI_CXX_COMPILER=g++ + cmake --build build --config ${MY_BUILD_CONFIG} # # OSPRay complete build, using MegaMol's TBB # cd /tmp - # TBB_ROOT=/tmp/megamol/build/_deps/tbb-install + # export TBB_ROOT=/tmp/megamol/build/_deps/tbb-install # git clone --depth 1 --branch ${OSPRAY_BRANCH} ${OSPRAY_URL} - # cmake -S scripts/superbuild -B build/super -D DOWNLOAD_TBB=false -D BUILD_EMBREE_FROM_SOURCE=false -D CMAKE_INSTALL_PREFIX=/opt/ospray -D CMAKE_BUILD_TYPE=Release -G Ninja + # cd ospray + # cmake -S scripts/superbuild -B build/super -D BUILD_GLFW=OFF -D BUILD_OSPRAY_APPS=OFF -D DOWNLOAD_TBB=OFF -D BUILD_EMBREE_FROM_SOURCE=OFF -D CMAKE_INSTALL_PREFIX=/opt/ospray -D CMAKE_BUILD_TYPE=Release -G Ninja # cmake --build build/super --config ${MY_BUILD_CONFIG} # cmake --install build/super --config ${MY_BUILD_CONFIG} From 001872c20676f720b7d915d459958127474dbcf3 Mon Sep 17 00:00:00 2001 From: Guido Reina Date: Mon, 29 Nov 2021 20:44:46 +0100 Subject: [PATCH 6/8] nearly good --- tools/singularity/ls1-megamol.def | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/tools/singularity/ls1-megamol.def b/tools/singularity/ls1-megamol.def index c412964f64..dde833bf02 100644 --- a/tools/singularity/ls1-megamol.def +++ b/tools/singularity/ls1-megamol.def @@ -15,7 +15,7 @@ stage: build OSPRAY_URL="https://github.com/ospray/ospray.git" OSPRAY_BRANCH="v2.8.0" MY_BUILD_CONFIG="Release" - + MY_PREFIX="~/opt" # replaced by devenv intermediate container # dnf -y install mpich mpich-devel # dnf -y install cmake git libuuid-devel ncurses-devel @@ -24,6 +24,7 @@ stage: build # dnf -y install nano source scl_source enable gcc-toolset-10 + mkdir ${MY_PREFIX} # # ls1 export CFLAGS=-I/usr/include/mpich-x86_64 @@ -32,7 +33,7 @@ stage: build cd /tmp git clone --depth 1 --branch ${LS1_BRANCH} ${LS1_URL} cd ls1-mardyn - cmake -B build -D ENABLE_MPI=ON -D CMAKE_INSTALL_PREFIX=/opt/ls1 -D CMAKE_C_COMPILER=/usr/lib64/mpich/bin/mpicc -D CMAKE_CXX_COMPILER=/usr/lib64/mpich/bin/mpic++ + cmake -B build -D ENABLE_MPI=ON -D CMAKE_INSTALL_PREFIX=${MY_PREFIX}/ls1 -D CMAKE_C_COMPILER=/usr/lib64/mpich/bin/mpicc -D CMAKE_CXX_COMPILER=/usr/lib64/mpich/bin/mpic++ cmake --build build --config ${MY_BUILD_CONFIG} -- -j # this would work but does nothing currently # cmake --install build --config ${MY_BUILD_CONFIG} @@ -43,20 +44,20 @@ stage: build cd /tmp git clone --depth 1 --branch ${MEGAMOL_BRANCH} ${MEGAMOL_URL} cd megamol - cmake -G Ninja -B build -D ENABLE_MPI=ON -D MPI_GUESS_LIBRARY_NAME= -D ENABLE_GL=OFF -D CMAKE_INSTALL_PREFIX=/opt/megamol -D CMAKE_MPI_C_COMPILER=gcc -D CMAKE_MPI_CXX_COMPILER=g++ + cmake -G Ninja -B build -D ENABLE_MPI=ON -D MPI_GUESS_LIBRARY_NAME= -D ENABLE_GL=OFF -D CMAKE_INSTALL_PREFIX=${MY_PREFIX}/megamol -D CMAKE_MPI_C_COMPILER=gcc -D CMAKE_MPI_CXX_COMPILER=g++ cmake --build build --config ${MY_BUILD_CONFIG} # # OSPRay complete build, using MegaMol's TBB - # cd /tmp - # export TBB_ROOT=/tmp/megamol/build/_deps/tbb-install - # git clone --depth 1 --branch ${OSPRAY_BRANCH} ${OSPRAY_URL} - # cd ospray - # cmake -S scripts/superbuild -B build/super -D BUILD_GLFW=OFF -D BUILD_OSPRAY_APPS=OFF -D DOWNLOAD_TBB=OFF -D BUILD_EMBREE_FROM_SOURCE=OFF -D CMAKE_INSTALL_PREFIX=/opt/ospray -D CMAKE_BUILD_TYPE=Release -G Ninja - # cmake --build build/super --config ${MY_BUILD_CONFIG} - # cmake --install build/super --config ${MY_BUILD_CONFIG} + cd /tmp + export TBB_ROOT=/tmp/megamol/build/_deps/tbb-install + git clone --depth 1 --branch ${OSPRAY_BRANCH} ${OSPRAY_URL} + cd ospray + cmake -S scripts/superbuild -B build/super -D BUILD_GLFW=OFF -D BUILD_OSPRAY_APPS=OFF -D DOWNLOAD_TBB=OFF -D BUILD_EMBREE_FROM_SOURCE=OFF -D CMAKE_INSTALL_PREFIX=${MY_PREFIX}/ospray -D CMAKE_BUILD_TYPE=Release -G Ninja + cmake --build build/super --config ${MY_BUILD_CONFIG} + cmake --install build/super --config ${MY_BUILD_CONFIG} # # now full MegaMol with OSPRAY - # cd /tmp/megamol - # cmake -B build -D BUILD_PLUGIN_MMOSPRAY=ON - # cmake --build build --config ${MY_BUILD_CONFIG} - # cmake --install build --config ${MY_BUILD_CONFIG} + cd /tmp/megamol + cmake -B build -D BUILD_PLUGIN_MMOSPRAY=ON -D ospray_DIR=${MY_PREFIX}/ospray/ospray/lib64/cmake/ospray-2.8.0/ -D rkcommon_DIR=${MY_PREFIX}/ospray/rkcommon/lib64/cmake/rkcommon-1.8.0/ + cmake --build build --config ${MY_BUILD_CONFIG} + cmake --install build --config ${MY_BUILD_CONFIG} From 0cc31e1b8542df59536e18605f06288447d839d2 Mon Sep 17 00:00:00 2001 From: Guido Reina Date: Wed, 1 Dec 2021 10:38:05 +0100 Subject: [PATCH 7/8] should not leave a mess on the host system now --- tools/singularity/ls1-megamol.def | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/tools/singularity/ls1-megamol.def b/tools/singularity/ls1-megamol.def index dde833bf02..94cfdb82f5 100644 --- a/tools/singularity/ls1-megamol.def +++ b/tools/singularity/ls1-megamol.def @@ -15,7 +15,8 @@ stage: build OSPRAY_URL="https://github.com/ospray/ospray.git" OSPRAY_BRANCH="v2.8.0" MY_BUILD_CONFIG="Release" - MY_PREFIX="~/opt" + MY_PREFIX="/opt" + MY_BUILDENV="${HOME}/tmp" # replaced by devenv intermediate container # dnf -y install mpich mpich-devel # dnf -y install cmake git libuuid-devel ncurses-devel @@ -24,13 +25,13 @@ stage: build # dnf -y install nano source scl_source enable gcc-toolset-10 - mkdir ${MY_PREFIX} + mkdir -p ${MY_PREFIX} + mkdir -p ${MY_BUILDENV} - # # ls1 + # ls1 export CFLAGS=-I/usr/include/mpich-x86_64 export CXXFLAGS=-I/usr/include/mpich-x86_64 - # cd /tmp/ls1-mardyn - cd /tmp + cd ${MY_BUILDENV} git clone --depth 1 --branch ${LS1_BRANCH} ${LS1_URL} cd ls1-mardyn cmake -B build -D ENABLE_MPI=ON -D CMAKE_INSTALL_PREFIX=${MY_PREFIX}/ls1 -D CMAKE_C_COMPILER=/usr/lib64/mpich/bin/mpicc -D CMAKE_CXX_COMPILER=/usr/lib64/mpich/bin/mpic++ @@ -41,23 +42,23 @@ stage: build export PATH=/usr/lib64/mpich/bin:$PATH # MegaMol half-build to fetch TBB - cd /tmp + cd ${MY_BUILDENV} git clone --depth 1 --branch ${MEGAMOL_BRANCH} ${MEGAMOL_URL} cd megamol cmake -G Ninja -B build -D ENABLE_MPI=ON -D MPI_GUESS_LIBRARY_NAME= -D ENABLE_GL=OFF -D CMAKE_INSTALL_PREFIX=${MY_PREFIX}/megamol -D CMAKE_MPI_C_COMPILER=gcc -D CMAKE_MPI_CXX_COMPILER=g++ cmake --build build --config ${MY_BUILD_CONFIG} - # # OSPRay complete build, using MegaMol's TBB - cd /tmp - export TBB_ROOT=/tmp/megamol/build/_deps/tbb-install + # OSPRay complete build, using MegaMol's TBB + cd ${MY_BUILDENV} + export TBB_ROOT=${MY_BUILDENV}/megamol/build/_deps/tbb-install git clone --depth 1 --branch ${OSPRAY_BRANCH} ${OSPRAY_URL} cd ospray cmake -S scripts/superbuild -B build/super -D BUILD_GLFW=OFF -D BUILD_OSPRAY_APPS=OFF -D DOWNLOAD_TBB=OFF -D BUILD_EMBREE_FROM_SOURCE=OFF -D CMAKE_INSTALL_PREFIX=${MY_PREFIX}/ospray -D CMAKE_BUILD_TYPE=Release -G Ninja cmake --build build/super --config ${MY_BUILD_CONFIG} cmake --install build/super --config ${MY_BUILD_CONFIG} - # # now full MegaMol with OSPRAY - cd /tmp/megamol + # now full MegaMol with OSPRAY + cd ${MY_BUILDENV}/megamol cmake -B build -D BUILD_PLUGIN_MMOSPRAY=ON -D ospray_DIR=${MY_PREFIX}/ospray/ospray/lib64/cmake/ospray-2.8.0/ -D rkcommon_DIR=${MY_PREFIX}/ospray/rkcommon/lib64/cmake/rkcommon-1.8.0/ cmake --build build --config ${MY_BUILD_CONFIG} cmake --install build --config ${MY_BUILD_CONFIG} From d2f13f36dfc8484b18b9148d03660fe36d5ccdc6 Mon Sep 17 00:00:00 2001 From: Guido Reina Date: Thu, 16 Dec 2021 18:47:49 +0100 Subject: [PATCH 8/8] ubuntu builds everything --- .gitignore | 2 +- .../singularity/{ => centos}/base-system.def | 0 tools/singularity/{ => centos}/devenv.def | 0 .../singularity/{ => centos}/ls1-megamol.def | 1 + tools/singularity/ubuntu/base-system.def | 7 +++ tools/singularity/ubuntu/devenv.def | 11 ++++ tools/singularity/ubuntu/ls1-megamol.def | 60 +++++++++++++++++++ 7 files changed, 80 insertions(+), 1 deletion(-) rename tools/singularity/{ => centos}/base-system.def (100%) rename tools/singularity/{ => centos}/devenv.def (100%) rename tools/singularity/{ => centos}/ls1-megamol.def (98%) create mode 100644 tools/singularity/ubuntu/base-system.def create mode 100644 tools/singularity/ubuntu/devenv.def create mode 100644 tools/singularity/ubuntu/ls1-megamol.def diff --git a/.gitignore b/.gitignore index 0f39952a52..f538fded29 100644 --- a/.gitignore +++ b/.gitignore @@ -14,4 +14,4 @@ src/MarDyn_*.* *.a *.so doxygen_doc/ -tools/singularity/*.sif +tools/singularity/**/*.sif diff --git a/tools/singularity/base-system.def b/tools/singularity/centos/base-system.def similarity index 100% rename from tools/singularity/base-system.def rename to tools/singularity/centos/base-system.def diff --git a/tools/singularity/devenv.def b/tools/singularity/centos/devenv.def similarity index 100% rename from tools/singularity/devenv.def rename to tools/singularity/centos/devenv.def diff --git a/tools/singularity/ls1-megamol.def b/tools/singularity/centos/ls1-megamol.def similarity index 98% rename from tools/singularity/ls1-megamol.def rename to tools/singularity/centos/ls1-megamol.def index 94cfdb82f5..ce9b58855b 100644 --- a/tools/singularity/ls1-megamol.def +++ b/tools/singularity/centos/ls1-megamol.def @@ -47,6 +47,7 @@ stage: build cd megamol cmake -G Ninja -B build -D ENABLE_MPI=ON -D MPI_GUESS_LIBRARY_NAME= -D ENABLE_GL=OFF -D CMAKE_INSTALL_PREFIX=${MY_PREFIX}/megamol -D CMAKE_MPI_C_COMPILER=gcc -D CMAKE_MPI_CXX_COMPILER=g++ cmake --build build --config ${MY_BUILD_CONFIG} + cmake --install build --config ${MY_BUILD_CONFIG} # OSPRay complete build, using MegaMol's TBB cd ${MY_BUILDENV} diff --git a/tools/singularity/ubuntu/base-system.def b/tools/singularity/ubuntu/base-system.def new file mode 100644 index 0000000000..12a16ac507 --- /dev/null +++ b/tools/singularity/ubuntu/base-system.def @@ -0,0 +1,7 @@ +bootstrap: docker +from: ubuntu:20.04 + +%post + # this actually works in fakeroot + apt update && apt -y upgrade + apt -y install build-essential \ No newline at end of file diff --git a/tools/singularity/ubuntu/devenv.def b/tools/singularity/ubuntu/devenv.def new file mode 100644 index 0000000000..1fe5809eab --- /dev/null +++ b/tools/singularity/ubuntu/devenv.def @@ -0,0 +1,11 @@ +bootstrap: localimage +from: base-system.sif +stage: build + +%post + export DEBIAN_FRONTEND=noninteractive + apt -y install mpich + apt -y install cmake git uuid-dev libncurses-dev + apt -y install ninja-build + # only for interactive debugging, disable later + apt -y install nano diff --git a/tools/singularity/ubuntu/ls1-megamol.def b/tools/singularity/ubuntu/ls1-megamol.def new file mode 100644 index 0000000000..0dc73171d0 --- /dev/null +++ b/tools/singularity/ubuntu/ls1-megamol.def @@ -0,0 +1,60 @@ +bootstrap: localimage +from: devenv.sif +stage: build + +%files + # ../../../ls1-mardyn/cmake/ /tmp/ls1-mardyn/cmake/ + # ../../../ls1-mardyn/src/ /tmp/ls1-mardyn/src/ + # ../../../ls1-mardyn/CMakeLists.txt /tmp/ls1-mardyn/CMakeLists.txt + +%post + LS1_URL="https://github.com/reinago/ls1-mardyn.git" + LS1_BRANCH="master" + MEGAMOL_URL="https://github.com/UniStuttgart-VISUS/megamol.git" + MEGAMOL_BRANCH="master" + OSPRAY_URL="https://github.com/ospray/ospray.git" + OSPRAY_BRANCH="v2.8.0" + MY_BUILD_CONFIG="Release" + MY_PREFIX="/opt" + MY_BUILDENV="${HOME}/tmp" + + mkdir -p ${MY_PREFIX} + mkdir -p ${MY_BUILDENV} + + # ls1 + + # export CFLAGS=-I/usr/include/mpich-x86_64 + # export CXXFLAGS=-I/usr/include/mpich-x86_64 + cd ${MY_BUILDENV} + git clone --depth 1 --branch ${LS1_BRANCH} ${LS1_URL} + cd ls1-mardyn + cmake -B build -D ENABLE_MPI=ON -D CMAKE_INSTALL_PREFIX=${MY_PREFIX}/ls1 -D CMAKE_C_COMPILER=/usr/bin/mpicc -D CMAKE_CXX_COMPILER=/usr/bin/mpic++ + cmake --build build --config ${MY_BUILD_CONFIG} -- -j + + # this would work but does nothing currently + # cmake --install build --config ${MY_BUILD_CONFIG} + + # export PATH=/usr/lib64/mpich/bin:$PATH + + # MegaMol half-build to fetch TBB + cd ${MY_BUILDENV} + git clone --depth 1 --branch ${MEGAMOL_BRANCH} ${MEGAMOL_URL} + cd megamol + cmake -G Ninja -B build -D ENABLE_MPI=ON -D MPI_GUESS_LIBRARY_NAME= -D ENABLE_GL=OFF -D CMAKE_INSTALL_PREFIX=${MY_PREFIX}/megamol -D CMAKE_MPI_C_COMPILER=gcc -D CMAKE_MPI_CXX_COMPILER=g++ + cmake --build build --config ${MY_BUILD_CONFIG} + cmake --install build --config ${MY_BUILD_CONFIG} + + # OSPRay complete build, using MegaMol's TBB + cd ${MY_BUILDENV} + export TBB_ROOT=${MY_BUILDENV}/megamol/build/_deps/tbb-install + git clone --depth 1 --branch ${OSPRAY_BRANCH} ${OSPRAY_URL} + cd ospray + cmake -S scripts/superbuild -B build/super -D BUILD_GLFW=OFF -D BUILD_OSPRAY_APPS=OFF -D DOWNLOAD_TBB=OFF -D BUILD_EMBREE_FROM_SOURCE=OFF -D CMAKE_INSTALL_PREFIX=${MY_PREFIX}/ospray -D CMAKE_BUILD_TYPE=Release -G Ninja + cmake --build build/super --config ${MY_BUILD_CONFIG} + cmake --install build/super --config ${MY_BUILD_CONFIG} + + # now full MegaMol with OSPRAY + cd ${MY_BUILDENV}/megamol + cmake -B build -D BUILD_PLUGIN_MMOSPRAY=ON -D ospray_DIR=${MY_PREFIX}/ospray/ospray/lib/cmake/ospray-2.8.0/ -D rkcommon_DIR=${MY_PREFIX}/ospray/rkcommon/lib/cmake/rkcommon-1.8.0/ + cmake --build build --config ${MY_BUILD_CONFIG} + cmake --install build --config ${MY_BUILD_CONFIG}