diff --git a/CHANGES.md b/CHANGES.md index 1a22cf7d..616e36be 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -8,11 +8,23 @@ version 0.22.0 for lattice quantities. This change should be transparent in most cases. Old "ansi" parallel i/o restart files will no longer work if the there was more than one output file per step. + See e.g., https://ludwig.epcc.ed.ac.uk/outputs/fluid.html + +- In a related change, there is a slight change in the way porous + media files are read at start time. See, e.g., + https://ludwig.epcc.ed.ac.uk/inputs/porous.html - Please use "lb_fluctuations" instead of "isothermal_fluctuations" in the input if you need fluctuations in Navier-Stokes. -- Various code imporvements. +- A lubrication correction between ellipsoids and plane walls has + been added. See https://ludwig.epcc.ed.ac.uk/inputs/walls.html + +- There has been a change to the config.mk file which involves the way + the tests are run: only the `"LAUNCH_MPIRUN_CMD` variable is now used. + See https://ludwig.epcc.ed.ac.uk/building/index.html + +- Various minor code improvements, and improvements in testing. version 0.21.0 diff --git a/config/epcc-archer2-hipcc.mk b/config/epcc-archer2-hipcc.mk index 710d0e5f..d05a87df 100644 --- a/config/epcc-archer2-hipcc.mk +++ b/config/epcc-archer2-hipcc.mk @@ -30,7 +30,5 @@ MPI_HOME = MPI_INC_PATH = MPI_LIB_PATH = -L${HIP_LIB_PATH} -lamdhip64 -LAUNCH_SERIAL_CMD = LAUNCH_MPIRUN_CMD = -MPIRUN_NTASK_FLAG = diff --git a/config/epcc-archer2.mk b/config/epcc-archer2.mk index 76066a6d..c898065c 100644 --- a/config/epcc-archer2.mk +++ b/config/epcc-archer2.mk @@ -4,23 +4,19 @@ # https://www.archer2.ac.uk # # PrgEnv-cray -# - Use cce >= 12 to avoid problem in openmp -# - "module load cce/12.0.3" +# PrgEnv-gnu # -# Same compiler options for all PrgEnv are available. +# But prefer PrgEnv-aocc +# - CFLAGS = -DADDR_SOA -Ofast -DNDSIMDVL=1 ... +# for just about the best performance # ############################################################################## BUILD = parallel MODEL = -D_D3Q19_ +TARGET = CC = cc -fopenmp -CFLAGS = -g -O3 -Wall -DNSIMDVL=2 -DNDEBUG +CFLAGS = -g -Ofast -Wall -DNSIMDVL=1 -DADDR_SOA -DNDEBUG -MPI_INC_PATH = -MPI_LIB_PATH = -MPI_LIB = - -LAUNCH_SERIAL_CMD = -LAUNCH_MPIRUN_CMD = srun -MPIRUN_NTASK_FLAG = -n +LAUNCH_MPIRUN_CMD = srun --ntasks=1 diff --git a/config/epcc-cirrus-intel.mk b/config/epcc-cirrus-intel.mk index 65f48b54..5eee0c15 100644 --- a/config/epcc-cirrus-intel.mk +++ b/config/epcc-cirrus-intel.mk @@ -22,10 +22,4 @@ CFLAGS = -fast -DNDEBUG -DNSIMDVL=4 AR = ar ARFLAGS = -cru -MPI_INC_PATH = -MPI_LIB_PATH = -MPI_LIB = - -LAUNCH_SERIAL_CMD = -LAUNCH_MPIRUN_CMD = mpirun -MPIRUN_NTASK_FLAG = -np +LAUNCH_MPIRUN_CMD = mpirun -np 1 diff --git a/config/epcc-cirrus-nvcc-openmpi.mk b/config/epcc-cirrus-nvcc-openmpi.mk new file mode 100644 index 00000000..29113dac --- /dev/null +++ b/config/epcc-cirrus-nvcc-openmpi.mk @@ -0,0 +1,35 @@ +############################################################################### +# +# nvcc build +# +# Here with GPU-aware MPI via specific OpenMPI build, which has +# slurm support. +# +# module load gcc +# module load openmpi/4.1.6-cuda-12.4 +# module load nvidia/nvhpc-nompi/24.5 +# +############################################################################### + +BUILD = parallel +MODEL = -D_D3Q19_ +TARGET = nvcc + +CC = nvcc +CFLAGS = -g -DADDR_SOA -O3 -arch=sm_70 -x cu -dc -DHAVE_OPENMPI_ # -DNDEBUG + +# PTX assembler extra information: -Xptxas -v +# Alternative compiler, e.g., Intel: -ccbin=icpc -Xcompiler -fast + +AR = ar +ARFLAGS = -cr +LDFLAGS = -arch=sm_70 + +# MPI_HOME is provided by the OpenMPI module + +MPI_INC_PATH = -I${MPI_HOME}/include +MPI_LIB_PATH = -L${MPI_HOME}/lib -lmpi + +# ... and has slurm support ... + +LAUNCH_MPIRUN_CMD = srun --ntasks=1 diff --git a/config/unix-gcc-default.mk b/config/unix-gcc-default.mk index 5273c798..de329ff7 100644 --- a/config/unix-gcc-default.mk +++ b/config/unix-gcc-default.mk @@ -8,6 +8,7 @@ BUILD = serial MODEL = -D_D3Q19_ +TARGET = CC = gcc CFLAGS = -O -g -Wall @@ -16,9 +17,4 @@ AR = ar ARFLAGS = -cru LDFLAGS = -MPI_INC_PATH = ./mpi_s -MPI_LIB_PATH = ./mpi_s -MPI_LIB = -lmpi - -LAUNCH_SERIAL_CMD = LAUNCH_MPIRUN_CMD = diff --git a/config/unix-hipcc.mk b/config/unix-hipcc.mk index 607ce702..cc62aa9f 100644 --- a/config/unix-hipcc.mk +++ b/config/unix-hipcc.mk @@ -12,6 +12,7 @@ BUILD = serial MODEL = -D_D3Q19_ +TARGET = hipcc CC = hipcc CFLAGS = -x hip -fgpu-rdc -O2 @@ -20,11 +21,5 @@ AR = ar ARFLAGS = -cr LDFLAGS = -fgpu-rdc --hip-link -MPI_HOME = -MPI_INC_PATH = -MPI_LIB_PATH = - -LAUNCH_SERIAL_CMD = LAUNCH_MPIRUN_CMD = -MPIRUN_NTASK_FLAG = diff --git a/config/unix-mpicc-default.mk b/config/unix-mpicc-default.mk index 72fbbabf..292c110d 100644 --- a/config/unix-mpicc-default.mk +++ b/config/unix-mpicc-default.mk @@ -9,15 +9,9 @@ BUILD = parallel MODEL = -D_D3Q19_ +TARGET = -CC = mpicc -CFLAGS = -O -g +CC = mpicc -fopenmp +CFLAGS = -O2 -g -Wall - -MPI_INC_PATH = -MPI_LIB_PATH = -MPI_LIB = - -LAUNCH_SERIAL_CMD = -LAUNCH_MPIRUN_CMD = mpirun -MPIRUN_NTASK_FLAG = -np +LAUNCH_MPIRUN_CMD = mpirun -np 1 diff --git a/src/model.c b/src/lb_data.c similarity index 99% rename from src/model.c rename to src/lb_data.c index 860e6e31..6834e2bb 100644 --- a/src/model.c +++ b/src/lb_data.c @@ -1,6 +1,6 @@ /***************************************************************************** * - * model.c + * lb_data.c * * This encapsulates data/operations related to distributions. * However, the implementation of the distribution is exposed @@ -26,8 +26,6 @@ #include #include -#include "pe.h" -#include "coords.h" #include "lb_data.h" #include "timer.h" diff --git a/version.h b/version.h index b73e0480..a93c982f 100644 --- a/version.h +++ b/version.h @@ -13,7 +13,7 @@ #define LUDWIG_VERSION_H #define LUDWIG_MAJOR_VERSION 0 -#define LUDWIG_MINOR_VERSION 21 +#define LUDWIG_MINOR_VERSION 22 #define LUDWIG_PATCH_VERSION 0 #endif