diff --git a/repos/spack_repo/builtin/packages/genesis/fix-nvtx-include.patch b/repos/spack_repo/builtin/packages/genesis/fix-nvtx-include.patch new file mode 100644 index 00000000000..4f70494fbf0 --- /dev/null +++ b/repos/spack_repo/builtin/packages/genesis/fix-nvtx-include.patch @@ -0,0 +1,23 @@ +--- a/configure.ac 2026-03-26 10:19:00.000000000 +0900 ++++ b/configure.ac 2026-03-26 10:19:50.000000000 +0900 +@@ -761,6 +761,20 @@ + + # NVCCFLAG + NVCCFLAG="-c -g -O3 ${GENCODEFLAG} --ftz=false --prec-div=true --prec-sqrt=true --fmad=true" ++ ++ if test "x${CUDA_HOME}" != x; then ++ if test -d "${CUDA_HOME}/targets/sbsa-linux/include/nvtx3"; then ++ NVCCFLAG="${NVCCFLAG} -I${CUDA_HOME}/targets/sbsa-linux/include/nvtx3" ++ elif test -d "${CUDA_HOME}/include/nvtx3"; then ++ NVCCFLAG="${NVCCFLAG} -I${CUDA_HOME}/include/nvtx3" ++ fi ++ elif test "x${CUDA_PATH}" != x; then ++ if test -d "${CUDA_PATH}/targets/sbsa-linux/include/nvtx3"; then ++ NVCCFLAG="${NVCCFLAG} -I${CUDA_PATH}/targets/sbsa-linux/include/nvtx3" ++ elif test -d "${CUDA_PATH}/include/nvtx3"; then ++ NVCCFLAG="${NVCCFLAG} -I${CUDA_PATH}/include/nvtx3" ++ fi ++ fi + AC_SUBST(NVCCFLAG) + fi + diff --git a/repos/spack_repo/builtin/packages/genesis/fj_compiler_2.0.0.patch b/repos/spack_repo/builtin/packages/genesis/fj_compiler_2.0.0.patch new file mode 100644 index 00000000000..4309bb0d8d3 --- /dev/null +++ b/repos/spack_repo/builtin/packages/genesis/fj_compiler_2.0.0.patch @@ -0,0 +1,373 @@ +--- a/configure.ac ++++ b/configure.ac +@@ -146,12 +146,7 @@ AC_PROG_CXX($qsimulate_default_cxx) + # check actual compiler + AC_MSG_CHECKING([for actual compiler]) + +-if test x"${FC}" = x"mpifrtpx"; then +- VER_OPT="-V" +-else +- VER_OPT="--version" +-fi +- ++VER_OPT="-V" + + fc_ver_info=$(${FC} -E ${VER_OPT}) + for vtok in ${fc_ver_info} ; do +@@ -181,7 +176,7 @@ for vtok in ${fc_ver_info} ; do + done + + if test -z "${FC_ACT}"; then +- FC_ACT=${FC} ++ FC_ACT=`basename ${FC}` + fi + F77_ACT=FC_ACT + +@@ -322,7 +317,7 @@ for vtok in ${cc_ver_info} ; do + done + + if test -z "${CC_ACT}"; then +- CC_ACT=${CC} ++ CC_ACT=`basename ${CC}` + fi + + AC_MSG_RESULT([$CC_ACT]) +@@ -861,6 +856,7 @@ FARCFLAGS_NOOPT="" + FARCFLAGS_KERNELS="" + FARCFLAGS_KERNELS_PAIRLIST="" + FARCFLAGS_DIHEDRAL="" ++FARCFLAGS_NOKPARALLEL="" + + # FFLAGS + if test x"${ac_test_FFLAGS}" = x"set"; then +@@ -917,22 +913,17 @@ else + elif test x"${FC_ACT}" = x"pgf90"; then + FCFLAGS="-O2 -fastsse -Mipa=fast,inline -m64 -Mflushz -pc 64 -mcmodel=medium -Msmartalloc=huge" + +- elif test x"${FC_ACT}" = x"frtpx"; then +- FCFLAGS="-m -Kocl -Kfast,openmp,parallel,simd=2,noalias -Nlst=t -Koptmsg=2" +- +- elif test x"${FC_ACT}" = x"mpifrtpx"; then +- FCFLAGS="-m -Kocl -Kfast,openmp,parallel,simd=2,noalias -Nlst=t -Koptmsg=2" +- FCFLAGS_FFTE_KERNEL_FPP__PGI__SP=" -m -Kocl -Kfast,openmp,parallel,simd=2,noalias -Nlst=t -Koptmsg=2" +- FCFLAGS_FPP__PGI_NOOPT="-m -Kocl -Kfast,openmp,parallel,simd=2,noalias -Nlst=t -Koptmsg=2" +- FCFLAGS_KERNELS_PAIRLIST="-m -Kocl -Kfast,openmp,parallel,simd=2,nounroll,swp_strong,noalias=s -Nlst=t -Koptmsg=2" +- FCFLAGS_DIHEDRAL="-m -xsp_energy_dihedrals_mod.calculate_dihedral_2 -Kocl -Kfast,openmp,parallel,simd=2,noalias -Nlst=t -Koptmsg=2" +- FCFLAGS_KERNELS=" -m -Kocl -Kfast,openmp,parallel,simd=2,swp_strong,noalias=s -Nlst=t -Koptmsg=2" +- +- elif test x"${FC_ACT}" = x"frt"; then +- FCFLAGS="-m -Am -Kfast" ++ elif test x"${FC_ACT}" = x"frtpx" -o x"${FC_ACT}" = x"frt"; then ++ FCFLAGS="-Kocl" + +- elif test x"${FC_ACT}" = x"mpifrt"; then +- FCFLAGS="-m -Am -Kfast" ++ elif test x"${FC_ACT}" = x"mpifrtpx" -o x"${FC_ACT}" = x"mpifrt"; then ++ FCFLAGS=" -Kocl -Kfast,openmp,parallel,simd=2,noalias -Nlst=t -Koptmsg=2" ++ FCFLAGS_FFTE_KERNEL_FPP__PGI__SP=" -Kocl -Kfast,openmp,parallel,simd=2,noalias -Nlst=t -Koptmsg=2" ++ FCFLAGS_FPP__PGI_NOOPT=" -Kocl -Kfast,openmp,parallel,simd=2,noalias -Nlst=t -Koptmsg=2" ++ FCFLAGS_KERNELS_PAIRLIST=" -Kocl -Kfast,openmp,parallel,simd=2,nounroll,swp_strong,noalias=s -Nlst=t -Koptmsg=2" ++ FCFLAGS_DIHEDRAL=" -xsp_energy_dihedrals_mod.calculate_dihedral_2 -Kocl -Kfast,openmp,parallel,simd=2,noalias -Nlst=t -Koptmsg=2" ++ FCFLAGS_KERNELS=" -Kocl -Kfast,openmp,parallel,simd=2,swp_strong,noalias=s -Nlst=t -Koptmsg=2" ++ FCFLAGS_NOKPARALLEL=" -Kocl -Kfast,openmp,simd=2,noalias -Nlst=t -Koptmsg=2" + + fi + +@@ -956,16 +947,16 @@ else + FCFLAGS="-m64 -Mflushz -pc 64 -mcmodel=medium -Msmartalloc=huge -Mbackslash" + + elif test x"${FC_ACT}" = x"frtpx"; then +- FCFLAGS="-m -Kocl -Kopenmp -Nlst=t -Koptmsg=2" ++ FCFLAGS=" -Kocl -Kopenmp -Nlst=t -Koptmsg=2" + + elif test x"${FC_ACT}" = x"mpifrtpx"; then +- FCFLAGS="-m -Kocl -Kopenmp -Nlst=t -Koptmsg=2" ++ FCFLAGS=" -Kocl -Kopenmp -Nlst=t -Koptmsg=2" + + elif test x"${FC_ACT}" = x"frt"; then +- FCFLAGS="-m " ++ FCFLAGS=" -Kocl -Kopenmp -Nlst=t -Koptmsg=2" + + elif test x"${FC_ACT}" = x"mpifrt"; then +- FCFLAGS="-m " ++ FCFLAGS=" -Kocl -Kopenmp -Nlst=t -Koptmsg=2" + + fi + +@@ -992,16 +983,16 @@ else + FCFLAGS="-g -m64 -Mflushz -pc 64 -mcmodel=medium -Msmartalloc=huge -Mbackslash" + + elif test x"${FC_ACT}" = x"frtpx"; then +- FCFLAGS="-g -m -Kocl -Kopenmp" ++ FCFLAGS="-g -Kocl -Kopenmp" + + elif test x"${FC_ACT}" = x"mpifrtpx"; then +- FCFLAGS=" -g -m -Kocl -Kopenmp -Nlst=t -Koptmsg=2" ++ FCFLAGS=" -g -Kocl -Kopenmp -Nlst=t -Koptmsg=2" + + elif test x"${FC_ACT}" = x"frt"; then +- FCFLAGS="-g -m " ++ FCFLAGS="-g -Kocl -Kopenmp" + + elif test x"${FC_ACT}" = x"mpifrt"; then +- FCFLAGS="-g -m " ++ FCFLAGS=" -g -Kocl -Kopenmp -Nlst=t -Koptmsg=2" + + fi + +@@ -1028,7 +1019,7 @@ else + FCFLAGS="-O0 -g -m64 -Msmartalloc=huge" + + elif test x"${FC_ACT}" = x"frtpx"; then +- FCFLAGS=" -O0 -g -m -Kocl -Kopenmp -Hs -Hu -Ha -Nlst=t -Koptmsg=2" ++ FCFLAGS=" -O0 -g -Kocl -Kopenmp -Hs -Hu -Ha -Nlst=t -Koptmsg=2" + + elif test x"${FC_ACT}" = x"mpifrtpx"; then + FCFLAGS="-O0 -g -Hs -Hu -Ha" +@@ -1037,12 +1028,19 @@ else + FCFLAGS_FFTE_KERNEL_FPP__PGI__SP="-O0 -g -Hs -Hu -Ha -Kopenmp" + FCFLAGS_FPP__PGI_NOOPT="-O0 -g -Hs -Hu -Ha -Kopenmp" + FCFLAGS_DIHEDRAL="-O0 -g -Hs -Hu -Ha -Kopenmp" ++ FCFLAGS_NOKPARALLEL="-O0 -g -Hs -Hu -Ha -Kopenmp" + + elif test x"${FC_ACT}" = x"frt"; then +- FCFLAGS="-O0 -g" ++ FCFLAGS=" -O0 -g -Kocl -Kopenmp -Hs -Hu -Ha -Nlst=t -Koptmsg=2" + + elif test x"${FC_ACT}" = x"mpifrt"; then +- FCFLAGS="-O0 -g" ++ FCFLAGS="-O0 -g -Hs -Hu -Ha" ++ FCFLAGS_KERNELS="-O0 -g -Hs -Hu -Ha -Kopenmp" ++ FCFLAGS_KERNELS_PAIRLIST="-O0 -g -Hs -Hu -Ha -Kopenmp" ++ FCFLAGS_FFTE_KERNEL_FPP__PGI__SP="-O0 -g -Hs -Hu -Ha -Kopenmp" ++ FCFLAGS_FPP__PGI_NOOPT="-O0 -g -Hs -Hu -Ha -Kopenmp" ++ FCFLAGS_DIHEDRAL="-O0 -g -Hs -Hu -Ha -Kopenmp" ++ FCFLAGS_NOKPARALLEL="-O0 -g -Hs -Hu -Ha -Kopenmp" + + fi + else +@@ -1090,6 +1088,7 @@ AC_SUBST(FCFLAGS_KERNELS) + AC_SUBST(FCFLAGS_KERNELS_PAIRLIST) + AC_SUBST(FCFLAGS_DIHEDRAL) + AC_SUBST(FCFLAGS_DISABLEFARC) ++AC_SUBST(FCFLAGS_NOKPARALLEL) + + # CFLAGS + if test x"${ac_test_CFLAGS}" = x"set"; then +@@ -1117,16 +1116,16 @@ else + CFLAGS="-O3 -fastsse -m64 -Mflushz -pc 64 -mcmodel=medium -Msmartalloc=huge" + + elif test x"${CC_ACT}" = x"fccpx"; then +- CFLAGS="-m -Kvisimpact -Kocl -Kswp" ++ CFLAGS=" -Kvisimpact -Kocl -Kswp" + + elif test x"${CC_ACT}" = x"mpifccpx"; then +- CFLAGS="-m -Kvisimpact -Kocl -Kswp" ++ CFLAGS=" -Kvisimpact -Kocl -Kswp" + + elif test x"${CC_ACT}" = x"fcc"; then +- CFLAGS="-m -Kfast" ++ CFLAGS=" -Kfast -Kocl -Kswp" + + elif test x"${CC_ACT}" = x"mpifcc"; then +- CFLAGS="-m -Kfast" ++ CFLAGS=" -Kfast -Kocl -Kswp" + + fi + +@@ -1150,16 +1149,16 @@ else + CFLAGS="-fastsse -m64 -Mflushz -pc 64 -mcmodel=medium -Msmartalloc=huge" + + elif test x"${CC_ACT}" = x"fccpx"; then +- CFLAGS="-m -Kocl" ++ CFLAGS=" -Kocl" + + elif test x"${CC_ACT}" = x"mpifccpx"; then +- CFLAGS="-m -Kocl" ++ CFLAGS=" -Kocl" + + elif test x"${CC_ACT}" = x"fcc"; then +- CFLAGS="-m -Kfast" ++ CFLAGS=" -Kocl" + + elif test x"${CC_ACT}" = x"mpifcc"; then +- CFLAGS="-m -Kfast" ++ CFLAGS=" -Kocl" + + fi + +@@ -1186,16 +1185,16 @@ else + CFLAGS="-g -fastsse -m64 -Mflushz -pc 64 -mcmodel=medium -Msmartalloc=huge" + + elif test x"${CC_ACT}" = x"fccpx"; then +- CFLAGS="-g -m -Kocl" ++ CFLAGS="-g -Kocl" + + elif test x"${CC_ACT}" = x"mpifccpx"; then +- CFLAGS="-g -m -Kocl" ++ CFLAGS="-g -Kocl" + + elif test x"${CC_ACT}" = x"fcc"; then +- CFLAGS="-g -m -Kfast" ++ CFLAGS="-g -Kocl" + + elif test x"${CC_ACT}" = x"mpifcc"; then +- CFLAGS="-g -m -Kfast" ++ CFLAGS="-g -Kocl" + + fi + +@@ -1228,10 +1227,10 @@ else + CFLAGS="-O0 -g -Kocl" + + elif test x"${CC_ACT}" = x"fcc"; then +- CFLAGS="-O0 -g" ++ CFLAGS="-O0 -g -Kocl" + + elif test x"${CC_ACT}" = x"mpifcc"; then +- CFLAGS="-O0 -g" ++ CFLAGS="-O0 -g -Kocl" + + fi + else +@@ -1277,17 +1276,11 @@ if test -z "${LDFLAGS}"; then + LDFLAGS="" + #LDFLAGS="-march=native -fuse-linker-plugin" + +- elif test x"${FC_ACT}" = x"frtpx"; then +- LDFLAGS="-SSL2 -Kparallel -Nfjomplib" +- +- elif test x"${FC_ACT}" = x"mpifrtpx"; then +- LDFLAGS="-SSL2BLAMP -Kparallel -Nfjomplib" +- +- elif test x"${FC_ACT}" = x"frt"; then +- LDFLAGS="-SSL2 -Kparallel -Nfjomplib" ++ elif test x"${FC_ACT}" = x"frtpx" -o x"${FC_ACT}" = x"frt"; then ++ LDFLAGS="-SSL2 -Kparallel -Kopenmp -Nlibomp" + +- elif test x"${FC_ACT}" = x"mpifrt"; then +- LDFLAGS="-SSL2BLAMP -Kparallel -Nfjomplib" ++ elif test x"${FC_ACT}" = x"mpifrtpx" -o x"${FC_ACT}" = x"mpifrt"; then ++ LDFLAGS="-SSL2BLAMP -Kparallel -Kopenmp -Nlibomp" + + fi + fi +@@ -1357,7 +1350,8 @@ AC_ARG_WITH([fj_timer_2], + [use FJ-timer in main loop (default: not use)])], + [], [with_fj_timer_2=no]) + +-if test x"${FC_ACT}" = x"frtpx" -o x"${FC_ACT}" = x"mpifrtpx"; then ++if test x"${FC_ACT}" = x"frtpx" -o x"${FC_ACT}" = x"mpifrtpx" -o \ ++ x"${FC_ACT}" = x"frt" -o x"${FC_ACT}" = x"mpifrt"; then + AC_DEFINE(KCOMP, 1, [defined if K-computer compiler is used.]) + DEFINED_VARIABLES+=" -DKCOMP" + +@@ -1375,7 +1369,7 @@ if test x"${FC_ACT}" = x"frtpx" -o x"${FC_ACT}" = x"mpifrtpx"; then + mainly_pktimer=no + if test x"${enable_pktimer}" = x"yes"; then + +- if test x"${FC_ACT}" = x"mpifrtpx"; then ++ if test x"${FC_ACT}" = x"mpifrtpx" -o x"${FC_ACT}" = x"mpifrt"; then + AC_DEFINE(PKTIMER, 1, [defined if PKTIMER is used.]) + DEFINED_VARIABLES+=" -DPKTIMER" + mainly_pktimer=yes +--- a/src/lib/Makefile.am ++++ b/src/lib/Makefile.am +@@ -120,6 +120,28 @@ else + $(FC) $(DEFAULT_INCLUDES) $(INCLUDES) -I. $(FCFLAGS_FFTE_KERNEL_FPP__PGI__SP) -c $*.f90 + endif + ++fft3d_1dalltoall.o : fft3d_1dalltoall.fpp ++if USEKCOMP ++ cp $*.fpp $*.f90 ++ $(FPP) $(PPFLAGS) $(DEFS) $*.f90 ++ mv $*.cpp.f90 $*.f90 ++ $(FC) $(DEFAULT_INCLUDES) $(INCLUDES) -I. $(FCFLAGS_NOKPARALLEL) -c $*.f90 ++else ++ $(FPP) $(PPFLAGS) $(DEFS) $*.fpp $*.f90 ++ $(FC) $(DEFAULT_INCLUDES) $(INCLUDES) -I. $(FCFLAGS) -c $*.f90 ++endif ++ ++fft3d_2dalltoall.o : fft3d_2dalltoall.fpp ++if USEKCOMP ++ cp $*.fpp $*.f90 ++ $(FPP) $(PPFLAGS) $(DEFS) $*.f90 ++ mv $*.cpp.f90 $*.f90 ++ $(FC) $(DEFAULT_INCLUDES) $(INCLUDES) -I. $(FCFLAGS_NOKPARALLEL) -c $*.f90 ++else ++ $(FPP) $(PPFLAGS) $(DEFS) $*.fpp $*.f90 ++ $(FC) $(DEFAULT_INCLUDES) $(INCLUDES) -I. $(FCFLAGS) -c $*.f90 ++endif ++ + .fpp.o: + if USEKCOMP + cp $*.fpp $*.f90 + +--- a/src/spdyn/Makefile.am ++++ b/src/spdyn/Makefile.am +@@ -277,12 +277,46 @@ else + $(FC) $(DEFAULT_INCLUDES) $(INCLUDES) -I../lib $(FCFLAGS) -c $*.f90 + endif + ++sp_energy_pme_opt_1dalltoall.o : sp_energy_pme_opt_1dalltoall.fpp ++if USEKCOMP ++ cp $*.fpp $*.f90 ++ $(FPP) $(PPFLAGS) $(DEFS) $*.f90 ++ mv $*.cpp.f90 $*.f90 ++ $(FC) $(DEFAULT_INCLUDES) $(INCLUDES) -I../lib $(FCFLAGS_NOKPARALLEL) -c $*.f90 ++else ++ $(FPP) $(PPFLAGS) $(DEFS) $*.fpp $*.f90 ++ $(FC) $(DEFAULT_INCLUDES) $(INCLUDES) -I../lib $(FCFLAGS_NOOPT) -c $*.f90 ++endif ++ ++sp_energy_pme_opt_2dalltoall.o : sp_energy_pme_opt_2dalltoall.fpp ++if USEKCOMP ++ cp $*.fpp $*.f90 ++ $(FPP) $(PPFLAGS) $(DEFS) $*.f90 ++ mv $*.cpp.f90 $*.f90 ++ $(FC) $(DEFAULT_INCLUDES) $(INCLUDES) -I../lib $(FCFLAGS_NOKPARALLEL) -c $*.f90 ++else ++ $(FPP) $(PPFLAGS) $(DEFS) $*.fpp $*.f90 ++ $(FC) $(DEFAULT_INCLUDES) $(INCLUDES) -I../lib $(FCFLAGS_NOOPT) -c $*.f90 ++endif ++ ++sp_energy_pme_opt_slab.o : sp_energy_pme_opt_slab.fpp ++if USEKCOMP ++ cp $*.fpp $*.f90 ++ $(FPP) $(PPFLAGS) $(DEFS) $*.f90 ++ mv $*.cpp.f90 $*.f90 ++ $(FC) $(DEFAULT_INCLUDES) $(INCLUDES) -I../lib $(FCFLAGS_NOKPARALLEL) -c $*.f90 ++else ++ $(FPP) $(PPFLAGS) $(DEFS) $*.fpp $*.f90 ++ $(FC) $(DEFAULT_INCLUDES) $(INCLUDES) -I../lib $(FCFLAGS_NOOPT) -c $*.f90 ++endif ++ ++ + sp_energy_pme_noopt_1dalltoall.o : sp_energy_pme_noopt_1dalltoall.fpp + if USEKCOMP + cp $*.fpp $*.f90 + $(FPP) $(PPFLAGS) $(DEFS) $*.f90 + mv $*.cpp.f90 $*.f90 +- $(FC) $(DEFAULT_INCLUDES) $(INCLUDES) -I../lib $(FCFLAGS) -c $*.f90 ++ $(FC) $(DEFAULT_INCLUDES) $(INCLUDES) -I../lib $(FCFLAGS_NOKPARALLEL) -c $*.f90 + else + $(FPP) $(PPFLAGS) $(DEFS) $*.fpp $*.f90 + $(FC) $(DEFAULT_INCLUDES) $(INCLUDES) -I../lib $(FCFLAGS_NOOPT) -c $*.f90 +@@ -293,7 +327,7 @@ if USEKCOMP + cp $*.fpp $*.f90 + $(FPP) $(PPFLAGS) $(DEFS) $*.f90 + mv $*.cpp.f90 $*.f90 +- $(FC) $(DEFAULT_INCLUDES) $(INCLUDES) -I../lib $(FCFLAGS) -c $*.f90 ++ $(FC) $(DEFAULT_INCLUDES) $(INCLUDES) -I../lib $(FCFLAGS_NOKPARALLEL) -c $*.f90 + else + $(FPP) $(PPFLAGS) $(DEFS) $*.fpp $*.f90 + $(FC) $(DEFAULT_INCLUDES) $(INCLUDES) -I../lib $(FCFLAGS_NOOPT) -c $*.f90 +@@ -304,7 +338,7 @@ if USEKCOMP + cp $*.fpp $*.f90 + $(FPP) $(PPFLAGS) $(DEFS) $*.f90 + mv $*.cpp.f90 $*.f90 +- $(FC) $(DEFAULT_INCLUDES) $(INCLUDES) -I../lib $(FCFLAGS) -c $*.f90 ++ $(FC) $(DEFAULT_INCLUDES) $(INCLUDES) -I../lib $(FCFLAGS_NOKPARALLEL) -c $*.f90 + else + $(FPP) $(PPFLAGS) $(DEFS) $*.fpp $*.f90 + $(FC) $(DEFAULT_INCLUDES) $(INCLUDES) -I../lib $(FCFLAGS_NOOPT) -c $*.f90 diff --git a/repos/spack_repo/builtin/packages/genesis/fj_compiler_2.1.4.patch b/repos/spack_repo/builtin/packages/genesis/fj_compiler_2.1.4.patch new file mode 100644 index 00000000000..dc6d6cd5a3c --- /dev/null +++ b/repos/spack_repo/builtin/packages/genesis/fj_compiler_2.1.4.patch @@ -0,0 +1,385 @@ +--- a/configure.ac ++++ b/configure.ac +@@ -146,12 +146,7 @@ AC_PROG_CXX($qsimulate_default_cxx) + # check actual compiler + AC_MSG_CHECKING([for actual compiler]) + +-if test x"${FC}" = x"mpifrtpx"; then +- VER_OPT="-V" +-else +- VER_OPT="--version" +-fi +- ++VER_OPT="-V" + + fc_ver_info=$(${FC} -E ${VER_OPT}) + for vtok in ${fc_ver_info} ; do +@@ -181,7 +176,7 @@ for vtok in ${fc_ver_info} ; do + done + + if test -z "${FC_ACT}"; then +- FC_ACT=${FC} ++ FC_ACT=`basename ${FC}` + fi + F77_ACT=FC_ACT + +@@ -322,7 +317,7 @@ for vtok in ${cc_ver_info} ; do + done + + if test -z "${CC_ACT}"; then +- CC_ACT=${CC} ++ CC_ACT=`basename ${CC}` + fi + + AC_MSG_RESULT([$CC_ACT]) +@@ -861,6 +856,7 @@ FARCFLAGS_NOOPT="" + FARCFLAGS_KERNELS="" + FARCFLAGS_KERNELS_PAIRLIST="" + FARCFLAGS_DIHEDRAL="" ++FARCFLAGS_NOKPARALLEL="" + + # FFLAGS + if test x"${ac_test_FFLAGS}" = x"set"; then +@@ -917,22 +913,17 @@ else + elif test x"${FC_ACT}" = x"pgf90"; then + FCFLAGS="-O2 -fastsse -Mipa=fast,inline -m64 -Mflushz -pc 64 -mcmodel=medium -Msmartalloc=huge" + +- elif test x"${FC_ACT}" = x"frtpx"; then +- FCFLAGS="-m -Kocl -Kfast,openmp,parallel,simd=2,noalias -Nlst=t -Koptmsg=2" +- +- elif test x"${FC_ACT}" = x"mpifrtpx"; then +- FCFLAGS="-m -Kocl -Kfast,openmp,parallel,simd=2,noalias -Nlst=t -Koptmsg=2" +- FCFLAGS_FFTE_KERNEL_FPP__PGI__SP=" -m -Kocl -Kfast,openmp,parallel,simd=2,noalias -Nlst=t -Koptmsg=2" +- FCFLAGS_FPP__PGI_NOOPT="-m -Kocl -Kfast,openmp,parallel,simd=2,noalias -Nlst=t -Koptmsg=2" +- FCFLAGS_KERNELS_PAIRLIST="-m -Kocl -Kfast,openmp,parallel,simd=2,nounroll,swp_strong,noalias=s -Nlst=t -Koptmsg=2" +- FCFLAGS_DIHEDRAL="-m -xsp_energy_dihedrals_mod.calculate_dihedral_2 -Kocl -Kfast,openmp,parallel,simd=2,noalias -Nlst=t -Koptmsg=2" +- FCFLAGS_KERNELS=" -m -Kocl -Kfast,openmp,parallel,simd=2,swp_strong,noalias=s -Nlst=t -Koptmsg=2" +- +- elif test x"${FC_ACT}" = x"frt"; then +- FCFLAGS="-m -Am -Kfast" ++ elif test x"${FC_ACT}" = x"frtpx" -o x"${FC_ACT}" = x"frt"; then ++ FCFLAGS="-Kocl" + +- elif test x"${FC_ACT}" = x"mpifrt"; then +- FCFLAGS="-m -Am -Kfast" ++ elif test x"${FC_ACT}" = x"mpifrtpx" -o x"${FC_ACT}" = x"mpifrt"; then ++ FCFLAGS=" -Kocl -Kfast,openmp,parallel,simd=2,noalias -Nlst=t -Koptmsg=2" ++ FCFLAGS_FFTE_KERNEL_FPP__PGI__SP=" -Kocl -Kfast,openmp,parallel,simd=2,noalias -Nlst=t -Koptmsg=2" ++ FCFLAGS_FPP__PGI_NOOPT=" -Kocl -Kfast,openmp,parallel,simd=2,noalias -Nlst=t -Koptmsg=2" ++ FCFLAGS_KERNELS_PAIRLIST=" -Kocl -Kfast,openmp,parallel,simd=2,nounroll,swp_strong,noalias=s -Nlst=t -Koptmsg=2" ++ FCFLAGS_DIHEDRAL=" -xsp_energy_dihedrals_mod.calculate_dihedral_2 -Kocl -Kfast,openmp,parallel,simd=2,noalias -Nlst=t -Koptmsg=2" ++ FCFLAGS_KERNELS=" -Kocl -Kfast,openmp,parallel,simd=2,swp_strong,noalias=s -Nlst=t -Koptmsg=2" ++ FCFLAGS_NOKPARALLEL=" -Kocl -Kfast,openmp,simd=2,noalias -Nlst=t -Koptmsg=2" + + fi + +@@ -956,16 +947,16 @@ else + FCFLAGS="-m64 -Mflushz -pc 64 -mcmodel=medium -Msmartalloc=huge -Mbackslash" + + elif test x"${FC_ACT}" = x"frtpx"; then +- FCFLAGS="-m -Kocl -Kopenmp -Nlst=t -Koptmsg=2" ++ FCFLAGS=" -Kocl -Kopenmp -Nlst=t -Koptmsg=2" + + elif test x"${FC_ACT}" = x"mpifrtpx"; then +- FCFLAGS="-m -Kocl -Kopenmp -Nlst=t -Koptmsg=2" ++ FCFLAGS=" -Kocl -Kopenmp -Nlst=t -Koptmsg=2" + + elif test x"${FC_ACT}" = x"frt"; then +- FCFLAGS="-m " ++ FCFLAGS=" -Kocl -Kopenmp -Nlst=t -Koptmsg=2" + + elif test x"${FC_ACT}" = x"mpifrt"; then +- FCFLAGS="-m " ++ FCFLAGS=" -Kocl -Kopenmp -Nlst=t -Koptmsg=2" + + fi + +@@ -992,16 +983,16 @@ else + FCFLAGS="-g -m64 -Mflushz -pc 64 -mcmodel=medium -Msmartalloc=huge -Mbackslash" + + elif test x"${FC_ACT}" = x"frtpx"; then +- FCFLAGS="-g -m -Kocl -Kopenmp" ++ FCFLAGS="-g -Kocl -Kopenmp" + + elif test x"${FC_ACT}" = x"mpifrtpx"; then +- FCFLAGS=" -g -m -Kocl -Kopenmp -Nlst=t -Koptmsg=2" ++ FCFLAGS=" -g -Kocl -Kopenmp -Nlst=t -Koptmsg=2" + + elif test x"${FC_ACT}" = x"frt"; then +- FCFLAGS="-g -m " ++ FCFLAGS="-g -Kocl -Kopenmp" + + elif test x"${FC_ACT}" = x"mpifrt"; then +- FCFLAGS="-g -m " ++ FCFLAGS=" -g -Kocl -Kopenmp -Nlst=t -Koptmsg=2" + + fi + +@@ -1028,7 +1019,7 @@ else + FCFLAGS="-O0 -g -m64 -Msmartalloc=huge" + + elif test x"${FC_ACT}" = x"frtpx"; then +- FCFLAGS=" -O0 -g -m -Kocl -Kopenmp -Hs -Hu -Ha -Nlst=t -Koptmsg=2" ++ FCFLAGS=" -O0 -g -Kocl -Kopenmp -Hs -Hu -Ha -Nlst=t -Koptmsg=2" + + elif test x"${FC_ACT}" = x"mpifrtpx"; then + FCFLAGS="-O0 -g -Hs -Hu -Ha" +@@ -1037,12 +1028,19 @@ else + FCFLAGS_FFTE_KERNEL_FPP__PGI__SP="-O0 -g -Hs -Hu -Ha -Kopenmp" + FCFLAGS_FPP__PGI_NOOPT="-O0 -g -Hs -Hu -Ha -Kopenmp" + FCFLAGS_DIHEDRAL="-O0 -g -Hs -Hu -Ha -Kopenmp" ++ FCFLAGS_NOKPARALLEL="-O0 -g -Hs -Hu -Ha -Kopenmp" + + elif test x"${FC_ACT}" = x"frt"; then +- FCFLAGS="-O0 -g" ++ FCFLAGS=" -O0 -g -Kocl -Kopenmp -Hs -Hu -Ha -Nlst=t -Koptmsg=2" + + elif test x"${FC_ACT}" = x"mpifrt"; then +- FCFLAGS="-O0 -g" ++ FCFLAGS="-O0 -g -Hs -Hu -Ha" ++ FCFLAGS_KERNELS="-O0 -g -Hs -Hu -Ha -Kopenmp" ++ FCFLAGS_KERNELS_PAIRLIST="-O0 -g -Hs -Hu -Ha -Kopenmp" ++ FCFLAGS_FFTE_KERNEL_FPP__PGI__SP="-O0 -g -Hs -Hu -Ha -Kopenmp" ++ FCFLAGS_FPP__PGI_NOOPT="-O0 -g -Hs -Hu -Ha -Kopenmp" ++ FCFLAGS_DIHEDRAL="-O0 -g -Hs -Hu -Ha -Kopenmp" ++ FCFLAGS_NOKPARALLEL="-O0 -g -Hs -Hu -Ha -Kopenmp" + + fi + else +@@ -1090,6 +1088,7 @@ AC_SUBST(FCFLAGS_KERNELS) + AC_SUBST(FCFLAGS_KERNELS_PAIRLIST) + AC_SUBST(FCFLAGS_DIHEDRAL) + AC_SUBST(FCFLAGS_DISABLEFARC) ++AC_SUBST(FCFLAGS_NOKPARALLEL) + + # CFLAGS + if test x"${ac_test_CFLAGS}" = x"set"; then +@@ -1117,16 +1116,16 @@ else + CFLAGS="-O3 -fastsse -m64 -Mflushz -pc 64 -mcmodel=medium -Msmartalloc=huge" + + elif test x"${CC_ACT}" = x"fccpx"; then +- CFLAGS="-m -Kvisimpact -Kocl -Kswp" ++ CFLAGS=" -Kvisimpact -Kocl -Kswp" + + elif test x"${CC_ACT}" = x"mpifccpx"; then +- CFLAGS="-m -Kvisimpact -Kocl -Kswp" ++ CFLAGS=" -Kvisimpact -Kocl -Kswp" + + elif test x"${CC_ACT}" = x"fcc"; then +- CFLAGS="-m -Kfast" ++ CFLAGS=" -Kfast -Kocl -Kswp" + + elif test x"${CC_ACT}" = x"mpifcc"; then +- CFLAGS="-m -Kfast" ++ CFLAGS=" -Kfast -Kocl -Kswp" + + fi + +@@ -1150,16 +1149,16 @@ else + CFLAGS="-fastsse -m64 -Mflushz -pc 64 -mcmodel=medium -Msmartalloc=huge" + + elif test x"${CC_ACT}" = x"fccpx"; then +- CFLAGS="-m -Kocl" ++ CFLAGS=" -Kocl" + + elif test x"${CC_ACT}" = x"mpifccpx"; then +- CFLAGS="-m -Kocl" ++ CFLAGS=" -Kocl" + + elif test x"${CC_ACT}" = x"fcc"; then +- CFLAGS="-m -Kfast" ++ CFLAGS=" -Kocl" + + elif test x"${CC_ACT}" = x"mpifcc"; then +- CFLAGS="-m -Kfast" ++ CFLAGS=" -Kocl" + + fi + +@@ -1186,16 +1185,16 @@ else + CFLAGS="-g -fastsse -m64 -Mflushz -pc 64 -mcmodel=medium -Msmartalloc=huge" + + elif test x"${CC_ACT}" = x"fccpx"; then +- CFLAGS="-g -m -Kocl" ++ CFLAGS="-g -Kocl" + + elif test x"${CC_ACT}" = x"mpifccpx"; then +- CFLAGS="-g -m -Kocl" ++ CFLAGS="-g -Kocl" + + elif test x"${CC_ACT}" = x"fcc"; then +- CFLAGS="-g -m -Kfast" ++ CFLAGS="-g -Kocl" + + elif test x"${CC_ACT}" = x"mpifcc"; then +- CFLAGS="-g -m -Kfast" ++ CFLAGS="-g -Kocl" + + fi + +@@ -1228,10 +1227,10 @@ else + CFLAGS="-O0 -g -Kocl" + + elif test x"${CC_ACT}" = x"fcc"; then +- CFLAGS="-O0 -g" ++ CFLAGS="-O0 -g -Kocl" + + elif test x"${CC_ACT}" = x"mpifcc"; then +- CFLAGS="-O0 -g" ++ CFLAGS="-O0 -g -Kocl" + + fi + else +@@ -1370,25 +1369,21 @@ if test -z "${LDFLAGS}"; then + LDFLAGS+="" + #LDFLAGS="-march=native -fuse-linker-plugin" + +- elif test x"${FC_ACT}" = x"frtpx"; then +- LDFLAGS+="-SSL2 -Kparallel -Nfjomplib" +- +- elif test x"${FC_ACT}" = x"mpifrtpx"; then +- LDFLAGS+="-SSL2BLAMP -Kparallel -Nfjomplib" +- +- elif test x"${FC_ACT}" = x"frt"; then +- LDFLAGS+="-SSL2 -Kparallel -Nfjomplib" +- +- elif test x"${FC_ACT}" = x"mpifrt"; then +- LDFLAGS+="-SSL2BLAMP -Kparallel -Nfjomplib" +- + fi + fi + + if test x"${FC_ACT}" = x"ifort" -o x"${FC_ACT}" = x"ifx"; then + LDFLAGS+=" -assume byterecl -lgfortran" + fi + ++if test x"${FC_ACT}" = x"frtpx" -o x"${FC_ACT}" = x"frt"; then ++ LDFLAGS+=" -SSL2 -Kparallel -Kopenmp -Nlibomp" ++ ++elif test x"${FC_ACT}" = x"mpifrtpx" -o x"${FC_ACT}" = x"mpifrt"; then ++ LDFLAGS+=" -SSL2BLAMP -Kparallel -Kopenmp -Nlibomp" ++ ++fi ++ + LDFLAGS+=" ${OPT_OPENMP}" + if test x"${with_msmpi}" = x"yes"; then + LDFLAGS+=" -lmsmpi -static" +@@ -1451,7 +1444,8 @@ AC_ARG_WITH([fj_timer_2], + [use FJ-timer in main loop (default: not use)])], + [], [with_fj_timer_2=no]) + +-if test x"${FC_ACT}" = x"frtpx" -o x"${FC_ACT}" = x"mpifrtpx"; then ++if test x"${FC_ACT}" = x"frtpx" -o x"${FC_ACT}" = x"mpifrtpx" -o \ ++ x"${FC_ACT}" = x"frt" -o x"${FC_ACT}" = x"mpifrt"; then + AC_DEFINE(KCOMP, 1, [defined if K-computer compiler is used.]) + DEFINED_VARIABLES+=" -DKCOMP" + +@@ -1469,7 +1463,7 @@ if test x"${FC_ACT}" = x"frtpx" -o x"${FC_ACT}" = x"mpifrtpx"; then + mainly_pktimer=no + if test x"${enable_pktimer}" = x"yes"; then + +- if test x"${FC_ACT}" = x"mpifrtpx"; then ++ if test x"${FC_ACT}" = x"mpifrtpx" -o x"${FC_ACT}" = x"mpifrt"; then + AC_DEFINE(PKTIMER, 1, [defined if PKTIMER is used.]) + DEFINED_VARIABLES+=" -DPKTIMER" + mainly_pktimer=yes +--- a/src/lib/Makefile.am ++++ b/src/lib/Makefile.am +@@ -120,6 +120,28 @@ else + $(FC) $(DEFAULT_INCLUDES) $(INCLUDES) -I. $(FCFLAGS_FFTE_KERNEL_FPP__PGI__SP) -c $*.f90 + endif + ++fft3d_1dalltoall.o : fft3d_1dalltoall.fpp ++if USEKCOMP ++ cp $*.fpp $*.f90 ++ $(FPP) $(PPFLAGS) $(DEFS) $*.f90 ++ mv $*.cpp.f90 $*.f90 ++ $(FC) $(DEFAULT_INCLUDES) $(INCLUDES) -I. $(FCFLAGS_NOKPARALLEL) -c $*.f90 ++else ++ $(FPP) $(PPFLAGS) $(DEFS) $*.fpp $*.f90 ++ $(FC) $(DEFAULT_INCLUDES) $(INCLUDES) -I. $(FCFLAGS) -c $*.f90 ++endif ++ ++fft3d_2dalltoall.o : fft3d_2dalltoall.fpp ++if USEKCOMP ++ cp $*.fpp $*.f90 ++ $(FPP) $(PPFLAGS) $(DEFS) $*.f90 ++ mv $*.cpp.f90 $*.f90 ++ $(FC) $(DEFAULT_INCLUDES) $(INCLUDES) -I. $(FCFLAGS_NOKPARALLEL) -c $*.f90 ++else ++ $(FPP) $(PPFLAGS) $(DEFS) $*.fpp $*.f90 ++ $(FC) $(DEFAULT_INCLUDES) $(INCLUDES) -I. $(FCFLAGS) -c $*.f90 ++endif ++ + .fpp.o: + if USEKCOMP + cp $*.fpp $*.f90 + +--- a/src/spdyn/Makefile.am ++++ b/src/spdyn/Makefile.am +@@ -277,12 +277,46 @@ else + $(FC) $(DEFAULT_INCLUDES) $(INCLUDES) -I../lib $(FCFLAGS) -c $*.f90 + endif + ++sp_energy_pme_opt_1dalltoall.o : sp_energy_pme_opt_1dalltoall.fpp ++if USEKCOMP ++ cp $*.fpp $*.f90 ++ $(FPP) $(PPFLAGS) $(DEFS) $*.f90 ++ mv $*.cpp.f90 $*.f90 ++ $(FC) $(DEFAULT_INCLUDES) $(INCLUDES) -I../lib $(FCFLAGS_NOKPARALLEL) -c $*.f90 ++else ++ $(FPP) $(PPFLAGS) $(DEFS) $*.fpp $*.f90 ++ $(FC) $(DEFAULT_INCLUDES) $(INCLUDES) -I../lib $(FCFLAGS_NOOPT) -c $*.f90 ++endif ++ ++sp_energy_pme_opt_2dalltoall.o : sp_energy_pme_opt_2dalltoall.fpp ++if USEKCOMP ++ cp $*.fpp $*.f90 ++ $(FPP) $(PPFLAGS) $(DEFS) $*.f90 ++ mv $*.cpp.f90 $*.f90 ++ $(FC) $(DEFAULT_INCLUDES) $(INCLUDES) -I../lib $(FCFLAGS_NOKPARALLEL) -c $*.f90 ++else ++ $(FPP) $(PPFLAGS) $(DEFS) $*.fpp $*.f90 ++ $(FC) $(DEFAULT_INCLUDES) $(INCLUDES) -I../lib $(FCFLAGS_NOOPT) -c $*.f90 ++endif ++ ++sp_energy_pme_opt_slab.o : sp_energy_pme_opt_slab.fpp ++if USEKCOMP ++ cp $*.fpp $*.f90 ++ $(FPP) $(PPFLAGS) $(DEFS) $*.f90 ++ mv $*.cpp.f90 $*.f90 ++ $(FC) $(DEFAULT_INCLUDES) $(INCLUDES) -I../lib $(FCFLAGS_NOKPARALLEL) -c $*.f90 ++else ++ $(FPP) $(PPFLAGS) $(DEFS) $*.fpp $*.f90 ++ $(FC) $(DEFAULT_INCLUDES) $(INCLUDES) -I../lib $(FCFLAGS_NOOPT) -c $*.f90 ++endif ++ ++ + sp_energy_pme_noopt_1dalltoall.o : sp_energy_pme_noopt_1dalltoall.fpp + if USEKCOMP + cp $*.fpp $*.f90 + $(FPP) $(PPFLAGS) $(DEFS) $*.f90 + mv $*.cpp.f90 $*.f90 +- $(FC) $(DEFAULT_INCLUDES) $(INCLUDES) -I../lib $(FCFLAGS) -c $*.f90 ++ $(FC) $(DEFAULT_INCLUDES) $(INCLUDES) -I../lib $(FCFLAGS_NOKPARALLEL) -c $*.f90 + else + $(FPP) $(PPFLAGS) $(DEFS) $*.fpp $*.f90 + $(FC) $(DEFAULT_INCLUDES) $(INCLUDES) -I../lib $(FCFLAGS_NOOPT) -c $*.f90 +@@ -293,7 +327,7 @@ if USEKCOMP + cp $*.fpp $*.f90 + $(FPP) $(PPFLAGS) $(DEFS) $*.f90 + mv $*.cpp.f90 $*.f90 +- $(FC) $(DEFAULT_INCLUDES) $(INCLUDES) -I../lib $(FCFLAGS) -c $*.f90 ++ $(FC) $(DEFAULT_INCLUDES) $(INCLUDES) -I../lib $(FCFLAGS_NOKPARALLEL) -c $*.f90 + else + $(FPP) $(PPFLAGS) $(DEFS) $*.fpp $*.f90 + $(FC) $(DEFAULT_INCLUDES) $(INCLUDES) -I../lib $(FCFLAGS_NOOPT) -c $*.f90 +@@ -304,7 +338,7 @@ if USEKCOMP + cp $*.fpp $*.f90 + $(FPP) $(PPFLAGS) $(DEFS) $*.f90 + mv $*.cpp.f90 $*.f90 +- $(FC) $(DEFAULT_INCLUDES) $(INCLUDES) -I../lib $(FCFLAGS) -c $*.f90 ++ $(FC) $(DEFAULT_INCLUDES) $(INCLUDES) -I../lib $(FCFLAGS_NOKPARALLEL) -c $*.f90 + else + $(FPP) $(PPFLAGS) $(DEFS) $*.fpp $*.f90 + $(FC) $(DEFAULT_INCLUDES) $(INCLUDES) -I../lib $(FCFLAGS_NOOPT) -c $*.f90 diff --git a/repos/spack_repo/builtin/packages/genesis/package.py b/repos/spack_repo/builtin/packages/genesis/package.py index 2fa78070b5f..5a7085ceacd 100644 --- a/repos/spack_repo/builtin/packages/genesis/package.py +++ b/repos/spack_repo/builtin/packages/genesis/package.py @@ -1,5 +1,4 @@ -# Copyright Spack Project Developers. See COPYRIGHT file for details. -# +# Copyright Spack Project Developers. See COPYRIGHT file for details. # # SPDX-License-Identifier: (Apache-2.0 OR MIT) @@ -15,83 +14,70 @@ class Genesis(AutotoolsPackage, CudaPackage): and their complexes. """ - homepage = "https://www.r-ccs.riken.jp/labs/cbrt/" - url = "https://www.r-ccs.riken.jp/labs/cbrt/wp-content/uploads/2020/09/genesis-1.5.1.tar.bz2" - git = "https://github.com/genesis-release-r-ccs/genesis-2.0.git" - - license("LGPL-3.0-or-later") - - version( - "1.6.0", - sha256="d0185a5464ed4231f6ee81f6dcaa15935a99fa30b96658d2b7c25d7fbc5b38e9", - url="https://www.r-ccs.riken.jp/labs/cbrt/wp-content/uploads/2020/12/genesis-1.6.0.tar.bz2", - ) - version( - "1.5.1", - sha256="62a453a573c36779484b4ffed2dfa56ea03dfe1308d631b33ef03f733259b3ac", - url="https://www.r-ccs.riken.jp/labs/cbrt/wp-content/uploads/2020/09/genesis-1.5.1.tar.bz2", - ) - - resource( - when="@1.6.0", - name="user_guide", - url="https://www.r-ccs.riken.jp/labs/cbrt/wp-content/uploads/2020/12/GENESIS-1.6.0.pdf", - sha256="4a6d54eb8f66edde57a4099cdac40cc8e0e2fd6bdb84946da6bf2b3ed84a4ba1", - expand=False, - placement="doc", - ) - resource( - when="@1.5.1", - name="user_guide", - url="https://www.r-ccs.riken.jp/labs/cbrt/wp-content/uploads/2019/10/GENESIS-1.4.0.pdf", - sha256="da2c3f8bfa1e93adb992d3cfce09fb45d8d447a94f9a4f884ac834ea7279b9c7", - expand=False, - placement="doc", - ) + homepage = "https://mdgenesis.org/" + url = "https://github.com/genesis-release-r-ccs/genesis/archive/refs/tags/v2.1.6.1.tar.gz" + + license("LGPL-3.0-or-later", checked_by="chig") + + version("2.1.6.1", sha256="fdc0e889590f198e2261105901c27718268a18a1cd32300e2232b457a7ba6761") + version("2.1.5", sha256="622e6dc0bf9db54b2d18165f098044146abbf20837cb6209af2015856469afbf") + version("2.1.4", sha256="8a6ae1b5a775a41e6d6c398759d78c513a87537bb6832ebda9ea7d426c2408af") + version("2.1.3", sha256="24b0e407d4d6d54f570f3153d78773ffce79877fbf02f4d6c8bc68675caafecf") + version("2.1.2", sha256="cce6834f429d28a0f26450c8b92bab24e86b8c03bf7f2dc3868b74b65bf3f7f0") + version("2.1.1", sha256="0092822ce1a477dd2c4dc6b6035ccfeb0506d78e27b345e4f40bc844efe7a08d") + version("2.1.0", sha256="b348377875b99a62cb93a834047dedeb28cc2a1c615d0bcf0eecadaa1376020c") + version("2.0.3", sha256="a389ed869e6b04dd05a194c0f8577d5e1839f8bcd453fde5b30428a428405830") + version("2.0.2", sha256="8e80d7a1601bf6b12adf3e4ddcbec55aee27a3431784fbc0a46c784eb092f230") + version("2.0.0", sha256="87f097754cb36b1d532ca4952843e60b5115d1eb28e6c2c0fee77c8c720bd958") variant("openmp", default=True, description="Enable OpenMP.") variant("single", default=False, description="Enable single precision.") + variant("mixed", default=False, description="Enable mixed precision.", when="@2.0.0:") variant("hmdisk", default=False, description="Enable huge molecule on hard disk.") - conflicts("%apple-clang", when="+openmp") + # Fix NVTX include path for CUDA 12 on Arm sbsa-linux platforms + # (e.g., GH200). nvToolsExt.h is located under + # targets/sbsa-linux/include/nvtx3. + patch("fix-nvtx-include.patch", when="+cuda") + patch("fix-nvtx-include.patch", when="+gpu") + # The original configure logic only supports Fujitsu cross-compilation targets. + # This patch enables native Fujitsu compiler builds on A64FX systems. + patch("fj_compiler_2.0.0.patch", when="@2.0.0:2.1.3 %fj") + patch("fj_compiler_2.1.4.patch", when="@2.1.4: %fj") - depends_on("c", type="build") # generated - depends_on("fortran", type="build") # generated + conflicts("%apple-clang", when="+openmp") - depends_on("autoconf", type="build", when="@1.5.1 %fj") - depends_on("autoconf", type="build", when="@master") - depends_on("automake", type="build", when="@1.5.1 %fj") - depends_on("automake", type="build", when="@master") - depends_on("libtool", type="build", when="@1.5.1 %fj") - depends_on("libtool", type="build", when="@master") - depends_on("m4", type="build", when="@1.5.1 %fj") - depends_on("m4", type="build", when="@master") + # GitHub-generated source archives are not produced by `make dist`. + # Since the bundled configure script is not guaranteed to match the + # current configure.ac, regenerate the autotools files before configure. + force_autoreconf = True depends_on("mpi", type=("build", "run")) depends_on("lapack") + depends_on("c", type="build") # generated + depends_on("fortran", type="build") # generated - patch("fj_compiler.patch", when="@master %fj") - patch("fj_compiler_1.5.1.patch", when="@1.5.1 %fj") + depends_on("autoconf", type="build") + depends_on("automake", type="build") + depends_on("libtool", type="build") + depends_on("m4", type="build") + depends_on("python", type=("build", "run")) parallel = False - @property - def force_autoreconf(self): - # Run autoreconf due to build system patch - return self.spec.satisfies("@1.5.1 %fj") - def configure_args(self): spec = self.spec options = [] options.extend(self.enable_or_disable("openmp")) options.extend(self.enable_or_disable("single")) + options.extend(self.enable_or_disable("mixed")) options.extend(self.enable_or_disable("hmdisk")) if spec.satisfies("+cuda"): options.append("--enable-gpu") options.append("--with-cuda=%s" % spec["cuda"].prefix) else: options.append("--disable-gpu") - if spec.target == "a64fx" and self.spec.satisfies("@master %fj"): + if spec.target == "a64fx": options.append("--host=Fugaku") return options @@ -117,6 +103,19 @@ def cached_tests_work_dir(self): @run_after("install") def cache_test_sources(self): - """Copy test files after the package is installed for test().""" - if self.spec.satisfies("@master"): - cache_extra_test_sources(self, ["tests"]) + cache_extra_test_sources(self, ["tests"]) + + def test(self): + import os + + os.environ["OMP_NUM_THREADS"] = "1" + + exe_name = self.spec["python"].command.path + test_name = join_path(self.install_test_root, "tests", "regression_test", "test.py") + bin_name = join_path(self.prefix.bin, "spdyn") + + mpirun = self.spec["mpi"].mpirun + + opts = [test_name, f"{mpirun} -np 8 {bin_name}"] + + self.run_test(exe_name, options=opts, expected="Passed 61 / 61")