Skip to content

3d dissipation

3d dissipation #7

Workflow file for this run

name: Continuous Integration
on:
push:
paths:
- '**.f90'
- '**.fpp'
- '**.py'
- '**.yml'
- 'mfc.sh'
- 'golden.txt'
- 'CMakeLists.txt'
pull_request:
workflow_dispatch:
jobs:
github:
name: (GitHub) Test Suite
strategy:
matrix:
include:
- os: ubuntu-latest
debug: --no-debug
intel: false
- os: ubuntu-latest
debug: --debug
intel: false
- os: ubuntu-latest
debug: --no-debug
intel: true
intel-command: source /opt/intel/oneapi/setvars.sh
- os: ubuntu-latest
debug: --debug
intel: true
intel-command: source /opt/intel/oneapi/setvars.sh
- os: macos-latest
debug: --no-debug
gcc: 11
- os: macos-latest
debug: --debug
gcc: 11
runs-on: ${{ matrix.os }}
steps:
- name: Clone
uses: actions/checkout@v3
- name: Setup MacOS
if: matrix.os == 'macos-latest'
run: |
echo "OMPI_FC=gfortran-${{ matrix.gcc }}" >> $GITHUB_ENV
echo "OMPI_CXX=g++-${{ matrix.gcc }}" >> $GITHUB_ENV
echo "OMPI_MPICC=gcc-${{ matrix.gcc }}" >> $GITHUB_ENV
echo "CC=gcc-${{ matrix.gcc }}" >> $GITHUB_ENV
echo "CXX=g++-${{ matrix.gcc }}" >> $GITHUB_ENV
echo "FC=gfortran-${{ matrix.gcc }}" >> $GITHUB_ENV
brew install wget make python make cmake coreutils gcc@${{ matrix.gcc }}
HOMEBREW_MAKE_JOBS=$(nproc) brew install --cc=gcc-${{ matrix.gcc }} --verbose --build-from-source open-mpi
- name: Setup Ubuntu
if: matrix.os == 'ubuntu-latest' && matrix.intel == false
run: sudo apt install tar wget make cmake gcc g++ python3 python3-dev "openmpi-*" libopenmpi-dev
- name: Setup Ubuntu (Intel)
if: matrix.os == 'ubuntu-latest' && matrix.intel == true
run: |
sudo apt install tar wget make cmake python3 python3-dev
wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
rm GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
sudo echo "deb https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list
sudo apt-get update
sudo apt-get install -y intel-oneapi-common-vars intel-oneapi-compiler-fortran-2022.1.0 intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic-2022.1.0 intel-oneapi-mkl-2021.4.0 intel-oneapi-mpi-2021.7.1 intel-oneapi-mpi-devel-2021.7.1
source /opt/intel/oneapi/setvars.sh
echo "CXX=$(which icpc)" >> $GITHUB_ENV
echo "CC=$(which icc)" >> $GITHUB_ENV
echo "FC=$(which ifort)" >> $GITHUB_ENV
echo "OMPI_FC=$(which ifort)" >> $GITHUB_ENV
echo "OMPI_CXX=$(which icpc)" >> $GITHUB_ENV
echo "OMPI_MPICC=$(which icc)" >> $GITHUB_ENV
echo "MPI_HOME=/opt/intel/oneapi/mpi/2021.7.1/" >> $GITHUB_ENV
- name: Build
run: |
${{ matrix.intel-command }}
/bin/bash mfc.sh build -j $(nproc) ${{ matrix.debug }}
- name: Test Suite (Debug)
if: matrix.debug == '--debug'
run: |
${{ matrix.intel-command }}
/bin/bash mfc.sh test -j $(nproc) --debug
- name: Test Suite (No Debug)
if: matrix.debug == '--no-debug'
run: |
${{ matrix.intel-command }}
/bin/bash mfc.sh test -j $(nproc) -a
self-cpu-release:
name: Test CPU release - nvhpc
runs-on:
group: phoenix
labels: self-hosted
if: github.repository == 'MFlowCode/MFC'
steps:
- name: Clone
uses: actions/checkout@v3
- name: Build
run: |
. ./mfc.sh load -c p -m g
./mfc.sh build -j 2
- name: Test
run: |
. ./mfc.sh load -c p -m g
mv misc/run-phoenix-release-cpu.sh ./
sbatch run-phoenix-release-cpu.sh
- name: Print
if: always()
run: |
cat test.out
self-gpu-release:
name: Test GPU release - nvhpc
runs-on:
group: phoenix
labels: self-hosted
if: github.repository == 'MFlowCode/MFC'
steps:
- name: Clone
uses: actions/checkout@v3
- name: Build
run: |
. ./mfc.sh load -c p -m g
./mfc.sh build -j 2 --gpu
- name: Test
run: |
. ./mfc.sh load -c p -m g
mv misc/run-phoenix-release-gpu.sh ./
sbatch run-phoenix-release-gpu.sh
- name: Print
if: always()
run: |
cat test.out
# self-cpu:
# name: (Self) Test Suite - CPU
# strategy:
# matrix:
# include:
# - os: [self-hosted, wingtip]
# runs-on: ${{ matrix.os }}
# if: github.repository == 'MFlowCode/MFC'
# steps:
# - name: Clone
# uses: actions/checkout@v3
# - name: Setup
# run: echo "test"
# - name: Build
# run: |
# module use /opt/nvidia/hpc_sdk/modulefiles/
# module load nvhpc
# /bin/bash mfc.sh build -j 8
# - name: Test Suite
# run: |
# module use /opt/nvidia/hpc_sdk/modulefiles/
# module load nvhpc
# /bin/bash mfc.sh test -j 8 -a
# self-cpu-debug:
# name: (Self) Test Suite - CPU - debug
# strategy:
# matrix:
# include:
# - os: [self-hosted, wingtip]
# runs-on: ${{ matrix.os }}
# if: github.repository == 'MFlowCode/MFC'
# steps:
# - name: Clone
# uses: actions/checkout@v3
# - name: Setup
# run: echo "test"
# - name: Build
# run: |
# module use /opt/nvidia/hpc_sdk/modulefiles/
# module load nvhpc
# /bin/bash mfc.sh build -j 8 --debug
# - name: Test Suite
# run: |
# module use /opt/nvidia/hpc_sdk/modulefiles/
# module load nvhpc
# /bin/bash mfc.sh test -j 8 --debug
# self-gpu:
# name: (Self) Test Suite - GPU
# strategy:
# matrix:
# include:
# - os: [self-hosted, wingtip]
# runs-on: ${{ matrix.os }}
# if: github.repository == 'MFlowCode/MFC'
# steps:
# - name: Clone
# uses: actions/checkout@v3
# - name: Setup
# run: echo "test"
# - name: Build
# run: |
# module use /opt/nvidia/hpc_sdk/modulefiles/
# module load nvhpc
# /bin/bash mfc.sh build -j 8 --gpu
# - name: Test Suite
# run: |
# module use /opt/nvidia/hpc_sdk/modulefiles/
# module load nvhpc
# /bin/bash mfc.sh test -j 8 -b mpirun --gpu -a
# self-gpu-debug:
# name: (Self) Test Suite - GPU - debug
# strategy:
# matrix:
# include:
# - os: [self-hosted, wingtip]
# runs-on: ${{ matrix.os }}
# if: github.repository == 'MFlowCode/MFC'
# steps:
# - name: Clone
# uses: actions/checkout@v3
# - name: Setup
# run: echo "test"
# - name: Build
# run: |
# module use /opt/nvidia/hpc_sdk/modulefiles/
# module load nvhpc
# /bin/bash mfc.sh build -j 8 --gpu --debug
# - name: Test Suite
# run: |
# module use /opt/nvidia/hpc_sdk/modulefiles/
# module load nvhpc
# /bin/bash mfc.sh test -j 8 -b mpirun --gpu --debug
# ice-gpu:
# name: (COC-ICE) Test Suite - GPU
# strategy:
# matrix:
# include:
# - os: [self-hosted, cocice]
# runs-on: ${{ matrix.os }}
# if: github.repository == 'MFlowCode/MFC'
# steps:
# - name: Clone
# uses: actions/checkout@v3
# - name: Setup
# run: echo "test"
# - name: Build
# run: |
# module purge
# module load nvhpc
# /usr/bin/bash mfc.sh build -j 4 --gpu
# - name: Test Suite
# run: |
# qsub -I -q coc-ice-gpu -l nodes=1:ppn=8:gpus=2:teslav100
# module purge
# module load nvhpc
# /usr/bin/bash mfc.sh test -j 4 -b mpirun --gpu -a
# exit