Skip to content
Snippets Groups Projects
Commit a9938791 authored by Giovanni La Mura's avatar Giovanni La Mura
Browse files

Merge branch 'master' into script_devel to align with M10a.02

parents 482fc3dc c8b6ff9b
No related branches found
No related tags found
No related merge requests found
Showing
with 52 additions and 33 deletions
......@@ -2,6 +2,7 @@
default:
image: gmulas/np-tmcode
#image: debian:trixie
# Switch from branch pipelines to merge request pipelines when a merge request is created
workflow:
......
......@@ -19,7 +19,7 @@ Supported by Italian Research Center on High Performance Computing Big Data and
# License
Copyright (C) 2024 INAF - Osservatorio Astronomico di Cagliari
Copyright (C) 2025 INAF - Osservatorio Astronomico di Cagliari
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
......
......@@ -115,7 +115,7 @@ where the arguments must be valid paths to binary transition matrix files saved
# License
Copyright (C) 2024 INAF - Osservatorio Astronomico di Cagliari
Copyright (C) 2025 INAF - Osservatorio Astronomico di Cagliari
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
......
......@@ -57,19 +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-openmp --with-lapack --with-magma --enable-refinement --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/build && CXX=mpicxx FC=gfortran ./configure --enable-openmp --with-lapack --with-magma --enable-refinement --without-cublas && make clean && make -j && mv cluster/np_cluster cluster/np_cluster_magma_mpi && mv inclusion/np_inclusion inclusion/np_inclusion_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-openmp --with-lapack --with-magma --enable-refinement --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 --enable-refinement --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 --enable-refinement --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/build && CXX=g++ FC=gfortran ./configure --enable-openmp --with-lapack --with-magma --enable-refinement --without-cublas && make clean && make -j && mv cluster/np_cluster cluster/np_cluster_magma_serial && mv inclusion/np_inclusion inclusion/np_inclusion_magma_serial
RUN cd np-tmcode/build && CXX=mpicxx FC=gfortran ./configure --enable-openmp --with-lapack --without-magma --enable-refinement --with-cublas && make clean && make -j && mv cluster/np_cluster cluster/np_cluster_cublas_mpi && mv inclusion/np_inclusion inclusion/np_inclusion_cublas_mpi
RUN cd np-tmcode/build && CXX=g++ FC=gfortran ./configure --enable-openmp --with-lapack --without-magma --enable-refinement --with-cublas && make clean && make -j && mv cluster/np_cluster cluster/np_cluster_cublas_serial && mv inclusion/np_inclusion inclusion/np_inclusion_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-openmp --with-lapack --without-magma --enable-refinement --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/build && CXX=mpicxx FC=gfortran ./configure --enable-openmp --with-lapack --without-magma --enable-refinement --without-cublas && make clean && make -j && mv cluster/np_cluster cluster/np_cluster_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 ../inclusion && ln -s np_inclusion_lapack_mpi np_inclusion
#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-openmp --with-lapack --without-magma --enable-refinement --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/build && CXX=g++ FC=gfortran ./configure --enable-openmp --with-lapack --without-magma --enable-refinement --without-cublas && make clean && make -j && mv cluster/np_cluster cluster/np_cluster_lapack_serial && mv inclusion/np_inclusion inclusion/np_inclusion_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-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/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 && cd sphere && ln -s np_sphere_legacy_mpi np_sphere
#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 --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/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
RUN cd np-tmcode/doc/src && doxygen config.dox && cd ../build/latex && make -j
......
# Docker support for the NP-TMcode project
## Using the pre-built image
The current version of NP-TMcode (M8.03) has been bundled in a pre-built `docker` image, distributed via `https://hub.docker.com/`. To use this image, run the command:
The current version of NP-TMcode (M10a) has been bundled in a pre-built `docker` image, distributed via `https://hub.docker.com/`. To use this image, run the command:
> docker run -it gmulas/np-tmcode-run:M8 /bin/bash
> docker run -it gmulas/np-tmcode-run:m10a.00 /bin/bash
The image will be automatically downloaded, if it is not available in the system, then it will be run in interactive mode, starting a shell session. Follow the instructions provided in Sec. 3.4.1 of the Release Notes document to proceed with testing and code use.
......@@ -21,7 +21,7 @@ where `<image name>` is either `np-tmcode` or `np-tmcode-run`. One may also add
# License
Copyright (C) 2024 INAF - Osservatorio Astronomico di Cagliari
Copyright (C) 2025 INAF - Osservatorio Astronomico di Cagliari
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
......
# Singularity support for the NP-TMcode project
## Using the pre-built image
The current version of NP-TMcode (M8.03) has been bundled in a pre-built `singularity` image, distributed at `https://www.ict.inaf.it/gitlab/giacomo.mulas/np-tmcode-singularity/-/releases/np-tmcode-singularity-run-M8.03`. To use this image, download and unpack the pre-built image bundle, then place the `np-tmcode-run.sif` file in the `containers/singularity` folder of the NP-TMcode project.
The current version of NP-TMcode (M10a) has been bundled in a pre-built `singularity` image, available from the sylabs cloud repository of singularity images at `https://cloud.sylabs.io/library/gmulas/np-tmcode-run/np-tmcode-run.sif`. To use this image, pull it with the command:
> singularity pull np-tmcode-run.sif library://gmulas/np-tmcode-run/np-tmcode-run.sif:m10a.00
then place the `np-tmcode-run.sif` file in the `containers/singularity` folder of the NP-TMcode project.
## Building a local image
A local image containing the necessary code requirements and binary files can be built through the image definition file provided along with the code. This `np-tmcode-run.def` file allows to create a `np-tmcode-run` image, that contains only the pre-built executables, python test scripts, compiled documentation, and the minimal runtime to run them.
......@@ -20,11 +24,12 @@ or directly as
> \<full path to image name\> \<np-tmcode command\>
where `<full path to image name>` is the name of the sif image, including full or relative path to it, and `<np-tmcode command>` is one of the executables built in np-tmcode project, or the `pycompare.py` script used to compare results between the Fortran and C++ versions of the code. These executables, as well as the minimum runtime for them to execute correctly, are embedded in the image, and "see" the current directory the image is run in (which technically is automatically bind-mounted by singularity in the running image instance).
where `<full path to image name>` is the name of the sif image, including full or relative path to it, and `<np-tmcode command>` is one of the executables built in np-tmcode project, or one of the accessory python scripts distributed with the code. These executables, as well as the minimum runtime for them to execute correctly, are embedded in the image, and "see" the current directory the image is run in (which technically is automatically bind-mounted by singularity in the running image instance). To further ease their use, one can also use the provided wrapper shell script, by setting the `SIFFILE` environment variable to the full path to the singularity image and then running the links with their respective names to `singwrapper` in the `scripts` directory.
# License
Copyright (C) 2024 INAF - Osservatorio Astronomico di Cagliari
Copyright (C) 2025 INAF - Osservatorio Astronomico di Cagliari
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
......
......@@ -34,8 +34,8 @@ Stage: np-tmcode-run-dev
make -j
mv cluster/np_cluster cluster/np_cluster_magma_mpi
mv inclusion/np_inclusion inclusion/np_inclusion_magma_mpi
mv sphere/np_sphere sphere/np_sphere_magma_mpi
mv trapping/np_trapping trapping/np_trapping_magma_mpi
#mv sphere/np_sphere sphere/np_sphere_magma_mpi
#mv trapping/np_trapping trapping/np_trapping_magma_mpi
# with magma, ilp64, no mpi, openmp
#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
CXX=g++ FC=gfortran ./configure --disable-shared --enable-ilp64 --enable-openmp --with-lapack --with-magma --enable-refinement --without-cublas
......@@ -43,8 +43,8 @@ Stage: np-tmcode-run-dev
make -j
mv cluster/np_cluster cluster/np_cluster_magma_serial
mv inclusion/np_inclusion inclusion/np_inclusion_magma_serial
mv sphere/np_sphere sphere/np_sphere_magma_serial
mv trapping/np_trapping trapping/np_trapping_magma_serial
#mv sphere/np_sphere sphere/np_sphere_magma_serial
#mv trapping/np_trapping trapping/np_trapping_magma_serial
# with cublas, ilp64, mpi, openmp
#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
CXX=mpicxx FC=gfortran ./configure --disable-shared --enable-refinement --enable-openmp --with-lapack --without-magma --with-cublas
......@@ -52,8 +52,8 @@ Stage: np-tmcode-run-dev
make -j
mv cluster/np_cluster cluster/np_cluster_cublas_mpi
mv inclusion/np_inclusion inclusion/np_inclusion_cublas_mpi
mv sphere/np_sphere sphere/np_sphere_cublas_mpi
mv trapping/np_trapping trapping/np_trapping_cublas_mpi
#mv sphere/np_sphere sphere/np_sphere_cublas_mpi
#mv trapping/np_trapping trapping/np_trapping_cublas_mpi
# with cublas, ilp64, no mpi, openmp
#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
CXX=g++ FC=gfortran ./configure --disable-shared --enable-ilp64 --enable-openmp --with-lapack --without-magma --enable-refinement --with-cublas
......@@ -61,8 +61,8 @@ Stage: np-tmcode-run-dev
make -j
mv cluster/np_cluster cluster/np_cluster_cublas_serial
mv inclusion/np_inclusion inclusion/np_inclusion_cublas_serial
mv sphere/np_sphere sphere/np_sphere_cublas_serial
mv trapping/np_trapping trapping/np_trapping_cublas_serial
#mv sphere/np_sphere sphere/np_sphere_cublas_serial
#mv trapping/np_trapping trapping/np_trapping_cublas_serial
# with lapack, ilp64, mpi, openmp
#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
CXX=mpicxx FC=gfortran ./configure --disable-shared --enable-ilp64 --enable-openmp --with-lapack --without-magma --enable-refinement --without-cublas
......@@ -70,8 +70,8 @@ Stage: np-tmcode-run-dev
make -j
mv cluster/np_cluster cluster/np_cluster_lapack_mpi
mv inclusion/np_inclusion inclusion/np_inclusion_lapack_mpi
mv sphere/np_sphere sphere/np_sphere_lapack_mpi
mv trapping/np_trapping trapping/np_trapping_lapack_mpi
#mv sphere/np_sphere sphere/np_sphere_lapack_mpi
#mv trapping/np_trapping trapping/np_trapping_lapack_mpi
# with lapack, ilp64, no mpi, openmp
#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
CXX=g++ FC=gfortran ./configure --enable-ilp64 --enable-openmp --with-lapack --without-magma --disable-shared --enable-refinement --without-cublas
......@@ -79,8 +79,8 @@ Stage: np-tmcode-run-dev
make -j
mv cluster/np_cluster cluster/np_cluster_lapack_serial
mv inclusion/np_inclusion inclusion/np_inclusion_lapack_serial
mv sphere/np_sphere sphere/np_sphere_lapack_serial
mv trapping/np_trapping trapping/np_trapping_lapack_serial
#mv sphere/np_sphere sphere/np_sphere_lapack_serial
#mv trapping/np_trapping trapping/np_trapping_lapack_serial
# with lucin, ilp64, mpi, openmp
#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
CXX=mpicxx FC=gfortran ./configure --enable-ilp64 --enable-openmp --without-lapack --without-magma --disable-shared --without-cublas
......@@ -89,7 +89,7 @@ Stage: np-tmcode-run-dev
mv cluster/np_cluster cluster/np_cluster_legacy_mpi
mv inclusion/np_inclusion inclusion/np_inclusion_legacy_mpi
mv sphere/np_sphere sphere/np_sphere_legacy_mpi
mv trapping/np_trapping trapping/np_trapping_legacy_mpi
#mv trapping/np_trapping trapping/np_trapping_legacy_mpi
# with lucin, ilp64, no mpi, openmp
#BUILDDIR=../../build BUILDDIR_NPTM=../../build/libnptm LIBNPTM=../../build/libnptm/libnptm.a USE_ILP64=1 USE_OPENMP=1 CXX=g++ FC=gfortran make wipe
CXX=g++ FC=gfortran ./configure --enable-ilp64 --enable-openmp --without-lapack --without-magma --disable-shared --without-cublas
......@@ -98,7 +98,7 @@ Stage: np-tmcode-run-dev
mv cluster/np_cluster cluster/np_cluster_legacy_serial
mv inclusion/np_inclusion inclusion/np_inclusion_legacy_serial
mv sphere/np_sphere sphere/np_sphere_legacy_serial
mv trapping/np_trapping trapping/np_trapping_legacy_serial
#mv trapping/np_trapping trapping/np_trapping_legacy_serial
#cd ../doc/src
#doxygen config.dox
#cd ../build/latex
......@@ -109,9 +109,9 @@ Stage: np-tmcode-run-dev
cd ../inclusion
ln -s np_inclusion_lapack_mpi np_inclusion
cd ../sphere
ln -s np_sphere_lapack_mpi np_sphere
cd ../trapping
ln -s np_trapping_lapack_mpi np_trapping
ln -s np_sphere_legacy_mpi np_sphere
# cd ../trapping
# ln -s np_trapping_lapack_mpi np_trapping
Bootstrap: docker
......
singwrapper
\ No newline at end of file
singwrapper
\ No newline at end of file
singwrapper
\ No newline at end of file
singwrapper
\ No newline at end of file
singwrapper
\ No newline at end of file
singwrapper
\ No newline at end of file
singwrapper
\ No newline at end of file
singwrapper
\ No newline at end of file
singwrapper
\ No newline at end of file
singwrapper
\ No newline at end of file
singwrapper
\ No newline at end of file
singwrapper
\ No newline at end of file
singwrapper
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment