Skip to content

Commit

Permalink
Merge pull request #315 from ludwig-cf/develop
Browse files Browse the repository at this point in the history
Release 0.22.0
  • Loading branch information
kevinstratford authored Jul 25, 2024
2 parents 7d8b8d8 + 9668d58 commit 88c3289
Show file tree
Hide file tree
Showing 261 changed files with 8,610 additions and 10,877 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/codecov.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Build and run the unit tests
run: |
cp config/coverage-gcc.mk config.mk
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/codeql-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ jobs:

steps:
- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v4

# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
Expand Down
47 changes: 42 additions & 5 deletions .github/workflows/regression.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Regression tests (serial)

name: "Regression"
name: "build, test"

on:
pull_request:
Expand All @@ -15,7 +15,7 @@ jobs:

steps:
- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: Build
run: |
Expand All @@ -35,7 +35,7 @@ jobs:

steps:
- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: Build
run: |
Expand All @@ -49,13 +49,14 @@ jobs:
run: |
make unit
make -C tests d3q15
cat tests/regression/d3q15/*.new
make-d3q19-short:
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: Build
run: |
Expand All @@ -75,7 +76,7 @@ jobs:

steps:
- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: Build
run: |
Expand All @@ -90,3 +91,39 @@ jobs:
run: |
make unit
make -C tests d3q27
d2q9-mpi:
name: d2q9 / mpi
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up MPI
uses: mpi4py/setup-mpi@v1
- run: mpicc --version
- run: cp config/github-mpicc.mk config.mk
- run: make -j 2
- run: export OMP_NUM_THREADS=2
- run: make unit
- run: export OMP_NUM_THREADS=1
- run: make -C tests d2q9

d3q15-mpi:
name: d3q15 / mpi
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up MPI
uses: mpi4py/setup-mpi@v1
- run: mpicc --version
- run: cp config/github-mpicc.mk config.mk
- run: sed -i "s/D2Q9/D3Q15/" config.mk
- run: make -j 2
- run: export OMP_NUM_THREADS=2
- run: make unit
- run: export OMP_NUM_THREADS=1
- run: make -C tests d3q15
- run: cat tests/regression/d3q15/*new
12 changes: 0 additions & 12 deletions .travis.yml

This file was deleted.

25 changes: 25 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,31 @@

### Changes

version 0.22.0

- Removal of original "ansi" I/O (Issue 284).
The "ansi" parallel i/o has been removed in favour of mpi/io
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.

- 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

Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

A lattice Boltzmann code for complex fluids

[![Build Status](https://travis-ci.com/ludwig-cf/ludwig.svg?branch=develop)](https://travis-ci.com/ludwig-cf/ludwig)
![Build Status](https://github.com/ludwig-cf/ludwig/actions/workflows/regression.yml/badge.svg)
[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/1998/badge)](https://bestpractices.coreinfrastructure.org/projects/1998)


Expand Down
34 changes: 34 additions & 0 deletions config/epcc-archer2-hipcc.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
##############################################################################
#
# epcc-archer2-hipcc.mk
#
# ROCM 5.2.3.
#
# module load PrgEnv-amd
#
# -fgpu-rdc is equivalent of nvcc -dc for relocatable device code
# [allows multiple translation units]
# --hip-link required at link time
#
##############################################################################

BUILD = parallel
MODEL = -D_D3Q19_
TARGET = hipcc

CFLAGS_EXTRA = -mllvm -amdgpu-early-inline-all=true -mllvm -amdgpu-function-calls=false

CC = cc

CFLAGS = -x hip -fgpu-rdc -O2 -DADDR_SOA $(CFLAGS_EXTRA) --offload-arch=gfx90a

AR = ar
ARFLAGS = -cr
LDFLAGS = -fgpu-rdc --hip-link --offload-arch=gfx90a

MPI_HOME =
MPI_INC_PATH =
MPI_LIB_PATH = -L${HIP_LIB_PATH} -lamdhip64

LAUNCH_MPIRUN_CMD =

18 changes: 7 additions & 11 deletions config/epcc-archer2.mk
Original file line number Diff line number Diff line change
Expand Up @@ -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
8 changes: 1 addition & 7 deletions config/epcc-cirrus-intel.mk
Original file line number Diff line number Diff line change
Expand Up @@ -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
35 changes: 35 additions & 0 deletions config/epcc-cirrus-nvcc-openmpi.mk
Original file line number Diff line number Diff line change
@@ -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
21 changes: 4 additions & 17 deletions config/epcc-cirrus-nvcc.mk
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,15 @@
#
# nvcc build
#
# There are a number of ways forward here... see further comments below
# "Serial" build.
#
# E.g., serial with stub MPI
# module load nvidia/nvhpc-nompi/22.11
#
# E.g., parallel using NVHPC with MPI ...
# module load nvidia/nvhpc/22.11
# module load nvidia/nvhpc-nompi
#
###############################################################################

BUILD = parallel
BUILD = serial
MODEL = -D_D3Q19_
TARGET = nvcc

CC = nvcc
CFLAGS = -g -DADDR_SOA -O2 -arch=sm_70 -x cu -dc
Expand All @@ -24,13 +21,3 @@ CFLAGS = -g -DADDR_SOA -O2 -arch=sm_70 -x cu -dc
AR = ar
ARFLAGS = -cr
LDFLAGS = -arch=sm_70

# nvhpc (mpicc is present but drives nvc not nvcc) so use nvcc still ... but
MPI_HOME = ${NVHPC_ROOT}/comm_libs/mpi
MPI_INC_PATH = -I$(MPI_HOME)/include
MPI_LIB_PATH = -L$(MPI_HOME)/lib -lmpi

# NVHPC bundled MPI must use mpirun supplied ...
LAUNCH_SERIAL_CMD =
LAUNCH_MPIRUN_CMD = mpirun
MPIRUN_NTASK_FLAG = -np
16 changes: 5 additions & 11 deletions config/travis-mpicc.mk → config/github-mpicc.mk
Original file line number Diff line number Diff line change
@@ -1,25 +1,19 @@
##############################################################################
#
# travis-mpicc.mk
# github-mpicc.mk
#
# Parallel unit tests
# We expect mpicc driving gcc; tests run on two mpi processes.
#
##############################################################################

BUILD = parallel
MODEL = -D_D3Q19_
MODEL = -D_D2Q9_

CC = mpicc -fopenmp
CFLAGS = -O2 -g -Wall -Werror
CFLAGS = -g -Wall -O2

AR = ar
ARFLAGS = -cru
LDFLAGS =

LAUNCH_SERIAL_CMD =
LAUNCH_MPIRUN_CMD = mpirun --oversubscribe
MPIRUN_NTASK_FLAG = -np

# Unit tests only
MPIRUN_NTASK_UNIT = 4

LAUNCH_MPIRUN_CMD = mpirun -np 2
24 changes: 0 additions & 24 deletions config/travis-gcc.mk

This file was deleted.

6 changes: 1 addition & 5 deletions config/unix-gcc-default.mk
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@

BUILD = serial
MODEL = -D_D3Q19_
TARGET =

CC = gcc
CFLAGS = -O -g -Wall
Expand All @@ -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 =
Loading

0 comments on commit 88c3289

Please sign in to comment.