-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Test TeraChem MPI interface #62
Changes from all commits
8cd4bd9
fb5ee80
bb21306
f08b367
bf9a2e6
dda6b57
8dff536
7fea23a
7f2a2b0
1bef2da
24ff1e2
abada1d
3e23422
cc4181f
ba84c8d
0eae50d
77bc31e
8d31bf0
ec2e64c
cd2e821
1e4fb3a
3bfe472
6b17c6d
4e54d75
b9e4f71
c02d226
5d2d4cc
972a441
ca2ca41
7094adc
a35b6af
f4cf20d
9afe5c6
3630dca
f416425
fe2bd93
9217e45
58374da
b9ae1c4
45653c3
79f824b
c744bdd
16eac61
5f050e7
8941834
f037f50
eeea8d0
cc4e4f8
7506a6d
abc888b
1dbcf70
28db648
6ae4624
813be6f
3126dab
c3f5f69
0cec500
27c5005
ff87382
b1ed7d9
c9832c9
757d652
c2ea7ae
9981f0b
9785862
6e91370
c416415
bdbed14
a116007
150cffc
9eb8965
df54cdb
5a4606b
4131a6a
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -14,6 +14,9 @@ env: | |
CURL_OPTS: -S --no-silent | ||
CODECOV_OPTIONS: -Z -X coveragepy -X xcode | ||
|
||
# FFLAGS for building ABIN, applicable for most jobs | ||
ABIN_FFLAGS: -O0 -fopenmp -Wall --coverage -ffpe-trap=invalid,zero,overflow,denormal | ||
|
||
jobs: | ||
|
||
basic_build: | ||
|
@@ -25,7 +28,6 @@ jobs: | |
gcc_v: [7, 8, 9] | ||
env: | ||
FC: gfortran | ||
FFLAGS: -O0 -fopenmp -Wall --coverage -ffpe-trap=invalid,zero,overflow,denormal | ||
GCC_V: ${{ matrix.gcc_v}} | ||
CODECOV_NAME: ${{format('{0} GCC-{1}', github.job, matrix.gcc_v)}} | ||
|
||
|
@@ -56,6 +58,8 @@ jobs: | |
|
||
- name: Build ABIN | ||
run: ./configure --pfunit ${HOME}/pfunit/build/installed/ && make | ||
env: | ||
FFLAGS: ${{ env.ABIN_FFLAGS }} | ||
|
||
- name: Run Unit tests | ||
run: make unittest | ||
|
@@ -132,7 +136,6 @@ jobs: | |
matrix: | ||
gcc_v: [7] | ||
env: | ||
FFLAGS: -O0 -fopenmp -Wall --coverage -ffpe-trap=invalid,zero,overflow,denormal | ||
GCC_V: ${{ matrix.gcc_v}} | ||
CODECOV_NAME: ${{format('{0} GCC-{1}', github.job, matrix.gcc_v)}} | ||
steps: | ||
|
@@ -156,6 +159,8 @@ jobs: | |
|
||
- name: Build ABIN | ||
run: ./configure --pfunit ${HOME}/pfunit/build/installed/ --fftw && make | ||
env: | ||
FFLAGS: ${{ env.ABIN_FFLAGS }} | ||
|
||
- name: Run Unit tests | ||
run: make unittest | ||
|
@@ -174,9 +179,8 @@ jobs: | |
fail-fast: false | ||
matrix: | ||
gcc_v: [7, 8, 9] | ||
mpich_v: ["3.1.3", "3.3.2"] | ||
mpich_v: ["3.3.2", "3.4.1"] | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I dropped official support for MPICH versions < 3.3, because the There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Btw: That fix is a text-book example of a bug in handling strings in C code. |
||
env: | ||
ABIN_FFLAGS: -O0 -fopenmp --coverage -ffpe-trap=invalid,zero,overflow,denormal | ||
# To speed-up MPICH build | ||
CFLAGS: -O0 | ||
GCC_V: ${{ matrix.gcc_v}} | ||
|
@@ -204,10 +208,9 @@ jobs: | |
run: ./dev_scripts/install_mpich.sh ${HOME}/mpich ${MPICH_V} | ||
|
||
- name: build ABIN | ||
run: | | ||
export FFLAGS=${ABIN_FFLAGS} &&\ | ||
./configure --mpi ${HOME}/mpich/${MPICH_V}/install &&\ | ||
make | ||
run: ./configure --mpi ${HOME}/mpich/${MPICH_V}/install && make | ||
env: | ||
FFLAGS: ${{ env.ABIN_FFLAGS }} -g | ||
- name: test ABIN | ||
run: make test | ||
# We upload to Codecov from the OpenMPI build, | ||
|
@@ -227,7 +230,6 @@ jobs: | |
matrix: | ||
gcc_v: [7] | ||
env: | ||
ABIN_FFLAGS: -O0 --coverage -fopenmp -ffpe-trap=invalid,zero,overflow,denormal | ||
# To speed-up OpenMPI build | ||
CFLAGS: -O0 | ||
GCC_V: ${{ matrix.gcc_v}} | ||
|
@@ -255,10 +257,9 @@ jobs: | |
run: ./dev_scripts/install_openmpi.sh ${HOME}/openmpi ${OPENMPI_V} ${OPENMPI_PATCH} | ||
|
||
- name: build ABIN | ||
run: | | ||
export FFLAGS=${ABIN_FFLAGS} &&\ | ||
./configure --mpi "${HOME}/openmpi/${OPENMPI_V}/install" &&\ | ||
make | ||
run: ./configure --mpi "${HOME}/openmpi/${OPENMPI_V}/install" && make | ||
env: | ||
FFLAGS: ${{ env.ABIN_FFLAGS }} | ||
- name: test ABIN | ||
run: make test | ||
- name: Codecov upload | ||
|
@@ -278,7 +279,6 @@ jobs: | |
env: | ||
PLUMED_V: ${{ matrix.plumed_v}} | ||
GCC_V: ${{ matrix.gcc_v}} | ||
ABIN_FFLAGS: -O0 -fopenmp --coverage -ffpe-trap=invalid,zero,overflow,denormal | ||
# Speeding up the Plumed build | ||
CFLAGS: -O0 | ||
CXXLAGS: -O0 | ||
|
@@ -312,10 +312,11 @@ jobs: | |
|
||
- name: build ABIN | ||
run: | | ||
export FFLAGS=${ABIN_FFLAGS} &&\ | ||
./configure --plumed "${HOME}/plumed/${PLUMED_V}/install"\ | ||
--pfunit ~/pfunit/build/installed/ &&\ | ||
make | ||
env: | ||
FFLAGS: ${{ env.ABIN_FFLAGS }} | ||
|
||
- name: Run Unit tests | ||
run: make unittest | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -27,7 +27,7 @@ coverage: | |
patch: | ||
default: | ||
target: auto | ||
threshold: 3.0% | ||
threshold: 3% | ||
|
||
parsers: | ||
gcov: | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -17,6 +17,10 @@ TAR_FILE="mpich-${MPICH_VERSION}.tar.gz" | |
DOWNLOAD_URL="https://www.mpich.org/static/downloads/${MPICH_VERSION}/${TAR_FILE}" | ||
INSTALL_DIR="$MPICH_DIR/$MPICH_VERSION/install" | ||
|
||
# Github Actions machines have two CPUs, per: | ||
# https://docs.github.com/en/free-pro-team@latest/actions/reference/specifications-for-github-hosted-runners#supported-runners-and-hardware-resources | ||
NCPUS=2 | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We already do this for OpenMPI build. |
||
|
||
if [[ -d $MPICH_DIR/$MPICH_VERSION ]];then | ||
echo "Found existing MPICH installation in $MPICH_DIR/$MPICH_VERSION" | ||
echo "Remove this folder if you want to reinstall" | ||
|
@@ -30,18 +34,23 @@ curl "$DOWNLOAD_URL" > $MPICH_DIR/$MPICH_VERSION/pkg/${TAR_FILE} | |
cd $MPICH_DIR/$MPICH_VERSION/src && tar -xzf ../pkg/${TAR_FILE} && cd mpich-${MPICH_VERSION} | ||
|
||
# If you're building MPI for general use, not only for ABIN, | ||
# you might want to change the configure options: | ||
# --enable-fortran=yes Compile all versions of Fortran interfaces | ||
# This option is needed for GitHub Actions build, I don't know why | ||
# --with-hydra-pm=pmiserv --with-namepublisher=pmi | ||
# Needed for MPI interface with TeraChem | ||
# you might want change some of the configure options. | ||
# --enable-fortran=all Compile all versions of Fortran interfaces | ||
# In principle we don't need F77, but configure fails in that case. | ||
# --with-namepublisher=pmi | ||
# This compiles hydra_nameserver binary, needed for MPI interface with TeraChem | ||
# | ||
# Use the two rows below for a debug build/ | ||
# export CFLAGS='-g -O0' | ||
# --disable-fast --enable-g-option=all \ | ||
./configure FC=gfortran CC=gcc \ | ||
--enable-fortran=all --disable-cxx \ | ||
--with-hydra-pm=pmiserv --with-namepublisher=pmi \ | ||
--enable-fortran=all \ | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I deleted I also added the MPICH interface explicitly |
||
--with-pm=hydra --with-device=ch3:nemesis \ | ||
--with-namepublisher=pmi \ | ||
--enable-static --disable-shared \ | ||
--prefix=${INSTALL_DIR} 2>&1 |\ | ||
tee configure.log | ||
make 2>&1 | tee make.log | ||
make -j $NCPUS 2>&1 | tee make.log | ||
make install 2>&1 | tee make_install.log | ||
|
||
echo " | ||
|
This file was deleted.
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -121,12 +121,11 @@ subroutine force_abin(x, y, z, fx, fy, fz, eclas, chpot, walkmax) | |
!-----MAKE THE CALL----------! | ||
ISTATUS = system(chsystem) | ||
|
||
! TODO: Verify that the below is true even for GCC >= 7 | ||
! Exit status 0 turns to 0 | ||
! For some reason, exit status 1 turns to 256 | ||
! However, this one we get by default from bash, don't know why... | ||
! see this thread for explanation: | ||
! http://coding.derkeiler.com/Archive/Fortran/comp.lang.fortran/MAXUNITS07-01/msg00085.html | ||
! If the bash script wants to notify ABIN, it can use e.g. exit 2 | ||
! However, this one we get by default from BASH, I don't know why. | ||
! If the BASH script wants to notify ABIN, it can use e.g. exit 2 | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This link doesn't work anymore. |
||
if (ISTATUS /= 0 .and. ISTATUS /= 256) then | ||
write (*, '(A)') 'ERROR during the execution of the ab initio external program.' | ||
write (*, '(A)') 'Please inspect the output files in& | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The only job where we don't use this is the
optimized_build