Skip to content

conditionalize -cuda flag on PGI/NV compiler #524

conditionalize -cuda flag on PGI/NV compiler

conditionalize -cuda flag on PGI/NV compiler #524

name: NWChem_CI_archs
on:
push:
paths-ignore:
- .gitlab-ci.yml
pull_request:
release:
schedule:
- cron: '0 0 * * SUN'
repository_dispatch:
types: [backend_automation]
workflow_dispatch:
jobs:
build_archs:
if: |
github.event_name == 'schedule' ||
(!contains(github.event.head_commit.message, 'ci skip') && (contains(github.event.head_commit.message, 'do_extra_archs')||github.event_name == 'workflow_dispatch'))
runs-on: ubuntu-latest
strategy:
matrix:
include:
- arch: aarch64
distro_short: ubuntu
distro: ubuntu20.04
ftarget: " TARGET=ARMV8"
blas: "build_openblas"
scalapack: "off"
nwchem_modules: "tinyqmpw"
mpi_impl: "openmpi"
fc: "gfortran"
- arch: aarch64
distro_short: ubuntu
distro: ubuntu20.04
ftarget: " TARGET=ARMV8"
blas: "build_openblas"
scalapack: "off"
nwchem_modules: "tinyqmpw"
mpi_impl: "mpich"
fc: "nvfortran"
- arch: ppc64le
distro_short: ubuntu
distro: ubuntu20.04
blas: "build_openblas"
scalapack: "on"
ftarget: " TARGET=POWER8"
nwchem_modules: "tinyqmpw"
mpi_impl: "openmpi"
fc: "gfortran"
fail-fast: false
steps:
- name: Setup cache
id: setup-cache
uses: actions/cache@v4
with:
path: |
~/cache
key: ${{ runner.os }}-${{ matrix.mpi_impl}}-${{ matrix.distro}}-${{ matrix.arch}}-nwchem-v009
- uses: actions/checkout@v4
name: Checkout
with:
fetch-depth: 40
- name: tools_checkout
run: |
ls -l
cd src/tools
./get-tools-github
cd ..
make USE_INTERNALBLAS=y nwchem_config NWCHEM_MODULES="${{ matrix.nwchem_modules }}"
- name: reconfig when needed
if: steps.setup-cache.outputs.cache-hit != 'true'
run: |
cd src
make USE_INTERNALBLAS=y nwchem_config NWCHEM_MODULES="nwdft driver solvation"
- uses: uraimo/run-on-arch-action@v2
name: Build and Test NWChem
id: build
with:
arch: ${{ matrix.arch }}
distro: ${{ matrix.distro }}
# Not required, but speeds up builds
githubToken: ${{ github.token }}
# Create cached/volume directories on host
setup: |
mkdir -p ~/cache
# Mount the ~/cache directory as ..nwchem/cache in the container
dockerRunArgs: |
--volume "${HOME}/cache:/home/runner/work/nwchem/nwchem/cache"
#environment
env: |
FORCETARGET: ${{ matrix.ftarget }}
COMEX_MAX_NB_OUTSTANDING: 4
SIMINT_MAXAM: 4
MPI_IMPL: ${{ matrix.mpi_impl }}
ARMCI_NETWORK: MPI-TS
FC: ${{ matrix.fc }}
DISTR: ${{ matrix.distro_short }}
BLAS_ENV: ${{ matrix.blas }}
SCALAPACK_ENV: ${{ matrix.scalapack }}
DEBIAN_FRONTEND: noninteractive
shell: /bin/sh
install: |
case "${{ matrix.distro }}" in
ubuntu*|jessie|stretch|buster)
apt-get update -q -y
ln -fs /usr/share/zoneinfo/America/Los_Angeles /etc/localtime
export DEBIAN_FRONTEND=noninteractive
apt-get install -y tzdata apt-utils
dpkg-reconfigure --frontend noninteractive tzdata
DEBIAN_FRONTEND=noninteractive apt-get install -q -y sudo git gfortran curl wget unzip perl rsync python3-dev python-dev cmake libnuma1
;;
fedora*)
dnf -y update
dnf -y install git which sudo curl wget unzip openblas-serial64 perl python3-devel gcc-gfortran unzip cmake patch time
;;
esac
run: |
pwd
df
ls -lrt
uname -a
lscpu
./travis/build_env.sh
echo ' done build_env '
mkdir -p cache/libext/lib || true
mkdir -p src/libext/lib || true
ls -Rl src/libext || true
ls -lRrt cache
df cache
rsync -av cache/libext/lib/* src/libext/lib/. || true
echo "cache fetched"
ls -Rl cache/libext/lib/ ||true
./travis/compile_nwchem.sh
echo ' done compiling'
rsync -av src/libext/lib/* cache/libext/lib/. || true
echo "cache stored"
ls -l cache/libext/lib/
./travis/run_qas.sh
- name: Cache check
run: |
pwd
echo HOME is $HOME || true
ls -l ~/ || true
ls -Rl ~/cache || true
ls -l ~/ || true
ls -l ~/work/ || true
ls -l ~/work/nwchem || true