NWChem_CI #282
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: NWChem_CI | |
on: | |
push: | |
paths-ignore: | |
- .gitlab-ci.yml | |
pull_request: | |
release: | |
schedule: | |
- cron: '0 0 * * SUN' | |
repository_dispatch: | |
types: [backend_automation] | |
workflow_dispatch: | |
jobs: | |
build: | |
if: | | |
github.event_name == 'schedule' || | |
(!contains(github.event.head_commit.message, 'ci skip')) | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
blas: [build_openblas] | |
blas_size: [8] | |
os: [ubuntu-20.04, macos-11] | |
experimental: [false] | |
mpi_impl: | |
- openmpi | |
- mpich | |
armci_network: | |
- MPI-TS | |
xcode_version: | |
- 13.2.1 | |
nwchem_modules: | |
- "tinyqmpw python" | |
- "qmandpw qmd" | |
- "tce" | |
fc: | |
- gfortran | |
exclude: | |
- os: macos-11 | |
mpi_impl: mpich | |
nwchem_modules: "tinyqmpw python" | |
- os: macos-11 | |
mpi_impl: mpich | |
nwchem_modules: "qmandpw qmd" | |
include: | |
- os: ubuntu-20.04 | |
experimental: true | |
mpi_impl: openmpi | |
armci_network: MPI-TS | |
nwchem_modules: "xtb qmd driver solvation" | |
fc: gfortran-9 | |
blas: "build_openblas" | |
build_plumed: 1 | |
use_openmp: 2 | |
use_tblite: 1 | |
- os: ubuntu-20.04 | |
experimental: true | |
mpi_impl: mpich | |
armci_network: MPI-TS | |
nwchem_modules: "xtb driver solvation" | |
fc: gfortran-11 | |
cc: gcc-11 | |
blas: "build_openblas" | |
blas_size: 4 | |
use_openmp: 2 | |
use_tblite: 1 | |
- os: ubuntu-20.04 | |
experimental: true | |
mpi_impl: openmpi | |
armci_network: MPI-TS | |
nwchem_modules: "xtb driver solvation" | |
fc: gfortran-9 | |
blas: "build_openblas" | |
use_openmp: 2 | |
use_tblite: 1 | |
- os: ubuntu-20.04 | |
experimental: true | |
mpi_impl: intel | |
armci_network: MPI-TS | |
nwchem_modules: "xtb driver solvation" | |
fc: ifort | |
blas: "build_openblas" | |
blas_size: 4 | |
use_openmp: 2 | |
use_tblite: 1 | |
- os: ubuntu-20.04 | |
experimental: true | |
mpi_impl: intel | |
armci_network: MPI-TS | |
nwchem_modules: "xtb driver solvation" | |
fc: ifort | |
use_openmp: 2 | |
use_tblite: 1 | |
- os: ubuntu-20.04 | |
experimental: true | |
mpi_impl: mpich | |
armci_network: MPI-TS | |
nwchem_modules: "xtb driver solvation" | |
fc: nvfortran | |
use_openmp: 2 | |
use_tblite: 1 | |
- os: ubuntu-20.04 | |
experimental: true | |
mpi_impl: mpich | |
armci_network: ARMCI | |
nwchem_modules: "all" | |
fc: gfortran | |
blas: "build_openblas" | |
- os: ubuntu-20.04 | |
experimental: true | |
mpi_impl: mpich | |
armci_network: MPI-TS | |
nwchem_modules: "all" | |
fc: gfortran | |
blas: "internal" | |
blas_size: 4 | |
- os: ubuntu-20.04 | |
experimental: false | |
mpi_impl: mpich | |
armci_network: MPI-PR | |
nwchem_modules: "tinyqmpw python" | |
fc: gfortran-11 | |
cc: gcc-11 | |
- os: ubuntu-22.04 | |
experimental: false | |
mpi_impl: mpich | |
armci_network: MPI-TS | |
nwchem_modules: "tce" | |
fc: gfortran-11 | |
cc: gcc-11 | |
- os: ubuntu-20.04 | |
experimental: true | |
mpi_impl: mpich | |
armci_network: MPI-TS | |
nwchem_modules: "nwdft solvation driver" | |
fc: gfortran | |
cc: gcc | |
use_libxc: -1 | |
blas: "internal" | |
blas_size: 8 | |
- os: ubuntu-22.04 | |
experimental: true | |
mpi_impl: mpich | |
armci_network: MPI-TS | |
nwchem_modules: "qmandpw qmd" | |
fc: gfortran-11 | |
cc: gcc-11 | |
use_libxc: -1 | |
- os: ubuntu-20.04 | |
experimental: true | |
mpi_impl: mpich | |
armci_network: MPI-TS | |
nwchem_modules: "tinyqmpw python" | |
fc: amdflang | |
cc: amdclang | |
- os: ubuntu-20.04 | |
experimental: true | |
mpi_impl: mpich | |
armci_network: MPI-TS | |
nwchem_modules: "tce" | |
fc: amdflang | |
cc: amdclang | |
- os: ubuntu-22.04 | |
experimental: true | |
mpi_impl: intel | |
armci_network: MPI-PR | |
nwchem_modules: "tinyqmpw python" | |
fc: ifort | |
use_openmp: 2 | |
- os: ubuntu-20.04 | |
experimental: true | |
mpi_impl: mpich | |
armci_network: MPI-TS | |
nwchem_modules: "tinyqmpw python" | |
fc: nvfortran | |
cc: gcc | |
- os: ubuntu-22.04 | |
experimental: true | |
mpi_impl: intel | |
armci_network: SOCKETS | |
nwchem_modules: "tce" | |
fc: ifort | |
use_openmp: 2 | |
- os: ubuntu-22.04 | |
experimental: true | |
mpi_impl: mpich | |
armci_network: MPI-TS | |
nwchem_modules: "tce" | |
fc: flang | |
cc: clang | |
- os: ubuntu-22.04 | |
experimental: true | |
mpi_impl: intel | |
armci_network: MPI-PR | |
nwchem_modules: "tinyqmpw python" | |
fc: ifort | |
- os: ubuntu-22.04 | |
experimental: true | |
mpi_impl: intel | |
armci_network: SOCKETS | |
nwchem_modules: "tce" | |
fc: ifort | |
- os: ubuntu-20.04 | |
experimental: true | |
mpi_impl: intel | |
armci_network: MPI-PR | |
nwchem_modules: "tinyqmpw python" | |
fc: ifx | |
use_openmp: 2 | |
- os: ubuntu-20.04 | |
experimental: true | |
mpi_impl: mpich | |
armci_network: MPI-PT | |
nwchem_modules: "tinyqmpw python" | |
fc: ifort | |
- os: ubuntu-20.04 | |
experimental: true | |
mpi_impl: intel | |
armci_network: SOCKETS | |
nwchem_modules: "tce" | |
fc: ifx | |
use_openmp: 2 | |
- os: ubuntu-20.04 | |
experimental: true | |
mpi_impl: openmpi | |
armci_network: MPI-TS | |
nwchem_modules: "tinyqmpw" | |
fc: gfortran | |
cc: gcc | |
use_libxc: 1 | |
- os: ubuntu-20.04 | |
experimental: true | |
mpi_impl: intel | |
armci_network: MPI-TS | |
nwchem_modules: "tinyqmpw" | |
fc: ifort | |
cc: icx | |
use_libxc: 1 | |
- os: macos-11 | |
experimental: true | |
mpi_impl: openmpi | |
armci_network: MPI-TS | |
nwchem_modules: "tinyqmpw" | |
fc: gfortran-10 | |
cc: gcc | |
use_libxc: 1 | |
- os: ubuntu-20.04 | |
experimental: true | |
mpi_impl: mpich | |
armci_network: MPI-PT | |
nwchem_modules: "nwdft solvation driver" | |
fc: gfortran-10 | |
cc: gcc-10 | |
use_simint: 1 | |
- os: ubuntu-22.04 | |
experimental: true | |
mpi_impl: mpich | |
armci_network: MPI-TS | |
nwchem_modules: "nwdft solvation driver" | |
fc: nvfortran | |
cc: gcc | |
use_simint: 1 | |
- os: ubuntu-22.04 | |
experimental: true | |
mpi_impl: intel | |
armci_network: MPI-TS | |
nwchem_modules: "nwdft solvation driver" | |
fc: ifort | |
cc: icx | |
use_simint: 1 | |
- os: ubuntu-20.04 | |
experimental: true | |
mpi_impl: mpich | |
armci_network: MPI-PR | |
nwchem_modules: "tinyqmpw python" | |
fc: gfortran-10 | |
cc: gcc-10 | |
use_libxc: 1 | |
- os: macos-11 | |
experimental: true | |
mpi_impl: openmpi | |
armci_network: MPI-PR | |
nwchem_modules: "qmandpw qmd" | |
fc: gfortran-10 | |
cc: gcc-10 | |
- os: macos-12 | |
experimental: true | |
mpi_impl: openmpi | |
armci_network: MPI-PR | |
nwchem_modules: "tce" | |
fc: gfortran-11 | |
cc: gcc-11 | |
xcode_version: 13.4.1 | |
- os: macos-12 | |
experimental: true | |
mpi_impl: openmpi | |
armci_network: MPI-TS | |
nwchem_modules: "tinyqmpw" | |
fc: gfortran-11 | |
xcode_version: 13.4.1 | |
- os: macos-11 | |
experimental: true | |
mpi_impl: openmpi | |
armci_network: MPI-TS | |
nwchem_modules: "tinyqmpw" | |
fc: gfortran-9 | |
blas: "accelerate" | |
blas_size: 4 | |
- os: macos-12 | |
experimental: true | |
mpi_impl: mpich | |
armci_network: MPI-PT | |
nwchem_modules: "nwdft solvation driver" | |
fc: ifort | |
xcode_version: 14.0.1 | |
- os: ubuntu-20.04 | |
experimental: true | |
mpi_impl: mpich | |
armci_network: MPI-TS | |
nwchem_modules: "qmandpw qmd" | |
fc: gfortran-10 | |
cc: gcc-10 | |
use_openmp: 2 | |
blas: "build_openblas" | |
- os: ubuntu-22.04 | |
experimental: true | |
mpi_impl: intel | |
armci_network: MPI-TS | |
nwchem_modules: "qmandpw qmd" | |
fc: ifort | |
use_openmp: 2 | |
- os: ubuntu-20.04 | |
experimental: true | |
mpi_impl: mpich | |
armci_network: MPI-TS | |
nwchem_modules: "qmandpw qmd" | |
fc: nvfortran | |
cc: gcc | |
use_openmp: 2 | |
- os: ubuntu-22.04 | |
experimental: true | |
mpi_impl: mpich | |
armci_network: MPI-TS | |
nwchem_modules: "nwdft driver solvation mp2_grad mcscf ccsd rimp2 fcidump nwc_columbus" | |
fc: nvfortran | |
cc: gcc | |
- os: ubuntu-22.04 | |
experimental: true | |
mpi_impl: openmpi | |
armci_network: MPI-TS | |
nwchem_modules: "nwdft driver solvation mp2_grad mcscf ccsd rimp2 fcidump nwc_columbus" | |
fc: gfortran | |
cc: gcc | |
- os: ubuntu-22.04 | |
experimental: true | |
mpi_impl: mpich | |
armci_network: MPI-TS | |
nwchem_modules: "nwdft driver solvation mp2_grad mcscf ccsd rimp2 fcidump nwc_columbus" | |
fc: flang | |
cc: clang | |
- os: ubuntu-22.04 | |
experimental: true | |
mpi_impl: intel | |
armci_network: MPI-TS | |
nwchem_modules: "nwdft driver solvation mp2_grad mcscf ccsd rimp2 fcidump nwc_columbus" | |
fc: ifx | |
fail-fast: false | |
env: | |
MPI_IMPL: ${{ matrix.mpi_impl }} | |
ARMCI_NETWORK: ${{ matrix.armci_network }} | |
NWCHEM_MODULES: ${{ matrix.nwchem_modules }} | |
USE_SIMINT: ${{ matrix.use_simint }} | |
USE_LIBXC: ${{ matrix.use_libxc }} | |
USE_TBLITE: ${{ matrix.use_tblite }} | |
BUILD_PLUMED: ${{ matrix.build_plumed }} | |
FC: ${{ matrix.fc }} | |
CC: ${{ matrix.cc }} | |
COMEX_MAX_NB_OUTSTANDING: 4 | |
SIMINT_MAXAM: 4 | |
SIMINT_VECTOR: avx2 | |
BLAS_ENV: ${{ matrix.blas }} | |
BLAS_SIZE: ${{ matrix.blas_size }} | |
USE_OPENMP: ${{ matrix.use_openmp }} | |
continue-on-error: ${{ matrix.experimental }} | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 40 | |
- name: Get Instruction | |
id: get-simd | |
run: | | |
echo "simd=$(./travis/guess_simd.sh)" >> $GITHUB_ENV | |
shell: bash | |
- name: Setup cache | |
id: setup-cache | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/cache | |
key: ${{ matrix.os }}-${{ matrix.mpi_impl}}-${{ matrix.fc}}-xcode${{ matrix.xcode_version}}-simint${{ matrix.use_simint}}-blas${{ matrix.blas}}-blas_size${{ matrix.blas_size}}-libxc${{matrix.use_libxc}}-tblite${{matrix.use_tblite}}-simd${{ env.simd }}-nwchemcache-v003 | |
- name: build environment | |
run: | | |
pwd | |
ls -lart | |
./travis/build_env.sh | |
- name: fetch cache | |
if: steps.setup-cache.outputs.cache-hit == 'true' | |
run: | | |
./travis/cache_fetch.sh | |
- name: compile | |
id: compile | |
run: | | |
cc -v | |
./travis/config_nwchem.sh | |
./travis/compile_nwchem.sh | |
- name: Check compilation result | |
if: ${{ failure() }} | |
run: | | |
./travis/compile_check.sh | |
- name: store cache | |
run: | | |
./travis/cache_store.sh | |
- name: qa_test | |
id: qa_test | |
if: steps.compile.conclusion == 'success' | |
run: | | |
./travis/run_qas.sh | |
- name: Check if QA testing has failed | |
# if: steps.qa_test.outcome == 'failure' || steps.qa_test.outcome == 'cancelled' | |
if: ${{ failure() }} && steps.qa_test.outcome == 'failure' | |
run: | | |
./travis/check_qas.sh | |