Skip to content

Release 1.4

Release 1.4 #427

Workflow file for this run

name: Makefile CI
on:
push:
branches: [ "develop", "f-exx-opt" ]
pull_request:
branches: [ "develop", "f-exx-opt" ]
# Manual dispatch for including all multiply kernels in matrix.
# We don't want this to run on every commit, but it's useful
# to be able to launch it manually
workflow_dispatch:
inputs:
multiply_kernel_test:
description: 'test all multiply kernels, instead of default only'
required: false
default: false
jobs:
build:
name: ${{matrix.fc}} -- ${{matrix.os}} -- ${{matrix.multiply_kernel}} multiply kernel -- ${{matrix.np}} processes -- ${{matrix.threads}} threads
runs-on: ${{matrix.os}}
env:
FC: ${{matrix.fc}}
F77: mpif77
OMP_NUM_THREADS: ${{matrix.threads}}
OPENBLAS_NUM_THREADS: 1
OMP_STACKSIZE: 100M
strategy:
fail-fast: false
matrix:
os:
# We could add ubuntu-latest but until 2024 it will be the same as 22.04
- ubuntu-22.04
fc:
# TODO: We could also build with `intel-oneapi-compiler-fortran`, it is available
# for installation from Intel through their apt repository.
- mpifort
np:
- 1
- 2
threads:
- 1
- 2
# TODO: Could be worth testing on `mpich` in addition to `openmpi-bin`. Both are
# available in apt
multiply_kernel:
- default
- gemm
- ompDoii
- ompDoik
- ompDoji
- ompDojk
- ompGemm
- ompGemm_m
# As a work-around, copy the multiply_kernel_test variable to the matrix and
# exclude non-default multiply kernels when it's false
# https://github.com/orgs/community/discussions/26253#discussioncomment-3250989
test_all_multiply_kernels:
- ${{github.event.inputs.multiply_kernel_test}}
exclude:
- test_all_multiply_kernels: false
multiply_kernel: gemm
- test_all_multiply_kernels: false
multiply_kernel: ompDoii
- test_all_multiply_kernels: false
multiply_kernel: ompDoik
- test_all_multiply_kernels: false
multiply_kernel: ompDoji
- test_all_multiply_kernels: false
multiply_kernel: ompDojk
- test_all_multiply_kernels: false
multiply_kernel: ompGemm
steps:
- uses: actions/checkout@v4
with:
fetch-depth: '0'
- name: Install Dependencies
run: |
sudo apt update
sudo apt install openmpi-bin libopenmpi-dev libfftw3-dev libblas3 liblapack3 libscalapack-openmpi-dev libxc-dev
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.10'
- name: Install python utilities
run: |
python -m pip install --upgrade pip
pip install pytest
pip install numpy
- name: Check compiler version
run: ${{matrix.fc}} --version
- name: Build
working-directory: ${{github.workspace}}/src
run: |
make -j ${{matrix.np}} SYSTEM=gha MULT_KERN=${{matrix.multiply_kernel}}
- name: Run test 001
working-directory: ${{github.workspace}}/testsuite/test_001_bulk_Si_1proc_Diag
run: |
mpirun -np ${{matrix.np}} ../../bin/Conquest
cat Conquest_out
- name: Run test 002
working-directory: ${{github.workspace}}/testsuite/test_002_bulk_Si_1proc_OrderN
run: |
mpirun -np ${{matrix.np}} ../../bin/Conquest
cat Conquest_out
- name: Run test 003
working-directory: ${{github.workspace}}/testsuite/test_003_bulk_BTO_polarisation
run: |
mpirun -np ${{matrix.np}} ../../bin/Conquest
cat Conquest_out
- name: Run test 004
working-directory: ${{github.workspace}}/testsuite/test_004_isol_C2H4_4proc_PBE0CRI
run: |
mpirun -np ${{matrix.np}} ../../bin/Conquest
cat Conquest_out
- name: Run test 005
working-directory: ${{github.workspace}}/testsuite/test_005_isol_C2H4_4proc_PBE0GTO
run: |
mpirun -np ${{matrix.np}} ../../bin/Conquest
cat Conquest_out
- name: Run test 006
working-directory: ${{github.workspace}}/testsuite/test_006_isol_C2H4_4proc_PBE0ERI
run: |
mpirun -np ${{matrix.np}} ../../bin/Conquest
cat Conquest_out
- name: Run test 007
working-directory: ${{github.workspace}}/testsuite/test_007_isol_CH_spinpol_1proc_PBE0CRI
run: |
mpirun -np ${{matrix.np}} ../../bin/Conquest
cat Conquest_out
- name: Check test results
working-directory: ${{github.workspace}}/testsuite
run: pytest test_check_output.py