Skip to content
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

Compiler updates #989

Merged
merged 9 commits into from
Aug 9, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions .github/workflows/github_actions.yml
Original file line number Diff line number Diff line change
Expand Up @@ -225,12 +225,6 @@ jobs:
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
Expand Down Expand Up @@ -392,6 +386,12 @@ jobs:
armci_network: MPI-TS
nwchem_modules: "nwdft driver solvation mp2_grad mcscf ccsd rimp2 fcidump nwc_columbus"
fc: ifx
- os: ubuntu-22.04
experimental: true
mpi_impl: mpich
armci_network: MPI-TS
nwchem_modules: "tinyqmpw"
fc: flang-new-20
- os: ubuntu-22.04
experimental: true
mpi_impl: mpich
Expand Down
10 changes: 2 additions & 8 deletions QA/doqmtests.mpi
Original file line number Diff line number Diff line change
Expand Up @@ -646,14 +646,8 @@ let "myexit+=$?"
./runtests.mpi.unix procs $np ch4-dft-scf-prop
let "myexit+=$?"
# superheavy elements check
source ./qa_funcs.sh
strings -a $(get_nwchem_executable) |grep Tennessine >& /dev/null
exit_code=$?
if [[ $exit_code == 0 ]]; then
echo NWChem code ready for superheavy elements
./runtests.mpi.unix procs $np dft_tennessine
let "myexit+=$?"
fi
./runtests.mpi.unix procs $np dft_tennessine
let "myexit+=$?"
#
./runtests.mpi.unix procs $np ccsdt_ompt_w3pvdz
let "myexit+=$?"
Expand Down
2 changes: 1 addition & 1 deletion src/config/makefile.h
Original file line number Diff line number Diff line change
Expand Up @@ -2423,7 +2423,7 @@ ifneq ($(TARGET),LINUX)
FOPTIONS += -qopt-report-file=stderr
endif
ifeq ($(V),-1)
FOPTIONS += -diag-disable=7713,8291,15009
FOPTIONS += -diag-disable=7713,8291,15009,10448
endif
# to avoid compiler crashes on simd directive. e.g .Version 15.0.2.164 Build 20150121
ifdef USE_NOSIMD
Expand Down
44 changes: 30 additions & 14 deletions src/solvation/hnd_coschg.F
Original file line number Diff line number Diff line change
Expand Up @@ -588,6 +588,7 @@ subroutine hnd_coschg(g_dens,ndens,rtdb,geom,basis,nat,nefc,
integer iter_cosmo_vem
integer l_efczfx, k_efczfx ! memory handles for fixed cosmo-vem charges
integer g_vem(3) ! ga handles for cosmo-vem GS potential, GS charges, and ES noneq charges
integer nefc_rtdb
double precision, external :: ddot
c
oprint_energies = util_print("cosmo_energies",print_never)
Expand Down Expand Up @@ -873,6 +874,28 @@ subroutine hnd_coschg(g_dens,ndens,rtdb,geom,basis,nat,nefc,
c
c ----- calculate qraw = q* = A^{-1}BQ -----
c
if (.not.rtdb_get(rtdb,'cosmo:n_raw',mt_int,1,nefc_rtdb))
c nefc_rtdb=0

iep=-99
ieq=-99
if (all) then
iep=i10
ieq=i20
else if (nucl) then
iep=i11
ieq=i21
else if (elec) then
iep=i12
ieq=i22
endif

if((nefc_rtdb.eq.0).or.(nefc_rtdb.ne.nefc)) then
call dfill(nefc,zero,dbl_mb(ieq),1)
status = rtdb_delete(rtdb,'cosmo:qraw')
status = rtdb_delete(rtdb,'cosmo:qrawn')
status = rtdb_delete(rtdb,'cosmo:qrawe')
else
if (all) then
if (.not.rtdb_get(rtdb,'cosmo:qraw',mt_dbl,nefc,
d dbl_mb(i20))) then
Expand All @@ -885,36 +908,29 @@ subroutine hnd_coschg(g_dens,ndens,rtdb,geom,basis,nat,nefc,
c If no raw nuclear COSMO charges were found initialize x=0
call dfill(nefc,zero,dbl_mb(i21),1)
endif
else if (elec) then
else if (elec) then
if (.not.rtdb_get(rtdb,'cosmo:qrawe',mt_dbl,nefc,
d dbl_mb(i22)))then
c If no raw electron COSMO charges were found initialize x=0
call dfill(nefc,zero,dbl_mb(i22),1)
endif
endif
endif
endif
c
direct=.true.
c
c ----- solve ... -----
c
iep=-99
ieq=-99
if (all) then
iep=i10
ieq=i20
else if (nucl) then
iep=i11
ieq=i21
else if (elec) then
iep=i12
ieq=i22
endif

call hnd_cg(nat,dbl_mb(iep),dbl_mb(ieq),nefc,
1 dbl_mb(i40),dbl_mb(i50),dbl_mb(i60),
d dbl_mb(i70),
2 efcc,efcs,efczz,efciat,ratm)
c
if (.not.rtdb_put(rtdb,'cosmo:n_raw',mt_int,1,nefc))
c call errquit('hnd_coschg: could not store n_raw COSMO ',
1 nefc,RTDB_ERR)

if (all) then
if (.not.rtdb_put(rtdb,'cosmo:qraw',mt_dbl,nefc,
d dbl_mb(i20))) then
Expand Down
2 changes: 1 addition & 1 deletion src/tools/GNUmakefile
Original file line number Diff line number Diff line change
Expand Up @@ -629,7 +629,7 @@ ifdef USE_GAGITHUB
GA_BRANCH = develop
else
GA_DIR0=ga-$(GA_BRANCH)
GA_DIR := (shell echo $(GA_DIR0) | sed -e 's/\//_/g')
GA_DIR := $(shell echo $(GA_DIR0) | sed -e 's/\//_/g')
endif
endif
else
Expand Down
61 changes: 13 additions & 48 deletions travis/build_env.sh
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,11 @@ if [ -z "$DISTR" ] ; then
DISTR=$dist
fi
echo DISTR is "$DISTR"
IONEAPI_ROOT=~/apps/oneapi
if [[ "$os" == "Darwin" ]]; then
IONEAPI_ROOT=~/apps/oneapi
else
IONEAPI_ROOT=/opt/intel/oneapi
fi
if [[ "$os" == "Darwin" ]]; then
if [ -z $XCODE_VERSION ]; then
echo XCODE_VERSION is not set
Expand Down Expand Up @@ -151,16 +155,9 @@ if [[ "$os" == "Linux" ]]; then
if [[ "$MPI_IMPL" == "intel" || "$FC" == "ifort" || "$FC" == "ifx" ]]; then
export APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1
export TERM=dumb
rm -f l_Base*sh l_HP*sh
tries=0 ; until [ "$tries" -ge 10 ] ; do \
dir_base="fdc7a2bc-b7a8-47eb-8876-de6201297144"
dir_hpc="7f096850-dc7b-4c35-90b5-36c12abd9eaa"
base="l_BaseKit_p_2024.1.0.596"
hpc="l_HPCKit_p_2024.1.0.560"
wget -nv https://registrationcenter-download.intel.com/akdlm/IRC_NAS/"$dir_hpc"/"$hpc".sh \
&& wget -nv https://registrationcenter-download.intel.com/akdlm/IRC_NAS/"$dir_base"/"$base".sh \
&& break ;\
tries=$((tries+1)) ; echo attempt no. $tries ; sleep 30 ; done
wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | gpg --dearmor | $MYSUDO tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null
echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" | $MYSUDO tee /etc/apt/sources.list.d/oneAPI.list
$MYSUDO apt-get update

if [[ "$MPI_IMPL" == "intel" ]]; then
mpi_bin=" " ; mpi_libdev=" " scalapack_libdev=" "
Expand Down Expand Up @@ -189,49 +186,17 @@ if [[ "$os" == "Linux" ]]; then

fi
if [[ "$FC" == "ifort" ]] || [[ "$FC" == "ifx" ]]; then
# sh ./"$base".sh -a -c -s --action remove --install-dir $IONEAPI_ROOT --eula accept
# sh ./"$hpc".sh -a -c -s --action remove --install-dir $IONEAPI_ROOT --eula accept

sh ./"$base".sh -a -c -s --action install --components intel.oneapi.lin.mkl.devel --install-dir $IONEAPI_ROOT --eula accept
$MYSUDO apt-get install -y intel-oneapi-compiler-fortran intel-oneapi-mkl intel-oneapi-compiler-dpcpp-cpp libfabric-bin libnuma1
if [[ "$?" != 0 ]]; then
df -h
echo "base kit install failed: exit code " "${?}"
echo "intel-oneapi-compiler-fortran install failed: exit code " "${?}"
exit 1
fi
rm -rf $IONEAPI_ROOT/mkl/latest/lib/ia32
rm -rf $IONEAPI_ROOT/mkl/latest/lib/intel64/*sycl*
rm -rf $IONEAPI_ROOT/mkl/latest/lib/intel64/*_pgi_*
rm -rf $IONEAPI_ROOT/mkl/latest/lib/intel64/*_gf_*
intel_components="intel.oneapi.lin.ifort-compiler:intel.oneapi.lin.dpcpp-cpp-compiler"
if [[ "$MPI_IMPL" == "intel" ]]; then
intel_components+=":intel.oneapi.lin.mpi.devel"
fi
sh ./"$hpc".sh -a -c -s --action install \
--components "$intel_components" \
--install-dir $IONEAPI_ROOT --eula accept
if [[ "$?" != 0 ]]; then
df -h
echo "hpc kit install failed: exit code " "${?}"
exit 1
fi
rm -rf $IONEAPI_ROOT/compiler/latest/linux/lib/oclfpga
rm -f ./"$hpc".sh ./"$base".sh
#Critical updates for 2023.2
wget https://registrationcenter-download.intel.com/akdlm/IRC_NAS/0d65c8d4-f245-4756-80c4-6712b43cf835/l_fortran-compiler_p_2023.2.1.8.sh
sh l_fortran-compiler_p_2023.2.1.8.sh -a -c -s --action install --install-dir $IONEAPI_ROOT --components intel.oneapi.lin.ifort-compiler --eula accept
wget https://registrationcenter-download.intel.com/akdlm/IRC_NAS/ebf5d9aa-17a7-46a4-b5df-ace004227c0e/l_dpcpp-cpp-compiler_p_2023.2.1.8.sh
sh l_dpcpp-cpp-compiler_p_2023.2.1.8.sh -a -s --install-dir $IONEAPI_ROOT --eula accept
if [[ "$?" != 0 ]]; then
echo "apt-get install failed: exit code " "${?}"
exit 1
fi
rm -f l_*comp*sh || true
rm -rf $IONEAPI_ROOT/compiler/latest/linux/lib/oclfpga || true
source "$IONEAPI_ROOT"/setvars.sh || true
export I_MPI_F90="$FC"
"$FC" -V ; if [[ $? != 0 ]]; then echo "Intel SW install failed"; exit 1; fi
icx -V

sudo rm -rf $MKLROOT/lib/*sycl* || true
fi
if [[ "$FC" == 'flang-new-'* ]]; then
wget https://apt.llvm.org/llvm.sh
Expand All @@ -242,8 +207,8 @@ if [[ "$os" == "Linux" ]]; then
fi
if [[ "$FC" == "flang" ]]; then
if [[ "USE_AOMP" == "Y" ]]; then
aomp_major=18
aomp_minor=0-0
aomp_major=19
aomp_minor=0-3
wget -nv https://github.com/ROCm-Developer-Tools/aomp/releases/download/rel_"$aomp_major"."$aomp_minor"/aomp_Ubuntu2004_"$aomp_major"."$aomp_minor"_amd64.deb
$MYSUDO dpkg -i aomp_Ubuntu2004_"$aomp_major"."$aomp_minor"_amd64.deb
export PATH=/usr/lib/aomp_"$aomp_major"."$aomp_minor"/bin/:$PATH
Expand Down
11 changes: 10 additions & 1 deletion travis/nwchem.bashrc
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,16 @@ if [[ "$FC" == "nvfortran" ]]; then
export MPICH_FC=nvfortran
fi
if [[ "$FC" == "ifort" ]] || [[ "$FC" == "ifx" ]] ; then
IONEAPI_ROOT=~/apps/oneapi
if [[ "$os" == "Darwin" ]]; then
IONEAPI_ROOT=~/apps/oneapi
else
IONEAPI_ROOT=/opt/intel/oneapi
# fix runtime mpi_init error
# export FI_LOG_LEVEL=TRACE
export FI_PROVIDER=shm
echo "*** output of fi_info ***"
echo $(fi_info -l) || true
fi
# source "$IONEAPI_ROOT"/compiler/latest/env/vars.sh
source "$IONEAPI_ROOT"/setvars.sh --force
export I_MPI_F90="$FC"
Expand Down
Loading