Skip to content
Snippets Groups Projects
Commit a0a06219 authored by Giacomo Mulas's avatar Giacomo Mulas
Browse files

Merge branch 'containers-m10' into 'master'

Containers m10

See merge request giacomo.mulas/np_tmcode!80
parents 82df0eee 589bb353
No related branches found
No related tags found
No related merge requests found
......@@ -43,20 +43,20 @@ compatibility_stage:
- echo $CI_COMMIT_BRANCH
- echo "Getting system info ..."
- cat /etc/os-release
- echo "Running make with gnu compilers version 11..."
- mkdir build_gnu11
- cd build_gnu11
- cp -r ../build/* .
- CXX=g++-11 F77=gfortran-11 ./configure
- make wipe
- make -j
#- echo "Running make with gnu compilers version 11..."
#- mkdir build_gnu11
#- cd build_gnu11
#- cp -r ../build/* .
#- CXX=g++-11 FC=gfortran-11 ./configure
#- make wipe
#- make -j
- echo "Running make with gnu compilers version 12..."
- cd ..
- rm -rf build_gnu11
#- cd ..
#- rm -rf build_gnu11
- mkdir build_gnu12
- cd build_gnu12
- cp -r ../build/* .
- CXX=g++-12 F77=gfortran-12 ./configure
- CXX=g++-12 FC=gfortran-12 ./configure
- make wipe
- make -j
- echo "Running make with gnu compilers version 13..."
......@@ -65,7 +65,7 @@ compatibility_stage:
- mkdir build_gnu13
- cd build_gnu13
- cp -r ../build/* .
- CXX=g++-13 F77=gfortran-13 ./configure
- CXX=g++-13 FC=gfortran-13 ./configure
- make wipe
- make -j
- echo "Running make with gnu compilers version 14..."
......@@ -74,7 +74,7 @@ compatibility_stage:
- mkdir build_gnu14
- cd build_gnu14
- cp -r ../build/* .
- CXX=g++-14 F77=gfortran-14 ./configure
- CXX=g++-14 FC=gfortran-14 ./configure
- make wipe
- make -j
- echo "Running make with refinement with gnu compilers version 14..."
......@@ -83,36 +83,54 @@ compatibility_stage:
- mkdir build_gnu14_refine
- cd build_gnu14_refine
- cp -r ../build/* .
- CXX=g++-14 F77=gfortran-14 ./configure --enable-refinement
- CXX=g++-14 FC=gfortran-14 ./configure --enable-refinement
- make wipe
- make -j
- echo "Running make with flang version 16 and clang version 16..."
#- echo "Running make with flang version 16 and clang version 16..."
- cd ..
- rm -rf build_gnu14_refine
- mkdir build_clang16
- cd build_clang16
- cp -r ../build/* .
- CXX=clang++-16 F77=flang-new-16 ./configure --with-fflags="-O3 -std=legacy" --with-include="-I/usr/include/c++/13 -I/usr/include/x86_64-linux-gnu/c++/13" --with-ldflags="-L/usr/lib/llvm-16/lib -L/usr/lib/gcc/x86_64-linux-gnu/13" --disable-openmp
- make wipe
- make -j
#- mkdir build_clang16
#- cd build_clang16
#- cp -r ../build/* .
#- CXX=clang++-16 FC=flang-new-16 ./configure --with-fflags="-O3 -std=legacy" --with-include="-I/usr/include/c++/13 -I/usr/include/x86_64-linux-gnu/c++/13" --with-ldflags="-L/usr/lib/llvm-16/lib -L/usr/lib/gcc/x86_64-linux-gnu/13" --disable-openmp
#- make wipe
#- make -j
- echo "Running make with flang version 17 and clang version 17..."
- cd ..
- rm -rf build_clang16
#- cd ..
#- rm -rf build_clang16
- mkdir build_clang17
- cd build_clang17
- cp -r ../build/* .
- CXX=clang++-17 F77=flang-new-17 ./configure --with-fflags="-O3 -std=legacy" --with-include="-I/usr/include/c++/13 -I/usr/include/x86_64-linux-gnu/c++/13" --with-ldflags="-L/usr/lib/llvm-17/lib -L/usr/lib/gcc/x86_64-linux-gnu/13" --disable-openmp
- CXX=clang++-17 FC=flang-new-17 ./configure --with-fflags="-O3" --with-include="-I/usr/include/c++/14 -I/usr/include/x86_64-linux-gnu/c++/14" --with-ldflags="-L/usr/lib/llvm-17/lib -L/usr/lib/gcc/x86_64-linux-gnu/14" --disable-openmp
- make wipe
- make -j
#- echo "Running make with Intel ifort and Intel icpx..."
- cd ..
- rm -rf build_clang17
- echo "Running make with flang version 18 and clang version 18..."
- mkdir build_clang18
- cd build_clang18
- cp -r ../build/* .
- CXX=clang++-18 FC=flang-new-18 ./configure --with-fflags="-O3" --with-include="-I/usr/include/c++/14 -I/usr/include/x86_64-linux-gnu/c++/14" --with-ldflags="-L/usr/lib/llvm-18/lib -L/usr/lib/gcc/x86_64-linux-gnu/14" --disable-openmp
- make wipe
- make -j
- cd ..
- rm -rf build_clang18
- echo "Running make with flang version 19 and clang version 19..."
- mkdir build_clang19
- cd build_clang19
- cp -r ../build/* .
- CXX=clang++-19 FC=flang-new-19 ./configure --with-fflags="-O3" --with-include="-I/usr/include/c++/14 -I/usr/include/x86_64-linux-gnu/c++/14" --with-ldflags="-L/usr/lib/llvm-19/lib -L/usr/lib/gcc/x86_64-linux-gnu/14" --disable-openmp
- make wipe
- make -j
- cd ..
- rm -rf build_clang19
#- mkdir build_ifort_icpx
#- cd build_ifort_icpx
#- cp -r ../build/* .
#- export LD_LIBRARY_PATH=/opt/intel/oneapi/compiler/latest/lib
#- export PATH=/opt/intel/oneapi/compiler/latest/bin:$PATH
#- CXX=icpx F77=ifort ./configure --with-fflags="-O3 -diag-disable=10448" --disable-openmp
#- CXX=icpx FC=ifort ./configure --with-fflags="-O3 -diag-disable=10448" --disable-openmp
#- make wipe
#- make -j
- echo "Running make with Intel ifx and Intel icpx..."
......@@ -123,7 +141,7 @@ compatibility_stage:
- cp -r ../build/* .
- export LD_LIBRARY_PATH=/opt/intel/oneapi/compiler/latest/lib
- export PATH=/opt/intel/oneapi/compiler/latest/bin:$PATH
- CXX=icpx F77=ifx ./configure --with-fflags="-O3 -std=legacy" --disable-openmp
- CXX=icpx FC=ifx ./configure --with-fflags="-O3 -std=legacy" --disable-openmp
- make wipe
- make -j
......
......@@ -73,11 +73,11 @@ function print_help {
echo "Use this script to detect the proper build configuration for your system. "
echo "Valid options are: "
echo " "
echo "--disble-fortran Disable FORTRAN compilation. "
echo "--disble-gdb Disable GNU debugger. "
echo "--disble-ilp64 Disable 64-bit integers. "
echo "--disble-offload Disable GPU offloading. "
echo "--disble-openmp Disable OpenMP multi-threading. "
echo "--disable-fortran Disable FORTRAN compilation. "
echo "--disable-gdb Disable GNU debugger. "
echo "--disable-ilp64 Disable 64-bit integers. "
echo "--disable-offload Disable GPU offloading. "
echo "--disable-openmp Disable OpenMP multi-threading. "
echo "--enable-debug=FEATURE Enable debug output of specified feature. "
echo "--enable-fortran Enable FORTRAN compilation (DEFAULT). "
echo "--enable-nvtx Enable NVTX profiling tools. "
......
......@@ -12,7 +12,7 @@ WORKDIR /root
RUN apt update
RUN DEBIAN_FRONTEND=noninteractive apt -y upgrade
# install packages needed to build binaries
RUN DEBIAN_FRONTEND=noninteractive apt -y install g++ gfortran gcc-offload-nvptx g++-11 gfortran-11 gcc-11-offload-nvptx g++-12 gfortran-12 gcc-12-offload-nvptx g++-13 gfortran-13 gcc-13-offload-nvptx g++-14 gfortran-14 gcc-14-offload-nvptx clang libc++-dev libc++abi-dev clang-16 clang-17 flang-16 flang-17 libhdf5-dev make
RUN DEBIAN_FRONTEND=noninteractive apt -y install g++ gfortran gcc-offload-nvptx g++-12 gfortran-12 gcc-12-offload-nvptx g++-13 gfortran-13 gcc-13-offload-nvptx g++-14 gfortran-14 gcc-14-offload-nvptx clang libc++-dev libc++abi-dev clang-17 clang-18 clang-19 flang-17 flang-18 flang-19 libhdf5-dev make
# install packages needed to test with Intel OneAPI compilers
COPY --chown=root:root containers/docker/dockerstuff/intelcomps/oneapi-archive-keyring.gpg /usr/share/keyrings/
COPY --chown=root:root containers/docker/dockerstuff/intelcomps/oneAPI.list /etc/apt/sources.list.d/
......@@ -33,7 +33,7 @@ COPY --chown=root:root containers/docker/dockerstuff/magma-compiled/usr/lib/lib*
COPY --chown=root:root containers/docker/dockerstuff/magma-compiled/usr/include/* /usr/include/
COPY --chown=root:root containers/docker/dockerstuff/magma-compiled/usr/lib/pkgconfig/* /usr/lib/x86_64-linux-gnu/pkgconfig/
# install packages needed to run python scripts for checks
RUN DEBIAN_FRONTEND=noninteractive apt -y install python3 python-is-python3 python3-regex
RUN DEBIAN_FRONTEND=noninteractive apt -y install python3 python-is-python3 python3-regex python3-yaml python3-matplotlib python3-numpy
# install packages needed to run doxygen to create html docs
RUN DEBIAN_FRONTEND=noninteractive apt -y install doxygen
# install packages needed to run pdflatex to create pdf docs
......@@ -57,17 +57,19 @@ ADD doc /root/np-tmcode/doc
ADD build /root/np-tmcode/build
ADD test_data /root/np-tmcode/test_data
#RUN cd np-tmcode/src && BUILDDIR=../../build BUILDDIR_NPTM=../../build/libnptm LIBNPTM=../../build/libnptm/libnptm.a USE_ILP64=1 USE_LAPACK=1 USE_MAGMA=1 USE_OPENMP=1 USE_MPI=1 CXX=mpicxx FC=gfortran make wipe && BUILDDIR=../../build BUILDDIR_NPTM=../../build/libnptm LIBNPTM=../../build/libnptm/libnptm.a USE_ILP64=1 USE_LAPACK=1 USE_MAGMA=1 USE_OPENMP=1 USE_MPI=1 CXX=mpicxx FC=gfortran make -j && mv ../build/cluster/np_cluster ../build/cluster/np_cluster_magma_mpi
RUN cd np-tmcode/build && CXX=mpicxx FC=gfortran ./configure --enable-static --enable-mpi --enable-ilp64 --enable-openmp --with-lapack --with-magma && make clean && make -j && mv cluster/np_cluster cluster/np_cluster_magma_mpi
RUN cd np-tmcode/build && CXX=mpicxx FC=gfortran ./configure --enable-openmp --with-lapack --with-magma --without-cublas && make clean && make -j && mv cluster/np_cluster cluster/np_cluster_magma_mpi && mv sphere/np_sphere sphere/np_sphere_magma_mpi && mv inclusion/np_inclusion inclusion/np_inclusion_magma_mpi && mv trapping/np_trapping trapping/np_trapping_magma_mpi
#RUN cd np-tmcode/src && BUILDDIR=../../build BUILDDIR_NPTM=../../build/libnptm LIBNPTM=../../build/libnptm/libnptm.a USE_ILP64=1 USE_LAPACK=1 USE_MAGMA=1 USE_OPENMP=1 CXX=g++ FC=gfortran make wipe && BUILDDIR=../../build BUILDDIR_NPTM=../../build/libnptm LIBNPTM=../../build/libnptm/libnptm.a USE_ILP64=1 USE_LAPACK=1 USE_MAGMA=1 USE_OPENMP=1 CXX=g++ FC=gfortran make -j && mv ../build/cluster/np_cluster ../build/cluster/np_cluster_magma_serial
RUN cd np-tmcode/build && CXX=g++ FC=gfortran ./configure --enable-static --disable-mpi --enable-ilp64 --enable-openmp --with-lapack --with-magma && make clean && make -j && mv cluster/np_cluster cluster/np_cluster_magma_serial
RUN cd np-tmcode/build && CXX=g++ FC=gfortran ./configure --enable-openmp --with-lapack --with-magma --without-cublas && make clean && make -j && mv cluster/np_cluster cluster/np_cluster_magma_serial && mv sphere/np_sphere sphere/np_sphere_magma_serial && mv inclusion/np_inclusion inclusion/np_inclusion_magma_serial && mv trapping/np_trapping trapping/np_trapping_magma_serial
RUN cd np-tmcode/build && CXX=mpicxx FC=gfortran ./configure --enable-openmp --with-lapack --without-magma --with-cublas && make clean && make -j && mv cluster/np_cluster cluster/np_cluster_cublas_mpi && mv sphere/np_sphere sphere/np_sphere_cublas_mpi && mv inclusion/np_inclusion inclusion/np_inclusion_cublas_mpi && mv trapping/np_trapping trapping/np_trapping_cublas_mpi
RUN cd np-tmcode/build && CXX=g++ FC=gfortran ./configure --enable-openmp --with-lapack --without-magma --with-cublas && make clean && make -j && mv cluster/np_cluster cluster/np_cluster_cublas_serial && mv sphere/np_sphere sphere/np_sphere_cublas_serial && mv inclusion/np_inclusion inclusion/np_inclusion_cublas_serial && mv trapping/np_trapping trapping/np_trapping_cublas_serial
#RUN cd np-tmcode/src && BUILDDIR=../../build BUILDDIR_NPTM=../../build/libnptm LIBNPTM=../../build/libnptm/libnptm.a USE_ILP64=1 USE_LAPACK=1 USE_OPENMP=1 USE_MPI=1 CXX=mpicxx FC=gfortran make wipe && BUILDDIR=../../build BUILDDIR_NPTM=../../build/libnptm LIBNPTM=../../build/libnptm/libnptm.a USE_ILP64=1 USE_LAPACK=1 USE_OPENMP=1 USE_MPI=1 CXX=mpicxx FC=gfortran make -j && mv ../build/cluster/np_cluster ../build/cluster/np_cluster_lapack_mpi && cd ../build/cluster && ln -s np_cluster_lapack_mpi np_cluster
RUN cd np-tmcode/build && CXX=mpicxx FC=gfortran ./configure --enable-static --enable-mpi --enable-ilp64 --enable-openmp --with-lapack --without-magma && make clean && make -j && mv cluster/np_cluster cluster/np_cluster_lapack_mpi && cd cluster && ln -s np_cluster_lapack_mpi np_cluster
RUN cd np-tmcode/build && CXX=mpicxx FC=gfortran ./configure --enable-openmp --with-lapack --without-magma --without-cublas && make clean && make -j && mv cluster/np_cluster cluster/np_cluster_lapack_mpi && mv sphere/np_sphere sphere/np_sphere_lapack_mpi && mv inclusion/np_inclusion inclusion/np_inclusion_lapack_mpi && mv trapping/np_trapping trapping/np_trapping_lapack_mpi && cd cluster && ln -s np_cluster_lapack_mpi np_cluster && cd ../sphere && ln -s np_sphere_lapack_mpi np_sphere && cd ../inclusion && ln -s np_inclusion_lapack_mpi np_inclusion && cd ../trapping && ln -s np_trapping_lapack_mpi np_trapping
#RUN cd np-tmcode/src && BUILDDIR=../../build BUILDDIR_NPTM=../../build/libnptm LIBNPTM=../../build/libnptm/libnptm.a USE_ILP64=1 USE_LAPACK=1 USE_OPENMP=1 CXX=g++ FC=gfortran make wipe && BUILDDIR=../../build BUILDDIR_NPTM=../../build/libnptm LIBNPTM=../../build/libnptm/libnptm.a USE_ILP64=1 USE_LAPACK=1 USE_OPENMP=1 CXX=g++ FC=gfortran make -j && mv ../build/cluster/np_cluster ../build/cluster/np_cluster_lapack_serial
RUN cd np-tmcode/build && CXX=g++ FC=gfortran ./configure --enable-static --disable-mpi --enable-ilp64 --enable-openmp --with-lapack --without-magma && make clean && make -j && mv cluster/np_cluster cluster/np_cluster_lapack_serial
RUN cd np-tmcode/build && CXX=g++ FC=gfortran ./configure --enable-openmp --with-lapack --without-magma --without-cublas && make clean && make -j && mv cluster/np_cluster cluster/np_cluster_lapack_serial && mv sphere/np_sphere sphere/np_sphere_lapack_serial && mv inclusion/np_inclusion inclusion/np_inclusion_lapack_serial && mv trapping/np_trapping trapping/np_trapping_lapack_serial
#RUN cd np-tmcode/src && BUILDDIR=../../build BUILDDIR_NPTM=../../build/libnptm LIBNPTM=../../build/libnptm/libnptm.a USE_ILP64=1 USE_OPENMP=1 USE_MPI=1 CXX=mpicxx FC=gfortran make wipe && BUILDDIR=../../build BUILDDIR_NPTM=../../build/libnptm LIBNPTM=../../build/libnptm/libnptm.a USE_ILP64=1 USE_OPENMP=1 USE_MPI=1 CXX=mpicxx FC=gfortran make -j && mv ../build/cluster/np_cluster ../build/cluster/np_cluster_legacy_mpi
RUN cd np-tmcode/build && CXX=mpicxx FC=gfortran ./configure --enable-static --disable-mpi --enable-ilp64 --enable-openmp --without-lapack --without-magma && make clean && make -j && mv cluster/np_cluster cluster/np_cluster_legacy_mpi
RUN cd np-tmcode/build && CXX=mpicxx FC=gfortran ./configure --enable-openmp --without-lapack --without-magma --without-cublas && make clean && make -j && mv cluster/np_cluster cluster/np_cluster_legacy_mpi && mv sphere/np_sphere sphere/np_sphere_legacy_mpi && mv inclusion/np_inclusion inclusion/np_inclusion_legacy_mpi && mv trapping/np_trapping trapping/np_trapping_legacy_mpi
#RUN cd np-tmcode/src && BUILDDIR=../../build BUILDDIR_NPTM=../../build/libnptm LIBNPTM=../../build/libnptm/libnptm.a USE_ILP64=1 USE_OPENMP=1 CXX=g++ FC=gfortran make wipe && BUILDDIR=../../build BUILDDIR_NPTM=../../build/libnptm LIBNPTM=../../build/libnptm/libnptm.a USE_ILP64=1 USE_OPENMP=1 CXX=g++ FC=gfortran make -j && mv ../build/cluster/np_cluster ../build/cluster/np_cluster_legacy_serial
RUN cd np-tmcode/build && CXX=g++ FC=gfortran ./configure --enable-static --disable-mpi --enable-ilp64 --disable-openmp --without-lapack --without-magma && make clean && make -j && mv cluster/np_cluster cluster/np_cluster_legacy_serial
RUN cd np-tmcode/build && CXX=g++ FC=gfortran ./configure --disable-openmp --without-lapack --without-magma --without-cublas && make clean && make -j && mv cluster/np_cluster cluster/np_cluster_legacy_serial && mv sphere/np_sphere sphere/np_sphere_legacy_serial && mv inclusion/np_inclusion inclusion/np_inclusion_legacy_serial && mv trapping/np_trapping trapping/np_trapping_legacy_serial
RUN cd np-tmcode/doc/src && doxygen config.dox && cd ../build/latex && make -j
......@@ -80,7 +82,7 @@ WORKDIR /root
COPY --chown=root:root containers/docker/dockerstuff/debian-nonfree/debian.sources /etc/apt/sources.list.d/
RUN DEBIAN_FRONTEND=noninteractive apt update
RUN DEBIAN_FRONTEND=noninteractive apt -y upgrade
RUN DEBIAN_FRONTEND=noninteractive apt -y install libgfortran5 libgcc-s1 libhdf5-103-1t64 libstdc++6 libssl3t64 libcurl4t64 libsz2 zlib1g libnghttp2-14 libidn2-0 librtmp1 libssh2-1t64 libpsl5t64 libgssapi-krb5-2 libldap-2.5-0 libzstd1 libbrotli1 libaec0 libunistring5 libgmp10 libkrb5-3 libk5crypto3 libcom-err2 libkrb5support0 libsasl2-2 libp11-kit0 libtasn1-6 libkeyutils1 libffi8 liblapacke64 libopenblas64-0-openmp python3 python-is-python3 python3-regex hdf5-tools libquadmath0 libgcc-s1 libgomp1 libnvjitlink12 libcublaslt12 libcudart12 libcusparse12 libcublas12 mpi-default-bin
RUN DEBIAN_FRONTEND=noninteractive apt -y install libgfortran5 libgcc-s1 libhdf5-310 libstdc++6 libssl3t64 libcurl4t64 libsz2 zlib1g libnghttp2-14 libidn2-0 librtmp1 libssh2-1t64 libpsl5t64 libgssapi-krb5-2 libldap2 libzstd1 libbrotli1 libaec0 libunistring5 libgmp10 libkrb5-3 libk5crypto3 libcom-err2 libkrb5support0 libsasl2-2 libp11-kit0 libtasn1-6 libkeyutils1 libffi8 liblapacke64 libopenblas64-0-openmp python3 python-is-python3 python3-regex python3-yaml python3-matplotlib python3-numpy hdf5-tools libquadmath0 libgcc-s1 libgomp1 libnvjitlink12 libcublaslt12 libcudart12 libcusparse12 libcublas12 mpi-default-bin
RUN rm -rf /var/lib/apt/lists/*
COPY --from=np-tmcode-run-dev /root /root
COPY --from=np-tmcode-run-dev /usr/lib/x86_64-linux-gnu/libmagma.so /usr/lib/x86_64-linux-gnu/libmagma.so
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment