Update HighFive CMake link to track HighFive Github #1662
Workflow file for this run
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: Build and Test (PR) | |
on: [pull_request] | |
jobs: | |
build: | |
strategy: | |
fail-fast: false | |
matrix: | |
omp: [OFF, ON] | |
mpi: [OFF, ON] | |
compiler: | |
[ | |
#"GCC 10", | |
"GCC 14", | |
"Clang 15", | |
#"Clang 11", | |
] | |
env: | |
OMP_NUM_THREADS: 4 | |
name: "Ubuntu 24.04 ( ${{ matrix.compiler }} OpenMP ( ${{ matrix.omp }} ) , MPI ( ${{ matrix.mpi }} ))" | |
runs-on: ubuntu-24.04 | |
steps: | |
- name: Install dependencies | |
run: | | |
sudo apt-get update | |
sudo apt install -y libopenblas-dev liblapack-dev libhdf5-dev libhdf5-openmpi-dev libscalapack-openmpi-dev python3-pip gfortran cmake -o Acquire::Retries=3 --fix-missing | |
pip3 install numpy --break-system-packages | |
- name: Checkout | |
uses: actions/checkout@v2 | |
with: | |
submodules: true | |
- name: "Set up output var: CC_VERSION" | |
id: extract_matrix | |
run: | | |
CC_VERSION=$( echo "${{ matrix.compiler }}" | awk '{ print $2; }') | |
echo "CC_VERSION=${CC_VERSION}" >> "$GITHUB_OUTPUT" | |
- name: Install GCC | |
if: ${{ startsWith(matrix.compiler, 'GCC') }} | |
run: sudo apt install -y g++ #-${{ steps.extract_matrix.outputs.CC_VERSION }} | |
- name: Install Clang | |
if: ${{ startsWith(matrix.compiler, 'Clang') }} | |
run: | | |
sudo apt install -y clang #-${{ steps.extract_matrix.outputs.CC_VERSION }} | |
sudo apt install -y libomp-dev #${{ steps.extract_matrix.outputs.CC_VERSION }}-dev | |
- name: Configure | |
run: | | |
CC_NAME=$(echo "${{ matrix.compiler }}" | awk '{ print tolower($1); }') | |
CC_VER=$( echo "${{ matrix.compiler }}" | awk '{ print $2; }') | |
test "${CC_NAME}" = "gcc" && CC_EXE="g++" | |
test "${CC_NAME}" = "clang" && CC_EXE="clang++" | |
cmake -S . -B build -DCMAKE_CXX_COMPILER="${CC_EXE}" -DOMP_AVAIL=${{ matrix.omp }} -DKokkos_ENABLE_OPENMP=${{ matrix.omp }} -DMPI_AVAIL=${{ matrix.mpi }} -DHDF5_AVAIL=ON | |
- name: Build | |
run: cmake --build build -- -j4 | |
- name: Build Test | |
run: cmake --build build --target runTests | |
- name: RunTests | |
run: | | |
cd build | |
./runTests | |
- name: Download test data | |
if: ${{ matrix.compiler == 'GCC 14' }} | |
run: | | |
wget github.com/mir-group/phoebe-data/archive/master.zip | |
unzip -j master.zip "phoebe-data-master/example/Silicon-ph/qe-phonons/*" -d "example/Silicon-ph/qe-phonons" | |
unzip -j master.zip "phoebe-data-master/example/Silicon-ph/qe-ph-anharmonic/*" -d "example/Silicon-ph/thirdorder.py-anharmonic" | |
unzip -j master.zip "phoebe-data-master/example/Silicon-el/qe-elph/*" -d "example/Silicon-el/qe-elph" | |
unzip 'example/Silicon-el/qe-elph/silicon.phoebe.*.dat.zip' -d example/Silicon-el/qe-elph/ | |
cp example/Silicon-el/qe-elph/* example/Silicon-epa/qe-elph | |
mkdir example/Silicon-epa/qe-elph/out | |
unzip -j master.zip "phoebe-data-master/example/Silicon-epa/qe-elph/out/*" -d "example/Silicon-epa/qe-elph/out" | |
- name: Run epa example without MPI | |
if: ${{ matrix.compiler == 'GCC 14' }} | |
working-directory: example/Silicon-epa | |
run: | | |
../../build/phoebe -in qeToPhoebeEPA.in | |
../../build/phoebe -in epaTransport.in | |
../../build/phoebe -in electronFourierBands.in | |
../../build/phoebe -in electronFourierDos.in | |
python3 reference/run_check.py | |
- name: Run epa example with MPI | |
if: ${{ matrix.compiler == 'GCC 14' && matrix.mpi == 'ON'}} | |
working-directory: example/Silicon-epa | |
run: | | |
mpirun -np 4 --oversubscribe ../../build/phoebe -in epaTransport.in | |
mpirun -np 4 --oversubscribe ../../build/phoebe -in electronFourierBands.in | |
mpirun -np 4 --oversubscribe ../../build/phoebe -in electronFourierDos.in | |
python3 reference/run_check.py | |
- name: Run ph example without MPI | |
if: ${{ matrix.compiler == 'GCC 14' }} | |
working-directory: example/Silicon-ph | |
run: | | |
../../build/phoebe -in phononTransport.in | |
../../build/phoebe -in phononBands.in | |
../../build/phoebe -in phononDos.in | |
../../build/phoebe -in phononLifetimes.in | |
python3 reference/run_check.py | |
- name: Run ph example with MPI | |
if: ${{ matrix.compiler == 'GCC 14' && matrix.mpi == 'ON' }} | |
working-directory: example/Silicon-ph | |
run: | | |
mpirun -np 4 --oversubscribe ../../build/phoebe -in phononTransport.in | |
mpirun -np 4 --oversubscribe ../../build/phoebe -in phononBands.in | |
mpirun -np 4 --oversubscribe ../../build/phoebe -in phononDos.in | |
mpirun -np 4 --oversubscribe ../../build/phoebe -in phononLifetimes.in | |
python3 reference/run_check.py | |
- name: Run el example without MPI | |
if: ${{ matrix.compiler == 'GCC 14' }} | |
working-directory: example/Silicon-el | |
run: | | |
../../build/phoebe -in qeToPhoebeWannier.in | |
../../build/phoebe -in electronWannierTransport.in | |
../../build/phoebe -in electronWannierBands.in | |
../../build/phoebe -in electronWannierDos.in | |
../../build/phoebe -in electronLifetimes.in | |
python3 reference/run_check.py | |
- name: Run el example with MPI | |
if: ${{ matrix.compiler == 'GCC 14' && matrix.mpi == 'ON' }} | |
working-directory: example/Silicon-el | |
run: | | |
# Note: don't run this as it runs out-of-memory on the VM | |
#mpirun -np 4 --oversubscribe ../../build/phoebe -in qeToPhoebeWannier.in | |
mpirun -np 4 --oversubscribe ../../build/phoebe -in electronWannierTransport.in | |
mpirun -np 4 --oversubscribe ../../build/phoebe -in electronWannierBands.in | |
mpirun -np 4 --oversubscribe ../../build/phoebe -in electronWannierDos.in | |
mpirun -np 4 --oversubscribe ../../build/phoebe -in electronLifetimes.in | |
python3 reference/run_check.py | |
mpirun -np 4 --oversubscribe ../../build/phoebe -ps 2 -in electronWannierTransport.in | |
mpirun -np 4 --oversubscribe ../../build/phoebe -ps 2 -in electronLifetimes.in | |
python3 reference/run_check.py |