├── .gitignore ├── CHANGELOG.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── doc └── install_ncl.txt ├── hpc_build.sh ├── modules ├── adios2.sh ├── aocl.sh ├── aws-ofi-nccl.sh ├── b-eff.sh ├── bfs.sh ├── ccmio.sh ├── compiler.sh ├── cuda.sh ├── ecbuild.sh ├── eccodes.sh ├── fabtests.sh ├── fftw.sh ├── geos.sh ├── gklib.sh ├── gpcnet.sh ├── gromacs.sh ├── hdf5.sh ├── hpcc.sh ├── imb.sh ├── ior.sh ├── jasper.sh ├── kahip.sh ├── lammps.sh ├── lapack.sh ├── libaec.sh ├── magics.sh ├── metis.sh ├── modules.dep ├── mpich.sh ├── mt-dgemm.sh ├── mvapich.sh ├── nccl.sh ├── ncview.sh ├── netcdf-c.sh ├── netcdf-fortran.sh ├── ninja.sh ├── openblas.sh ├── openfoam.sh ├── openmpi.sh ├── openssl.sh ├── osu.sh ├── paraview.sh ├── pnetcdf.sh ├── proj.sh ├── python.sh ├── qd.sh ├── scalapack.sh ├── scotch.sh ├── sqlite.sh ├── vasp.sh ├── vtk.sh ├── wgrib2.sh ├── wps.sh ├── wrf.sh ├── wrfda.sh └── zlib.sh ├── patch ├── aocl │ └── fix_aocl.py ├── backup │ ├── WRF-3.x-aarch64-Graviton2.patch │ ├── WRF-3.x-aarch64-Graviton3.patch │ ├── WRF-3.x-aarch64-clang.patch │ ├── WRF-3.x-amd64-clang.patch.orig-toolchain │ ├── WRF-4.x-aarch64-Graviton2.patch │ ├── WRF-4.x-aarch64-Graviton3.patch │ ├── WRF-4.x-aarch64.patch │ ├── WRF-4.z-aarch64-Graviton2.patch │ ├── WRF-4.z-aarch64-Graviton3.patch │ └── WRF-git-x86_64.patch ├── hdf5 │ └── hdf5-1.14.3.patch ├── lammps │ └── lammps-x86_64-amdclang.patch ├── mt-dgemm │ ├── Makefile.armclang │ ├── Makefile.armgcc │ ├── Makefile.clang │ ├── Makefile.gcc │ ├── Makefile.icc │ └── Makefile.icx ├── netcdf-c │ └── netcdf-c-x86_64-amdclang.patch ├── netcdf-fortran │ └── netcdf-fortran-4.6.1.patch ├── openfoam │ ├── OpenFOAM-2006-sha1.patch │ ├── OpenFOAM-2006-sigfpe.patch │ ├── OpenFOAM-2006.patch │ ├── ThirdParty-2006.patch │ ├── c++OptAVX512 │ ├── c++OptHB │ ├── cOptAVX512 │ └── cOptHB ├── osu │ └── osu-6.1-return-value.patch ├── vasp │ ├── makefile.include.aarch64.armclang │ ├── makefile.include.aarch64.armgcc │ ├── makefile.include.amd64.amdclang │ ├── makefile.include.amd64.clang │ ├── makefile.include.amd64.icc │ ├── makefile.include.x86_64.amdclang │ ├── makefile.include.x86_64.clang │ └── makefile.include.x86_64.icc ├── wgrib2 │ ├── wgrib2-aarch64-armclang.patch │ ├── wgrib2-aarch64-armgcc.patch │ └── wgrib2-aarch64-gcc.patch ├── wps │ ├── WPS-4.x-gfortran.patch │ ├── WPS-4.x-x86_64-icc-intelmpi.patch │ ├── WPS-4.z-x86_64-icc-intelmpi.patch │ ├── WPS-aarch64-armclang-mpich.patch │ ├── WPS-aarch64-armclang-openmpi.patch │ ├── WPS-aarch64-armgcc-mpich.patch │ ├── WPS-aarch64-armgcc-openmpi.patch │ ├── WPS-aarch64-gcc-mpich.patch │ ├── WPS-aarch64-gcc-openmpi.patch │ └── WPS-mismatch-integer-iand.patch └── wrf │ ├── WRF-3.w-aarch64-armclang-mpich.patch │ ├── WRF-3.w-aarch64-armclang-openmpi.patch │ ├── WRF-3.w-aarch64-armgcc-mpich.patch │ ├── WRF-3.w-aarch64-armgcc-openmpi.patch │ ├── WRF-3.w-aarch64-gcc-mpich.patch │ ├── WRF-3.w-aarch64-gcc-openmpi.patch │ ├── WRF-3.w-x86_64-icc-intelmpi.patch │ ├── WRF-3.x-aarch64-armclang-mpich.patch │ ├── WRF-3.x-aarch64-armclang-openmpi.patch │ ├── WRF-3.x-aarch64-armgcc-mpich.patch │ ├── WRF-3.x-aarch64-armgcc-openmpi.patch │ ├── WRF-3.x-aarch64-gcc-mpich.patch │ ├── WRF-3.x-aarch64-gcc-openmpi.patch │ ├── WRF-3.x-x86_64-clang-mpich.patch │ ├── WRF-3.x-x86_64-clang-openmpi.patch │ ├── WRF-3.x-x86_64-gcc-mpich.patch │ ├── WRF-3.x-x86_64-gcc-openmpi.patch │ ├── WRF-3.x-x86_64-icc-intelmpi.patch │ ├── WRF-3.x-x86_64-icc-mpich.patch │ ├── WRF-3.x-x86_64-icc-openmpi.patch │ ├── WRF-4.x-aarch64-armclang-mpich.patch │ ├── WRF-4.x-aarch64-armclang-openmpi.patch │ ├── WRF-4.x-aarch64-armgcc-mpich.patch │ ├── WRF-4.x-aarch64-armgcc-openmpi.patch │ ├── WRF-4.x-aarch64-gcc-mpich.patch │ ├── WRF-4.x-aarch64-gcc-openmpi.patch │ ├── WRF-4.x-x86_64-amdclang-mpich.patch │ ├── WRF-4.x-x86_64-amdclang-openmpi.patch │ ├── WRF-4.x-x86_64-clang-mpich.patch │ ├── WRF-4.x-x86_64-clang-openmpi.patch │ ├── WRF-4.x-x86_64-gcc-mpich.patch │ ├── WRF-4.x-x86_64-gcc-openmpi.patch │ ├── WRF-4.x-x86_64-icc-intelmpi.patch │ ├── WRF-4.x-x86_64-icc-mpich.patch │ ├── WRF-4.x-x86_64-icc-openmpi.patch │ ├── WRF-4.z+-aarch64-armclang-mpich.patch │ ├── WRF-4.z+-aarch64-armclang-openmpi.patch │ ├── WRF-4.z-aarch64-armclang-mpich.patch │ ├── WRF-4.z-aarch64-armclang-openmpi.patch │ ├── WRF-4.z-aarch64-armgcc-mpich.patch │ ├── WRF-4.z-aarch64-armgcc-openmpi.patch │ ├── WRF-4.z-aarch64-gcc-mpich.patch │ ├── WRF-4.z-aarch64-gcc-openmpi.patch │ ├── WRF-4.z-x86_64-amdclang-mpich.patch │ ├── WRF-4.z-x86_64-amdclang-openmpi.patch │ ├── WRF-4.z-x86_64-icc-intelmpi.patch │ ├── WRF-da-rad-diags.patch │ ├── WRF-git-x86_64-clang-mpich.patch │ ├── WRF-git-x86_64-clang-openmpi.patch │ └── WRF-tirpc.patch └── scripts ├── compiler.sh ├── env.sh ├── env_template.sh ├── mpi_settings.sh ├── openfoam_env.sh ├── submit.sbatch_no_efa ├── submit_b-eff.sbatch ├── submit_b-eff_template.sbatch ├── submit_bfs.sbatch ├── submit_bfs_template.sbatch ├── submit_gpcnet.sbatch ├── submit_gpcnet_template.sbatch ├── submit_gromacs.sbatch ├── submit_gromacs_template.sbatch ├── submit_hpcc.sbatch ├── submit_hpcc.sh ├── submit_hpcc_template.sbatch ├── submit_hpcc_template.sh ├── submit_imb.sbatch ├── submit_imb_template.sbatch ├── submit_ior.sbatch ├── submit_ior_template.sbatch ├── submit_lammps.sbatch ├── submit_lammps_template.sbatch ├── submit_openfoam.sbatch ├── submit_openfoam_template.sbatch ├── submit_osu.sbatch ├── submit_osu_template.sbatch ├── submit_vasp.sh ├── submit_vasp_template.sh ├── submit_wrf_aarch64.sbatch ├── submit_wrf_aarch64_template.sbatch ├── submit_wrf_amd64.sbatch └── submit_wrf_amd64_template.sbatch /.gitignore: -------------------------------------------------------------------------------- 1 | # Prerequisites 2 | .gitignore 3 | *.d 4 | 5 | # Object files 6 | *.o 7 | *.ko 8 | *.obj 9 | *.elf 10 | 11 | # Linker output 12 | *.ilk 13 | *.map 14 | *.exp 15 | 16 | # Precompiled Headers 17 | *.gch 18 | *.pch 19 | 20 | # Libraries 21 | *.lib 22 | *.a 23 | *.la 24 | *.lo 25 | 26 | # Shared objects (inc. Windows DLLs) 27 | *.dll 28 | *.so 29 | *.so.* 30 | *.dylib 31 | 32 | # Executables 33 | *.exe 34 | *.out 35 | *.app 36 | *.i*86 37 | *.x86_64 38 | *.hex 39 | 40 | # Debug files 41 | *.dSYM/ 42 | *.su 43 | *.idb 44 | *.pdb 45 | 46 | # Kernel Module Compile Results 47 | *.mod* 48 | *.cmd 49 | .tmp_versions/ 50 | modules.order 51 | Module.symvers 52 | Mkfile.old 53 | dkms.conf 54 | 55 | # Build 56 | build/ 57 | 58 | # code navigation database files 59 | .clang_complete 60 | .dir-locals.el 61 | GPATH 62 | GRTAGS 63 | GTAGS 64 | \#*\# 65 | .\#* 66 | 67 | # from upstream 68 | # emacs autosave files. You need to change to "#:#" if you are using git 69 | # 1.6.1 or before. 70 | \#:# 71 | *~ 72 | *.o 73 | *.a 74 | *.so 75 | *.lo 76 | *.la 77 | *.orig 78 | TAGS 79 | tags 80 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | ## Code of Conduct 2 | This project has adopted the [Amazon Open Source Code of Conduct](https://aws.github.io/code-of-conduct). 3 | For more information see the [Code of Conduct FAQ](https://aws.github.io/code-of-conduct-faq) or contact 4 | opensource-codeofconduct@amazon.com with any additional questions or comments. 5 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of 4 | this software and associated documentation files (the "Software"), to deal in 5 | the Software without restriction, including without limitation the rights to 6 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 7 | the Software, and to permit persons to whom the Software is furnished to do so. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 10 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 11 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 12 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 13 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 14 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 15 | 16 | -------------------------------------------------------------------------------- /doc/install_ncl.txt: -------------------------------------------------------------------------------- 1 | 1.install conda 2 | 3 | wget https://repo.anaconda.com/miniconda/Miniconda2-latest-Linux-x86_64.sh 4 | sh Miniconda2-latest-Linux-x86_64.sh 5 | 6 | 2.install ncl 7 | 8 | conda create -n ncl_stable -c conda-forge ncl 9 | source activate ncl_stable 10 | 11 | 3.download ncl script 12 | wget http://www.ncl.ucar.edu/Training/Tutorials/WRF_Users_Workshop/Scripts/wrf_demo_getvar_all.ncl 13 | 14 | put ncl script into the wrfout_ folder, change change f = addfile("wrfout_d01_2008-09-29_16:30:00","r") with your wrfout file name 15 | 16 | 4.run the ncl script 17 | ncl -f wrf_demo_getvar_all.ncl > wrf_demo_getvar_all.result 18 | 19 | 5.check and compare the result: 20 | grep wind wrf_demo_getvar_all.result 21 | 22 | -------------------------------------------------------------------------------- /modules/adios2.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # SPDX-License-Identifier: MIT 3 | # Copyright (C) 2024 by Amazon.com, Inc. or its affiliates. All Rights Reserved. 4 | 5 | #ADIOS2_VERSION=git 6 | ADIOS2_VERSION=${2:-2.10.0} 7 | DISABLE_COMPILER_ENV=false 8 | 9 | ADIOS2_SRC="ADIOS2-${ADIOS2_VERSION}.tar.gz" 10 | 11 | install_sys_dependency_for_adios2() 12 | { 13 | # packages for build adios2 14 | case ${S_VERSION_ID} in 15 | 7) 16 | return 17 | case "${S_NAME}" in 18 | "Alibaba Cloud Linux (Aliyun Linux)"|"Oracle Linux Server"|"Red Hat Enterprise Linux Server"|"CentOS Linux") 19 | return 20 | ;; 21 | "Amazon Linux") 22 | return 23 | ;; 24 | esac 25 | ;; 26 | 8) 27 | return 28 | case "${S_NAME}" in 29 | "Alibaba Cloud Linux"|"Oracle Linux Server"|"Red Hat Enterprise Linux Server"|"CentOS Linux") 30 | return 31 | ;; 32 | "Amazon Linux") 33 | return 34 | ;; 35 | esac 36 | ;; 37 | 18|20) 38 | return 39 | ;; 40 | *) 41 | exit 1 42 | ;; 43 | esac 44 | } 45 | 46 | download_adios2() { 47 | echo "zzz *** $(date) *** Downloading source code ${ADIOS2_SRC}" 48 | if [ "${ADIOS2_VERSION}" == "git" ] 49 | then 50 | git clone https://github.com/ornladios/ADIOS2.git 51 | return $? 52 | else 53 | if [ -f ${ADIOS2_SRC} ] 54 | then 55 | return 56 | else 57 | curl --retry 3 -JLOk "https://github.com/ornladios/ADIOS2/archive/refs/tags/v${ADIOS2_VERSION}.tar.gz" 58 | return $? 59 | fi 60 | fi 61 | } 62 | 63 | install_adios2() 64 | { 65 | echo "zzz *** $(date) *** Build adios2-${ADIOS2_VERSION}" 66 | if [ "${ADIOS2_VERSION}" == "git" ] 67 | then 68 | mv ADIOS2 ADIOS2-${ADIOS2_VERSION} 69 | else 70 | sudo rm -rf ${ADIOS2_SRC%.tar.gz} 71 | tar xf ${ADIOS2_SRC} 72 | fi 73 | 74 | if [ -f ../patch/adios2/adios2-${ADIOS2_VERSION}.patch ] 75 | then 76 | cd ${ADIOS2_SRC%.tar.gz} 77 | patch -Np1 < ../../patch/adios2/adios2-${ADIOS2_VERSION}.patch 78 | cd .. 79 | fi 80 | 81 | mkdir -p "${ADIOS2_SRC%.tar.gz}-build" 82 | 83 | cmake -H${ADIOS2_SRC%.tar.gz} -B${ADIOS2_SRC%.tar.gz}-build \ 84 | -DCMAKE_PREFIX_PATH=${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI} \ 85 | -DBUILD_SHARED_LIBS=ON \ 86 | -DCMAKE_INSTALL_PREFIX=${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI} || exit 1 87 | 88 | cmake --build "${ADIOS2_SRC%.tar.gz}-build" -j $(nproc) && \ 89 | sudo --preserve-env=PATH,LD_LIBRARY_PATH,LIBRARY_PATH,CC,CXX,F77,FC,AR,RANLIB,I_MPI_ROOT,MPI_ROOT,I_MPI_CC,I_MPI_CXX,I_MPI_FC,I_MPI_F77,I_MPI_F90 env cmake --install "${ADIOS2_SRC%.tar.gz}-build" && \ 90 | sudo rm -rf ${ADIOS2_SRC%.tar.gz}-build || exit 1 91 | } 92 | 93 | update_adios2_version() 94 | { 95 | MODULE_VERSION=${ADIOS2_VERSION} 96 | } 97 | -------------------------------------------------------------------------------- /modules/aocl.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # SPDX-License-Identifier: MIT 3 | # Copyright (C) 2022 by Amazon.com, Inc. or its affiliates. All Rights Reserved. 4 | 5 | AMD_AOCL_VERSION=${2:-4.0} 6 | # to build the packages in the smame host, the first part of the TARGET much compatible(identical) 7 | HPC_TARGET=$(arch)-bing-linux 8 | #HPC_HOST=$(gcc -dumpmachine) 9 | #HPC_BUILD=${HOST} 10 | #HPC_TARGET=$(gcc -### 2>&1 | grep "^Target:" | awk '{print $2}') 11 | # ************************************** 12 | 13 | AMD_AOCL_SRC=aocl-linux-aocc-${AMD_AOCL_VERSION}.tar.gz 14 | 15 | install_sys_dependency_for_aocl() 16 | { 17 | return 18 | } 19 | 20 | download_aocl() { 21 | if [ -f ${AMD_AOCL_SRC} ] 22 | then 23 | return 24 | else 25 | echo "Please go to https://developer.amd.com/amd-aocl/#downloads , download ${AMD_AOCL_SRC} to $(pwd)/ and run the installation again" >&2 26 | exit 1 27 | fi 28 | } 29 | 30 | 31 | install_aocl() 32 | { 33 | if [ -f ${HPC_PREFIX}/opt/${AMD_AOCL_VERSION}/amd-libs.cfg ] 34 | then 35 | return 36 | fi 37 | tar xf ${AMD_AOCL_SRC} 38 | cd ${AMD_AOCL_SRC%.tar.gz} 39 | sudo bash ./install.sh -t ${HPC_PREFIX}/opt -i lp64 && \ 40 | cd .. || exit 1 41 | } 42 | 43 | update_aocl_version() 44 | { 45 | MODULE_VERSION=${AMD_AOCL_VERSION} 46 | } 47 | -------------------------------------------------------------------------------- /modules/b-eff.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # SPDX-License-Identifier: MIT 3 | # Copyright (C) 2022 by Amazon.com, Inc. or its affiliates. All Rights Reserved. 4 | 5 | B_EFF_VERSION=${2:-latest} 6 | B_EFF_SRC=b_eff.c 7 | DISABLE_COMPILER_ENV=false 8 | 9 | install_sys_dependency_for_b_eff() 10 | { 11 | return 12 | } 13 | 14 | download_b_eff() 15 | { 16 | echo "zzz *** $(date) *** Downloading source code ${B_EFF_SRC}" 17 | if [ "${B_EFF_VERSION}" == "latest" ] 18 | then 19 | sudo rm -f ${B_EFF_SRC} b_eff 20 | curl --retry 3 -JLOk https://fs.hlrs.de/projects/par/mpi/b_eff/b_eff.c 21 | return $? 22 | fi 23 | 24 | rm -f ${B_EFF_SRC} b_eff 25 | curl --retry 3 -JLOk https://fs.hlrs.de/projects/par/mpi/b_eff/b_eff_${B_EFF_VERSION}/${B_EFF_SRC} 26 | return $? 27 | } 28 | 29 | install_b_eff() 30 | { 31 | mpicc -Ofast -o b_eff -D MEMORY_PER_PROCESSOR=1024 b_eff.c -lm && \ 32 | sudo mkdir -p "${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI}/b_eff-${B_EFF_VERSION}" && \ 33 | sudo mv b_eff "${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI}/b_eff-${B_EFF_VERSION}/" || exit 1 34 | } 35 | 36 | update_b_eff_version() 37 | { 38 | MODULE_VERSION=${B_EFF_VERSION} 39 | } 40 | -------------------------------------------------------------------------------- /modules/bfs.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # SPDX-License-Identifier: MIT 3 | # Copyright (C) 2023 by Amazon.com, Inc. or its affiliates. All Rights Reserved. 4 | 5 | BFS_VERSION=${2:-3.0.1} 6 | BFS_SRC=graph500-${BFS_VERSION}.tar.gz 7 | DISABLE_COMPILER_ENV=false 8 | 9 | install_sys_dependency_for_bfs() 10 | { 11 | return 12 | } 13 | 14 | download_bfs() 15 | { 16 | echo "zzz *** $(date) *** Downloading source code ${BFS_SRC}" 17 | if [ -f ${BFS_SRC} ] 18 | then 19 | return 20 | else 21 | curl --retry 3 -JLOk https://github.com/graph500/graph500/archive/refs/tags/${BFS_VERSION}.tar.gz 22 | return $? 23 | fi 24 | } 25 | 26 | install_bfs() 27 | { 28 | sudo rm -rf ${BFS_SRC%.tar.gz} 29 | tar xf ${BFS_SRC} 30 | cd ${BFS_SRC%.tar.gz} 31 | if [ -f ../../patch/bfs/bfs-${BFS_VERSION}-return-value.patch ] 32 | then 33 | patch -Np1 < ../../patch/bfs/bfs-${BFS_VERSION}-return-value.patch 34 | fi 35 | cd src 36 | make graph500_reference_bfs && \ 37 | sudo install -m 755 -D -t ${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI}/bin ./graph500_reference_bfs && \ 38 | cd ../.. && \ 39 | sudo rm -rf ${BFS_SRC%.tar.gz} || exit 1 40 | } 41 | 42 | update_bfs_version() 43 | { 44 | MODULE_VERSION=${BFS_VERSION} 45 | } 46 | -------------------------------------------------------------------------------- /modules/ccmio.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # SPDX-License-Identifier: MIT 3 | # Copyright (C) 2024 by Amazon.com, Inc. or its affiliates. All Rights Reserved. 4 | 5 | #CCMIO_VERSION=git 6 | CCMIO_VERSION=${2:-2.6.1} 7 | DISABLE_COMPILER_ENV=false 8 | 9 | CCMIO_SRC="libccmio-${CCMIO_VERSION}.tar.gz" 10 | 11 | install_sys_dependency_for_ccmio() 12 | { 13 | # packages for build ccmio 14 | case ${S_VERSION_ID} in 15 | 7) 16 | return 17 | case "${S_NAME}" in 18 | "Alibaba Cloud Linux (Aliyun Linux)"|"Oracle Linux Server"|"Red Hat Enterprise Linux Server"|"CentOS Linux") 19 | return 20 | ;; 21 | "Amazon Linux") 22 | return 23 | ;; 24 | esac 25 | ;; 26 | 8) 27 | return 28 | case "${S_NAME}" in 29 | "Alibaba Cloud Linux"|"Oracle Linux Server"|"Red Hat Enterprise Linux Server"|"CentOS Linux") 30 | return 31 | ;; 32 | "Amazon Linux") 33 | return 34 | ;; 35 | esac 36 | ;; 37 | 18|20) 38 | return 39 | ;; 40 | *) 41 | exit 1 42 | ;; 43 | esac 44 | } 45 | 46 | download_ccmio() { 47 | echo "zzz *** $(date) *** Downloading source code ${CCMIO_SRC}" 48 | if [ "${CCMIO_VERSION}" == "git" ] 49 | then 50 | git clone https://github.com/xxxxxxx/libccmio.git 51 | return $? 52 | else 53 | if [ -f ${CCMIO_SRC} ] 54 | then 55 | return 56 | else 57 | curl --retry 3 -JLOk "https://nchc.dl.sourceforge.net/project/foam-extend/ThirdParty/libccmio-${CCMIO_VERSION}.tar.gz" 58 | return $? 59 | fi 60 | fi 61 | } 62 | 63 | install_ccmio() 64 | { 65 | echo "zzz *** $(date) *** Build ccmio-${CCMIO_VERSION}" 66 | if [ "${CCMIO_VERSION}" == "git" ] 67 | then 68 | mv libccmio libccmio-${CCMIO_VERSION} 69 | else 70 | sudo rm -rf ${CCMIO_SRC%.tar.gz} 71 | tar xf ${CCMIO_SRC} 72 | fi 73 | 74 | cd ${CCMIO_SRC%.tar.gz} 75 | 76 | wget 'http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD' -O 'config/config.guess' 77 | wget 'http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD' -O 'config/config.sub' 78 | 79 | if [ -f ../../patch/ccmio/ccmio-${CCMIO_VERSION}.patch ] 80 | then 81 | patch -Np1 < ../../patch/ccmio/ccmio-${CCMIO_VERSION}.patch 82 | fi 83 | 84 | 85 | RELEASE=1 SHARED=1 make 86 | sudo cp libccmio/*.h ${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI}/include && \ 87 | sudo cp $(find ./lib -name release-shared)/* ${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI}/lib && \ 88 | cd .. && \ 89 | sudo rm -rf ${CCMIO_SRC%.tar.gz} || exit 1 90 | } 91 | 92 | update_ccmio_version() 93 | { 94 | MODULE_VERSION=${CCMIO_VERSION} 95 | } 96 | -------------------------------------------------------------------------------- /modules/cuda.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # SPDX-License-Identifier: MIT 3 | # Copyright (C) 2022 by Amazon.com, Inc. or its affiliates. All Rights Reserved. 4 | 5 | CUDA_VERSION=${2:-12.0.0_525.60.13} 6 | if [ "$(arch)" == "aarch64" ] 7 | then 8 | CUDA_SRC="cuda_${CUDA_VERSION}_linux_sbsa.run" 9 | elif [ "$(arch)" == "x86_64" ] 10 | then 11 | CUDA_SRC="cuda_${CUDA_VERSION}_linux.run" 12 | fi 13 | 14 | DISABLE_COMPILER_ENV=false 15 | 16 | install_sys_dependency_for_cuda() 17 | { 18 | case ${S_VERSION_ID} in 19 | 7) 20 | sudo yum -y update 21 | case "${S_NAME}" in 22 | "Alibaba Cloud Linux (Aliyun Linux)"|"Oracle Linux Server"|"Red Hat Enterprise Linux Server"|"CentOS Linux") 23 | sudo yum -y install kernel-devel-$(uname -r) kernel-headers-$(uname -r) 24 | ;; 25 | "Amazon Linux") 26 | sudo yum -y install kernel-devel-$(uname -r) kernel-headers-$(uname -r) 27 | ;; 28 | esac 29 | ;; 30 | 8) 31 | sudo $(dnf check-release-update 2>&1 | grep "dnf update --releasever" | tail -n1) -y 2> /dev/null 32 | sudo dnf -y update 33 | sudo dnf -y install kernel-devel-$(uname -r) kernel-headers-$(uname -r) 34 | case "${S_NAME}" in 35 | "Alibaba Cloud Linux"|"Oracle Linux Server"|"Red Hat Enterprise Linux Server"|"CentOS Linux") 36 | return 37 | ;; 38 | "Amazon Linux") 39 | return 40 | ;; 41 | esac 42 | ;; 43 | 18|20) 44 | sudo apt-get -y update 45 | sudo apt-get install linux-headers-$(uname -r) 46 | ;; 47 | *) 48 | exit 1 49 | ;; 50 | esac 51 | } 52 | 53 | download_cuda() { 54 | echo "zzz *** $(date) *** Downloading source code ${CUDA_SRC}" 55 | if [ -f ${CUDA_SRC} ] 56 | then 57 | return 58 | else 59 | curl --retry 3 -JLOk "https://developer.download.nvidia.com/compute/cuda/$(echo ${CUDA_VERSION} | cut -d_ -f1)/local_installers/${CUDA_SRC}" 60 | return $? 61 | fi 62 | } 63 | 64 | install_cuda() 65 | { 66 | export IGNORE_CC_MISMATCH=1 67 | sudo --preserve-env=PATH,LD_LIBRARY_PATH,CC,CXX,IGNORE_CC_MISMATCH bash ${CUDA_SRC} \ 68 | --silent --override \ 69 | --toolkitpath=${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI}/usr/local/cuda-$(echo ${CUDA_VERSION} | cut -d. -f1) || exit 1 70 | sudo ln -sfn ${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI}/usr/local/cuda-$(echo ${CUDA_VERSION} | cut -d. -f1) ${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI}/usr/local/cuda 71 | } 72 | 73 | update_cuda_version() 74 | { 75 | MODULE_VERSION=${CUDA_VERSION} 76 | } 77 | -------------------------------------------------------------------------------- /modules/ecbuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # SPDX-License-Identifier: MIT 3 | # Copyright (C) 2024 by Amazon.com, Inc. or its affiliates. All Rights Reserved. 4 | 5 | #ECBUILD_VERSION=git 6 | ECBUILD_VERSION=${2:-3.8.3} 7 | DISABLE_COMPILER_ENV=false 8 | 9 | ECBUILD_SRC="ecbuild-${ECBUILD_VERSION}.tar.gz" 10 | 11 | install_sys_dependency_for_ecbuild() 12 | { 13 | # packages for build ecbuild 14 | case ${S_VERSION_ID} in 15 | 7) 16 | return 17 | case "${S_NAME}" in 18 | "Alibaba Cloud Linux (Aliyun Linux)"|"Oracle Linux Server"|"Red Hat Enterprise Linux Server"|"CentOS Linux") 19 | return 20 | ;; 21 | "Amazon Linux") 22 | return 23 | ;; 24 | esac 25 | ;; 26 | 8) 27 | return 28 | case "${S_NAME}" in 29 | "Alibaba Cloud Linux"|"Oracle Linux Server"|"Red Hat Enterprise Linux Server"|"CentOS Linux") 30 | return 31 | ;; 32 | "Amazon Linux") 33 | return 34 | ;; 35 | esac 36 | ;; 37 | 18|20) 38 | return 39 | ;; 40 | *) 41 | exit 1 42 | ;; 43 | esac 44 | } 45 | 46 | download_ecbuild() { 47 | echo "zzz *** $(date) *** Downloading source code ${ECBUILD_SRC}" 48 | if [ "${ECBUILD_VERSION}" == "git" ] 49 | then 50 | git clone https://github.com/ecmwf/ecbuild.git 51 | return $? 52 | else 53 | if [ -f ${ECBUILD_SRC} ] 54 | then 55 | return 56 | else 57 | curl --retry 3 -JLOk "https://github.com/ecmwf/ecbuild/archive/refs/tags/${ECBUILD_VERSION}.tar.gz" 58 | return $? 59 | fi 60 | fi 61 | } 62 | 63 | install_ecbuild() 64 | { 65 | echo "zzz *** $(date) *** Build ecbuild-${ECBUILD_VERSION}" 66 | if [ "${ECBUILD_VERSION}" == "git" ] 67 | then 68 | mv ecbuild ecbuild-${ECBUILD_VERSION} 69 | else 70 | sudo rm -rf ${ECBUILD_SRC%.tar.gz} 71 | tar xf ${ECBUILD_SRC} 72 | fi 73 | 74 | cd ${ECBUILD_SRC%.tar.gz} 75 | 76 | if [ -f ../../patch/ecbuild/ecbuild-${ECBUILD_VERSION}.patch ] 77 | then 78 | patch -Np1 < ../../patch/ecbuild/ecbuild-${ECBUILD_VERSION}.patch 79 | fi 80 | 81 | mkdir build 82 | cd build 83 | 84 | ../bin/ecbuild --prefix=${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI} .. && \ 85 | ctest && \ 86 | sudo --preserve-env=PATH,LD_LIBRARY_PATH,CC,CXX,F77,FC,AR,RANLIB env make install && cd ../.. && sudo rm -rf ${ECBUILD_SRC%.tar.gz} || exit 1 87 | } 88 | 89 | update_ecbuild_version() 90 | { 91 | MODULE_VERSION=${ECBUILD_VERSION} 92 | } 93 | -------------------------------------------------------------------------------- /modules/eccodes.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # SPDX-License-Identifier: MIT 3 | # Copyright (C) 2024 by Amazon.com, Inc. or its affiliates. All Rights Reserved. 4 | 5 | #ECCODES_VERSION=git 6 | ECCODES_VERSION=${2:-2.35.0} 7 | DISABLE_COMPILER_ENV=false 8 | 9 | ECCODES_SRC="eccodes-${ECCODES_VERSION}.tar.gz" 10 | 11 | install_sys_dependency_for_eccodes() 12 | { 13 | # packages for build eccodes 14 | case ${S_VERSION_ID} in 15 | 7) 16 | return 17 | case "${S_NAME}" in 18 | "Alibaba Cloud Linux (Aliyun Linux)"|"Oracle Linux Server"|"Red Hat Enterprise Linux Server"|"CentOS Linux") 19 | return 20 | ;; 21 | "Amazon Linux") 22 | return 23 | ;; 24 | esac 25 | ;; 26 | 8) 27 | return 28 | case "${S_NAME}" in 29 | "Alibaba Cloud Linux"|"Oracle Linux Server"|"Red Hat Enterprise Linux Server"|"CentOS Linux") 30 | return 31 | ;; 32 | "Amazon Linux") 33 | return 34 | ;; 35 | esac 36 | ;; 37 | 18|20) 38 | return 39 | ;; 40 | *) 41 | exit 1 42 | ;; 43 | esac 44 | } 45 | 46 | download_eccodes() { 47 | echo "zzz *** $(date) *** Downloading source code ${ECCODES_SRC}" 48 | if [ "${ECCODES_VERSION}" == "git" ] 49 | then 50 | git clone https://github.com/ecmwf/eccodes.git 51 | return $? 52 | else 53 | if [ -f ${ECCODES_SRC} ] 54 | then 55 | return 56 | else 57 | curl --retry 3 -JLOk "https://github.com/ecmwf/eccodes/archive/refs/tags/${ECCODES_VERSION}.tar.gz" 58 | return $? 59 | fi 60 | fi 61 | } 62 | 63 | install_eccodes() 64 | { 65 | echo "zzz *** $(date) *** Build eccodes-${ECCODES_VERSION}" 66 | if [ "${ECCODES_VERSION}" == "git" ] 67 | then 68 | mv eccodes eccodes-${ECCODES_VERSION} 69 | else 70 | sudo rm -rf ${ECCODES_SRC%.tar.gz} 71 | tar xf ${ECCODES_SRC} 72 | fi 73 | 74 | if [ -f ../patch/eccodes/eccodes-${ECCODES_VERSION}.patch ] 75 | then 76 | cd ${ECCODES_SRC%.tar.gz} 77 | patch -Np1 < ../../patch/eccodes/eccodes-${ECCODES_VERSION}.patch 78 | cd .. 79 | fi 80 | 81 | mkdir -p "${ECCODES_SRC%.tar.gz}-build" 82 | 83 | export CXXFLAGS="-I ${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI}/include/jasper" 84 | cmake -H${ECCODES_SRC%.tar.gz} -B${ECCODES_SRC%.tar.gz}-build \ 85 | -DCMAKE_PREFIX_PATH=${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI} \ 86 | -DCMAKE_INSTALL_PREFIX=${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI} || exit 1 87 | 88 | cmake --build "${ECCODES_SRC%.tar.gz}-build" -j $(nproc) && \ 89 | sudo --preserve-env=PATH,LD_LIBRARY_PATH,CC,CXX,F77,FC,AR,RANLIB,I_MPI_CC,I_MPI_CXX,I_MPI_FC,I_MPI_F77,I_MPI_F90 env cmake --install "${ECCODES_SRC%.tar.gz}-build" && \ 90 | sudo rm -rf ${ECCODES_SRC%.tar.gz}-build || exit 1 91 | } 92 | 93 | update_eccodes_version() 94 | { 95 | MODULE_VERSION=${ECCODES_VERSION} 96 | } 97 | -------------------------------------------------------------------------------- /modules/fabtests.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # SPDX-License-Identifier: MIT 3 | # Copyright (C) 2022 by Amazon.com, Inc. or its affiliates. All Rights Reserved. 4 | 5 | FABTESTS_VERSION=${2:-1.16.1} 6 | FABTESTS_SRC="libfabric-${FABTESTS_VERSION}.tar.gz" 7 | DISABLE_COMPILER_ENV=false 8 | 9 | install_sys_dependency_for_fabtests() 10 | { 11 | case ${S_VERSION_ID} in 12 | 7) 13 | sudo yum -y update 14 | case "${S_NAME}" in 15 | "Alibaba Cloud Linux (Aliyun Linux)"|"Oracle Linux Server"|"Red Hat Enterprise Linux Server"|"CentOS Linux") 16 | sudo yum -y install libfabric libfabric-devel rdma-core-devel librdmacm-utils libpsm2-devel infinipath-psm-devel libibverbs-utils libnl3 libnl3-devel python3 17 | ;; 18 | "Amazon Linux") 19 | sudo yum -y install libfabric libfabric-devel rdma-core-devel librdmacm-utils libpsm2-devel infinipath-psm-devel libibverbs-utils libnl3 libnl3-devel python3 20 | ;; 21 | esac 22 | ;; 23 | 8) 24 | sudo $(dnf check-release-update 2>&1 | grep "dnf update --releasever" | tail -n1) -y 2> /dev/null 25 | sudo dnf -y update 26 | sudo dnf -y install libfabric libfabric-devel rdma-core-devel librdmacm-utils libibverbs-utils libnl3 libnl3-devel python3 27 | case "${S_NAME}" in 28 | "Alibaba Cloud Linux"|"Oracle Linux Server"|"Red Hat Enterprise Linux Server"|"CentOS Linux") 29 | return 30 | ;; 31 | "Amazon Linux") 32 | return 33 | ;; 34 | esac 35 | ;; 36 | 18|20) 37 | sudo apt-get -y update 38 | sudo apt-get -y install python3 39 | ;; 40 | *) 41 | exit 1 42 | ;; 43 | esac 44 | } 45 | 46 | download_fabtests() { 47 | echo "zzz *** $(date) *** Downloading source code ${FABTESTS_SRC}" 48 | if [ -f ${FABTESTS_SRC} ] 49 | then 50 | return 51 | else 52 | curl --retry 3 -JLOk "https://github.com/ofiwg/libfabric/archive/refs/tags/v${FABTESTS_VERSION}.tar.gz" 53 | return $? 54 | fi 55 | } 56 | 57 | install_fabtests() 58 | { 59 | sudo rm -rf "${FABTESTS_SRC%.tar.gz}" 60 | tar xf "${FABTESTS_SRC}" 61 | cd "${FABTESTS_SRC%.tar.gz}/fabtests" 62 | 63 | ./autogen.sh 64 | 65 | if [ -d /opt/amazon/efa ] 66 | then 67 | ./configure --prefix=${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI} \ 68 | --with-libfabric=/opt/amazon/efa 69 | else 70 | ./configure --prefix=${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI} \ 71 | --with-libfabric=/usr 72 | fi 73 | result=$? 74 | if [ $result -ne 0 ] 75 | then 76 | return $result 77 | fi 78 | make && \ 79 | sudo --preserve-env=PATH,LD_LIBRARY_PATH,CC,CXX,F77,FC,AR,RANLIB,FFLAGS,FCFLAGS env make install && \ 80 | cd ../.. && \ 81 | sudo rm -rf "${FABTESTS_SRC%.tar.gz} || exit 1 82 | } 83 | 84 | update_fabtests_version() 85 | { 86 | MODULE_VERSION=${FABTESTS_VERSION} 87 | } 88 | -------------------------------------------------------------------------------- /modules/fftw.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # SPDX-License-Identifier: MIT 3 | # Copyright (C) 2023 by Amazon.com, Inc. or its affiliates. All Rights Reserved. 4 | 5 | FFTW_VERSION=${2:-3.3.10} 6 | FFTW_SRC="fftw-${FFTW_VERSION}.tar.gz" 7 | DISABLE_COMPILER_ENV=false 8 | 9 | install_sys_dependency_for_fftw() 10 | { 11 | case ${S_VERSION_ID} in 12 | 7) 13 | sudo yum -y update 14 | case "${S_NAME}" in 15 | "Alibaba Cloud Linux (Aliyun Linux)"|"Oracle Linux Server"|"Red Hat Enterprise Linux Server"|"CentOS Linux") 16 | return 17 | ;; 18 | "Amazon Linux") 19 | return 20 | ;; 21 | esac 22 | ;; 23 | 8) 24 | sudo $(dnf check-release-update 2>&1 | grep "dnf update --releasever" | tail -n1) -y 2> /dev/null 25 | sudo dnf -y update 26 | case "${S_NAME}" in 27 | "Alibaba Cloud Linux"|"Oracle Linux Server"|"Red Hat Enterprise Linux Server"|"CentOS Linux") 28 | return 29 | ;; 30 | "Amazon Linux") 31 | return 32 | ;; 33 | esac 34 | ;; 35 | 18|20) 36 | sudo apt-get -y update 37 | ;; 38 | *) 39 | exit 1 40 | ;; 41 | esac 42 | } 43 | 44 | download_fftw() { 45 | echo "zzz *** $(date) *** Downloading source code ${FFTW_SRC}" 46 | if [ -f ${FFTW_SRC} ] 47 | then 48 | return 49 | else 50 | curl --retry 3 -JLOk https://fftw.org/pub/fftw/fftw-${FFTW_VERSION}.tar.gz 51 | return $? 52 | fi 53 | } 54 | 55 | install_fftw() 56 | { 57 | sudo rm -rf "${FFTW_SRC%.tar.gz}" 58 | tar xf "${FFTW_SRC}" 59 | cd "${FFTW_SRC%.tar.gz}" 60 | ./configure --prefix=${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI} --enable-shared --enable-openmp --enable-mpi 61 | make -j$(nproc) && \ 62 | sudo --preserve-env=PATH,LD_LIBRARY_PATH,CC,CXX,F77,FC,AR,RANLIB env make install && \ 63 | cd .. && \ 64 | sudo rm -rf "${FFTW_SRC%.tar.gz}" || exit 1 65 | } 66 | 67 | update_fftw_version() 68 | { 69 | MODULE_VERSION=${FFTW_VERSION} 70 | } 71 | -------------------------------------------------------------------------------- /modules/geos.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # SPDX-License-Identifier: MIT 3 | # Copyright (C) 2024 by Amazon.com, Inc. or its affiliates. All Rights Reserved. 4 | 5 | #GEOS_VERSION=git 6 | GEOS_VERSION=${2:-3.12.1} 7 | DISABLE_COMPILER_ENV=false 8 | 9 | GEOS_SRC="geos-${GEOS_VERSION}.tar.bz2" 10 | 11 | install_sys_dependency_for_geos() 12 | { 13 | # packages for build geos 14 | case ${S_VERSION_ID} in 15 | 7) 16 | return 17 | case "${S_NAME}" in 18 | "Alibaba Cloud Linux (Aliyun Linux)"|"Oracle Linux Server"|"Red Hat Enterprise Linux Server"|"CentOS Linux") 19 | return 20 | ;; 21 | "Amazon Linux") 22 | return 23 | ;; 24 | esac 25 | ;; 26 | 8) 27 | return 28 | case "${S_NAME}" in 29 | "Alibaba Cloud Linux"|"Oracle Linux Server"|"Red Hat Enterprise Linux Server"|"CentOS Linux") 30 | return 31 | ;; 32 | "Amazon Linux") 33 | return 34 | ;; 35 | esac 36 | ;; 37 | 18|20) 38 | return 39 | ;; 40 | *) 41 | exit 1 42 | ;; 43 | esac 44 | } 45 | 46 | download_geos() { 47 | echo "zzz *** $(date) *** Downloading source code ${GEOS_SRC}" 48 | if [ "${GEOS_VERSION}" == "git" ] 49 | then 50 | git clone https://github.com/ecmwf/geos.git 51 | return $? 52 | else 53 | if [ -f ${GEOS_SRC} ] 54 | then 55 | return 56 | else 57 | curl --retry 3 -JLOk "https://download.osgeo.org/geos/geos-${GEOS_VERSION}.tar.bz2" 58 | return $? 59 | fi 60 | fi 61 | } 62 | 63 | install_geos() 64 | { 65 | echo "zzz *** $(date) *** Build geos-${GEOS_VERSION}" 66 | if [ "${GEOS_VERSION}" == "git" ] 67 | then 68 | mv geos geos-${GEOS_VERSION} 69 | else 70 | sudo rm -rf ${GEOS_SRC%.tar.bz2} 71 | tar xf ${GEOS_SRC} 72 | fi 73 | 74 | if [ -f ../patch/geos/geos-${GEOS_VERSION}.patch ] 75 | then 76 | cd ${GEOS_SRC%.tar.bz2} 77 | patch -Np1 < ../../patch/geos/geos-${GEOS_VERSION}.patch 78 | cd .. 79 | fi 80 | 81 | mkdir -p "${GEOS_SRC%.tar.bz2}-build" 82 | 83 | export CXXFLAGS="-I ${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI}/include/jasper" 84 | cmake -H${GEOS_SRC%.tar.bz2} -B${GEOS_SRC%.tar.bz2}-build \ 85 | -DCMAKE_PREFIX_PATH=${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI} \ 86 | -DCMAKE_INSTALL_PREFIX=${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI} || exit 1 87 | 88 | cmake --build "${GEOS_SRC%.tar.bz2}-build" -j $(nproc) && \ 89 | sudo --preserve-env=PATH,LD_LIBRARY_PATH,CC,CXX,F77,FC,AR,RANLIB,I_MPI_CC,I_MPI_CXX,I_MPI_FC,I_MPI_F77,I_MPI_F90 env cmake --install "${GEOS_SRC%.tar.bz2}-build" && \ 90 | sudo rm -rf ${GEOS_SRC%.tar.bz2}-build || exit 1 91 | } 92 | 93 | update_geos_version() 94 | { 95 | MODULE_VERSION=${GEOS_VERSION} 96 | } 97 | -------------------------------------------------------------------------------- /modules/gpcnet.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # SPDX-License-Identifier: MIT 3 | # Copyright (C) 2022 by Amazon.com, Inc. or its affiliates. All Rights Reserved. 4 | 5 | GPCNET_VERSION=${2:-git} 6 | GPCNET_SRC=GPCNET-${GPCNET_VERSION}.tar.gz 7 | DISABLE_COMPILER_ENV=false 8 | 9 | install_sys_dependency_for_gpcnet() 10 | { 11 | return 12 | } 13 | 14 | download_gpcnet() 15 | { 16 | echo "zzz *** $(date) *** Downloading source code ${GPCNET_SRC}" 17 | if [ "${GPCNET_VERSION}" == "git" ] 18 | then 19 | rm -rf GPCNET 20 | git clone https://github.com/netbench/GPCNET.git 21 | return $? 22 | fi 23 | 24 | if [ -f ${GPCNET_SRC} ] 25 | then 26 | return 27 | else 28 | curl --retry 3 -JLOk https://github.com/netbench/GPCNET/archive/refs/tags/${GPCNET_VERSION}.tar.gz 29 | return $? 30 | fi 31 | } 32 | 33 | install_gpcnet() 34 | { 35 | if [ "${GPCNET_VERSION}" == "git" ] 36 | then 37 | cd GPCNET 38 | else 39 | sudo rm -rf ${GPCNET_SRC%.tar.gz} 40 | tar xf ${GPCNET_SRC} 41 | cd ${GPCNET_SRC%.tar.gz} 42 | fi 43 | make all CC=mpicc CXX=mpicxx && cd .. && \ 44 | if [ "${GPCNET_VERSION}" == "git" ] 45 | then 46 | sudo mv GPCNET "${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI}/GPCNET-${GPCNET_VERSION}" 47 | else 48 | sudo mv "${GPCNET_SRC%.tar.gz}" "${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI}/GPCNET-${GPCNET_VERSION}" 49 | fi && \ 50 | sudo rm -rf ${GPCNET_SRC%.tar.gz} || exit 1 51 | } 52 | 53 | update_gpcnet_version() 54 | { 55 | MODULE_VERSION=${GPCNET_VERSION} 56 | } 57 | -------------------------------------------------------------------------------- /modules/hpcc.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # SPDX-License-Identifier: MIT 3 | # Copyright (C) 2022 by Amazon.com, Inc. or its affiliates. All Rights Reserved. 4 | 5 | #HPCC_VERSION=git 6 | HPCC_VERSION=${2:-1.5.0} 7 | DISABLE_COMPILER_ENV=false 8 | 9 | HPCC_SRC="hpcc-${HPCC_VERSION}.tar.gz" 10 | 11 | install_sys_dependency_for_hpcc() 12 | { 13 | # packages for build hpcc 14 | case ${S_VERSION_ID} in 15 | 7) 16 | return 17 | case "${S_NAME}" in 18 | "Alibaba Cloud Linux (Aliyun Linux)"|"Oracle Linux Server"|"Red Hat Enterprise Linux Server"|"CentOS Linux") 19 | return 20 | ;; 21 | "Amazon Linux") 22 | return 23 | ;; 24 | esac 25 | ;; 26 | 8) 27 | return 28 | case "${S_NAME}" in 29 | "Alibaba Cloud Linux"|"Oracle Linux Server"|"Red Hat Enterprise Linux Server"|"CentOS Linux") 30 | return 31 | ;; 32 | "Amazon Linux") 33 | return 34 | ;; 35 | esac 36 | ;; 37 | 18|20) 38 | return 39 | ;; 40 | *) 41 | exit 1 42 | ;; 43 | esac 44 | } 45 | 46 | download_hpcc() { 47 | echo "zzz *** $(date) *** Downloading source code ${HPCC_SRC}" 48 | if [ "${HPCC_VERSION}" == "git" ] 49 | then 50 | git clone https://github.com/icl-utk-edu/hpcc.git 51 | return $? 52 | else 53 | if [ -f ${HPCC_SRC} ] 54 | then 55 | return 56 | else 57 | curl --retry 3 -JLOk "https://hpcchallenge.org/projectsfiles/hpcc/download/hpcc-${HPCC_VERSION}.tar.gz" 58 | #curl -JLOk "https://github.com/icl-utk-edu/hpcc/archive/refs/tags/${HPCC_VERSION}.tar.gz" 59 | return $? 60 | fi 61 | fi 62 | } 63 | 64 | install_hpcc() 65 | { 66 | echo "zzz *** $(date) *** Build hpcc-${HPCC_VERSION}" 67 | if [ "${HPCC_VERSION}" == "git" ] 68 | then 69 | mv hpcc hpcc-${HPCC_VERSION} 70 | else 71 | sudo rm -rf ${HPCC_SRC%.tar.gz} 72 | tar xf ${HPCC_SRC} 73 | fi 74 | 75 | cd ${HPCC_SRC%.tar.gz} 76 | 77 | if [ -f ../../patch/hpcc/hpcc-${HPCC_VERSION}.patch ] 78 | then 79 | patch -Np1 < ../../patch/hpcc/hpcc-${HPCC_VERSION}.patch 80 | fi 81 | 82 | sed -e s"%^LAlib.*%LAlib = ${HPC_LLIBS}%g" \ 83 | -e s"%^LAinc.*%LAinc = ${HPC_INCS}%g" \ 84 | -e s"%^CCFLAGS = $(HPL_DEFS).*%CCFLAGS = \$(HPL_DEFS) ${HPC_CFLAGS}%g" \ 85 | hpl/setup/Make.LinuxIntelIA64Itan2_eccMKL > hpl/Make.Linux 86 | 87 | make -j $(nproc) arch=Linux && \ 88 | cd .. && \ 89 | sudo mv "hpcc-${HPCC_VERSION}" "${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI}" || exit 1 90 | } 91 | 92 | update_hpcc_version() 93 | { 94 | MODULE_VERSION=${HPCC_VERSION} 95 | } 96 | -------------------------------------------------------------------------------- /modules/imb.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # SPDX-License-Identifier: MIT 3 | # Copyright (C) 2022 by Amazon.com, Inc. or its affiliates. All Rights Reserved. 4 | 5 | IMB_VERSION=${2:-2021.3} 6 | IMB_SRC=IMB-v${IMB_VERSION}.tar.gz 7 | DISABLE_COMPILER_ENV=false 8 | 9 | install_sys_dependency_for_imb() 10 | { 11 | return 12 | } 13 | 14 | download_imb() 15 | { 16 | echo "zzz *** $(date) *** Downloading source code ${IMB_SRC}" 17 | if [ -f ${IMB_SRC} ] 18 | then 19 | return 20 | else 21 | curl --retry 3 -JLOk https://github.com/intel/mpi-benchmarks/archive/refs/tags/${IMB_SRC} 22 | return $? 23 | fi 24 | } 25 | 26 | install_imb() 27 | { 28 | sudo rm -rf mpi-benchmarks-${IMB_SRC%.tar.gz} 29 | tar xf ${IMB_SRC} 30 | cd mpi-benchmarks-${IMB_SRC%.tar.gz} 31 | if [ -f ../../patch/imb/imb-${IMB_VERSION}-return-value.patch ] 32 | then 33 | patch -Np1 < ../../patch/imb/imb-${IMB_VERSION}-return-value.patch 34 | fi 35 | CC=mpicc CXX=mpicxx make && \ 36 | cd .. && \ 37 | sudo mv "mpi-benchmarks-${IMB_SRC%.tar.gz}" "${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI}/" || exit 1 38 | } 39 | 40 | update_imb_version() 41 | { 42 | MODULE_VERSION=${IMB_VERSION} 43 | } 44 | -------------------------------------------------------------------------------- /modules/ior.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # SPDX-License-Identifier: MIT 3 | # Copyright (C) 2022 by Amazon.com, Inc. or its affiliates. All Rights Reserved. 4 | 5 | #IOR_VERSION=git 6 | IOR_VERSION=${2:-4.0.0rc1} 7 | DISABLE_COMPILER_ENV=false 8 | 9 | IOR_SRC="ior-${IOR_VERSION}.tar.gz" 10 | 11 | install_sys_dependency_for_ior() 12 | { 13 | # packages for build ior 14 | case ${S_VERSION_ID} in 15 | 7) 16 | return 17 | case "${S_NAME}" in 18 | "Alibaba Cloud Linux (Aliyun Linux)"|"Oracle Linux Server"|"Red Hat Enterprise Linux Server"|"CentOS Linux") 19 | return 20 | ;; 21 | "Amazon Linux") 22 | return 23 | ;; 24 | esac 25 | ;; 26 | 8) 27 | return 28 | case "${S_NAME}" in 29 | "Alibaba Cloud Linux"|"Oracle Linux Server"|"Red Hat Enterprise Linux Server"|"CentOS Linux") 30 | return 31 | ;; 32 | "Amazon Linux") 33 | return 34 | ;; 35 | esac 36 | ;; 37 | 18|20) 38 | return 39 | ;; 40 | *) 41 | exit 1 42 | ;; 43 | esac 44 | } 45 | 46 | download_ior() { 47 | echo "zzz *** $(date) *** Downloading source code ${IOR_SRC}" 48 | if [ "${IOR_VERSION}" == "git" ] 49 | then 50 | git clone https://github.com/hpc/ior.git 51 | return $? 52 | else 53 | if [ -f ${IOR_SRC} ] 54 | then 55 | return 56 | else 57 | curl --retry 3 -JLOk "https://github.com/hpc/ior/archive/refs/tags/${IOR_VERSION}.tar.gz" 58 | return $? 59 | fi 60 | fi 61 | } 62 | 63 | install_ior() 64 | { 65 | echo "zzz *** $(date) *** Build ior-${IOR_VERSION}" 66 | if [ "${IOR_VERSION}" == "git" ] 67 | then 68 | mv ior ior-${IOR_VERSION} 69 | else 70 | sudo rm -rf ${IOR_SRC%.tar.gz} 71 | tar xf ${IOR_SRC} 72 | fi 73 | 74 | cd ${IOR_SRC%.tar.gz} 75 | 76 | if [ -f ../../patch/ior/ior-${IOR_VERSION}.patch ] 77 | then 78 | patch -Np1 < ../../patch/ior/ior-${IOR_VERSION}.patch 79 | fi 80 | 81 | if [ -f ./bootstrap ] 82 | then 83 | ./bootstrap 84 | fi 85 | export CC=$(which mpicc) 86 | ./configure --prefix="${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI}" 87 | make && \ 88 | sudo --preserve-env=PATH,LD_LIBRARY_PATH,I_MPI_CC,I_MPI_CXX,I_MPI_FC,I_MPI_F77,I_MPI_F90 env make install && \ 89 | cd .. && \ 90 | sudo rm -rf ${IOR_SRC%.tar.gz} || exit 1 91 | } 92 | 93 | update_ior_version() 94 | { 95 | MODULE_VERSION=${IOR_VERSION} 96 | } 97 | -------------------------------------------------------------------------------- /modules/jasper.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # SPDX-License-Identifier: MIT 3 | # Copyright (C) 2024 by Amazon.com, Inc. or its affiliates. All Rights Reserved. 4 | 5 | JASPER_VERSION=${2:-2.0.33} 6 | JASPER_SRC="jasper-${JASPER_VERSION}.tar.gz" 7 | DISABLE_COMPILER_ENV=false 8 | 9 | 10 | install_sys_dependency_for_jasper() 11 | { 12 | case ${S_VERSION_ID} in 13 | 7) 14 | sudo yum -y update 15 | case "${S_NAME}" in 16 | "Alibaba Cloud Linux (Aliyun Linux)"|"Oracle Linux Server"|"Red Hat Enterprise Linux Server"|"CentOS Linux") 17 | return 18 | ;; 19 | "Amazon Linux") 20 | return 21 | ;; 22 | esac 23 | ;; 24 | 8) 25 | sudo $(dnf check-release-update 2>&1 | grep "dnf update --releasever" | tail -n1) -y 2> /dev/null 26 | sudo dnf -y update 27 | case "${S_NAME}" in 28 | "Alibaba Cloud Linux"|"Oracle Linux Server"|"Red Hat Enterprise Linux Server"|"CentOS Linux") 29 | return 30 | ;; 31 | "Amazon Linux") 32 | return 33 | ;; 34 | esac 35 | ;; 36 | 18|20) 37 | sudo apt-get -y update 38 | ;; 39 | *) 40 | exit 1 41 | ;; 42 | esac 43 | } 44 | 45 | download_jasper() 46 | { 47 | if [ -f ${JASPER_SRC} ] 48 | then 49 | return 50 | else 51 | curl --retry 3 -JLOk "https://github.com/jasper-software/jasper/releases/download/version-${JASPER_VERSION}/jasper-${JASPER_VERSION}.tar.gz" 52 | return $? 53 | fi 54 | } 55 | 56 | install_jasper() 57 | { 58 | echo "zzz *** $(date) *** Build ${JASPER_SRC%.tar.gz}" 59 | sudo rm -rf "${JASPER_SRC%.tar.gz}" "${JASPER_SRC%.tar.gz}-build" 60 | tar xf "${JASPER_SRC}" 61 | 62 | if [ -f ../../patch/jasper/jasper-${JASPER_VERSION}.patch ] 63 | then 64 | cd "${JASPER_SRC%.tar.gz}" 65 | patch -Np1 < ../../patch/jasper/jasper-${JASPER_VERSION}.patch 66 | cd .. 67 | fi 68 | 69 | mkdir -p "${JASPER_SRC%.tar.gz}-build" 70 | cmake -H${JASPER_SRC%.tar.gz} -B${JASPER_SRC%.tar.gz}-build \ 71 | -DCMAKE_INSTALL_PREFIX=${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI} \ 72 | -DCMAKE_PREFIX_PATH=${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI} \ 73 | -DJAS_ENABLE_DOC=false || exit 1 74 | 75 | cmake --build "${JASPER_SRC%.tar.gz}-build" -j $(nproc) || exit 1 76 | 77 | sudo --preserve-env=PATH,LD_LIBRARY_PATH,CC,CXX,F77,FC,AR,RANLIB,I_MPI_CC,I_MPI_CXX,I_MPI_FC,I_MPI_F77,I_MPI_F90 env cmake --install "${JASPER_SRC%.tar.gz}-build" && \ 78 | sudo rm -rf ${JASPER_SRC%.tar.gz} ${JASPER_SRC%.tar.gz}-build || exit 1 79 | 80 | } 81 | 82 | update_jasper_version() 83 | { 84 | MODULE_VERSION=${JASPER_VERSION} 85 | } 86 | -------------------------------------------------------------------------------- /modules/kahip.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # SPDX-License-Identifier: MIT 3 | # Copyright (C) 2024 by Amazon.com, Inc. or its affiliates. All Rights Reserved. 4 | 5 | #KAHIP_VERSION=git 6 | KAHIP_VERSION=${2:-3.16} 7 | DISABLE_COMPILER_ENV=false 8 | 9 | KAHIP_SRC="KaHIP-${KAHIP_VERSION}.tar.gz" 10 | 11 | install_sys_dependency_for_kahip() 12 | { 13 | # packages for build kahip 14 | case ${S_VERSION_ID} in 15 | 7) 16 | return 17 | case "${S_NAME}" in 18 | "Alibaba Cloud Linux (Aliyun Linux)"|"Oracle Linux Server"|"Red Hat Enterprise Linux Server"|"CentOS Linux") 19 | return 20 | ;; 21 | "Amazon Linux") 22 | return 23 | ;; 24 | esac 25 | ;; 26 | 8) 27 | return 28 | case "${S_NAME}" in 29 | "Alibaba Cloud Linux"|"Oracle Linux Server"|"Red Hat Enterprise Linux Server"|"CentOS Linux") 30 | return 31 | ;; 32 | "Amazon Linux") 33 | return 34 | ;; 35 | esac 36 | ;; 37 | 18|20) 38 | return 39 | ;; 40 | *) 41 | exit 1 42 | ;; 43 | esac 44 | } 45 | 46 | download_kahip() { 47 | echo "zzz *** $(date) *** Downloading source code ${KAHIP_SRC}" 48 | if [ "${KAHIP_VERSION}" == "git" ] 49 | then 50 | git clone https://github.com/KaHIP/KaHIP.git 51 | return $? 52 | else 53 | if [ -f ${KAHIP_SRC} ] 54 | then 55 | return 56 | else 57 | curl --retry 3 -JLOk "https://github.com/KaHIP/KaHIP/archive/refs/tags/v${KAHIP_VERSION}.tar.gz" 58 | return $? 59 | fi 60 | fi 61 | } 62 | 63 | install_kahip() 64 | { 65 | echo "zzz *** $(date) *** Build kahip-${KAHIP_VERSION}" 66 | if [ "${KAHIP_VERSION}" == "git" ] 67 | then 68 | mv KaHIP KaHIP-${KAHIP_VERSION} 69 | else 70 | sudo rm -rf ${KAHIP_SRC%.tar.gz} 71 | tar xf ${KAHIP_SRC} 72 | fi 73 | 74 | if [ -f ../patch/kahip/kahip-${KAHIP_VERSION}.patch ] 75 | then 76 | cd ${KAHIP_SRC%.tar.gz} 77 | patch -Np1 < ../../patch/kahip/kahip-${KAHIP_VERSION}.patch 78 | cd .. 79 | fi 80 | 81 | mkdir -p "${KAHIP_SRC%.tar.gz}-build" 82 | #sed -i s"%/usr/local/include%${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI}/include%g" "${KAHIP_SRC%.tar.gz}/CMakeLists.txt" 83 | 84 | cmake -H${KAHIP_SRC%.tar.gz} -B${KAHIP_SRC%.tar.gz}-build \ 85 | -DCMAKE_PREFIX_PATH=${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI} \ 86 | -DCMAKE_CXX_FLAGS="-I${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI}/include" \ 87 | -DBUILD_SHARED_LIBS=ON \ 88 | -DCMAKE_INSTALL_PREFIX=${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI} || exit 1 89 | 90 | cmake --build "${KAHIP_SRC%.tar.gz}-build" -j $(nproc) && \ 91 | sudo --preserve-env=PATH,LD_LIBRARY_PATH,LIBRARY_PATH,CC,CXX,F77,FC,AR,RANLIB,I_MPI_ROOT,MPI_ROOT,I_MPI_CC,I_MPI_CXX,I_MPI_FC,I_MPI_F77,I_MPI_F90 env cmake --install "${KAHIP_SRC%.tar.gz}-build" && \ 92 | sudo rm -rf ${KAHIP_SRC%.tar.gz}-build || exit 1 93 | } 94 | 95 | update_kahip_version() 96 | { 97 | MODULE_VERSION=${KAHIP_VERSION} 98 | } 99 | -------------------------------------------------------------------------------- /modules/lapack.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # SPDX-License-Identifier: MIT 3 | # Copyright (C) 2023 by Amazon.com, Inc. or its affiliates. All Rights Reserved. 4 | 5 | LAPACK_VERSION=${2:-3.12.0} 6 | LAPACK_SRC="lapack-${LAPACK_VERSION}.tar.gz" 7 | DISABLE_COMPILER_ENV=false 8 | 9 | install_sys_dependency_for_lapack() 10 | { 11 | case ${S_VERSION_ID} in 12 | 7) 13 | sudo yum -y update 14 | case "${S_NAME}" in 15 | "Alibaba Cloud Linux (Aliyun Linux)"|"Oracle Linux Server"|"Red Hat Enterprise Linux Server"|"CentOS Linux") 16 | return 17 | ;; 18 | "Amazon Linux") 19 | return 20 | ;; 21 | esac 22 | ;; 23 | 8) 24 | sudo $(dnf check-release-update 2>&1 | grep "dnf update --releasever" | tail -n1) -y 2> /dev/null 25 | sudo dnf -y update 26 | case "${S_NAME}" in 27 | "Alibaba Cloud Linux"|"Oracle Linux Server"|"Red Hat Enterprise Linux Server"|"CentOS Linux") 28 | return 29 | ;; 30 | "Amazon Linux") 31 | return 32 | ;; 33 | esac 34 | ;; 35 | 18|20) 36 | sudo apt-get -y update 37 | ;; 38 | *) 39 | exit 1 40 | ;; 41 | esac 42 | } 43 | 44 | download_lapack() { 45 | echo "zzz *** $(date) *** Downloading source code ${LAPACK_SRC}" 46 | if [ -f ${LAPACK_SRC} ] 47 | then 48 | return 49 | else 50 | curl --retry 3 -JLOk https://github.com/Reference-LAPACK/lapack/archive/refs/tags/v${LAPACK_VERSION}.tar.gz 51 | return $? 52 | fi 53 | } 54 | 55 | install_lapack() 56 | { 57 | sudo rm -rf "${LAPACK_SRC%.tar.gz}" 58 | tar xf "${LAPACK_SRC}" 59 | cd "${LAPACK_SRC%.tar.gz}" 60 | mkdir -p build 61 | cd build 62 | cmake .. -DCMAKE_INSTALL_PREFIX=${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI} -DBUILD_SHARED_LIBS=ON && \ 63 | cmake --build . -j $(nproc) && \ 64 | sudo --preserve-env=PATH,LD_LIBRARY_PATH,CC,CXX,F77,FC,AR,RANLIB env cmake --install . && \ 65 | cd ../.. && \ 66 | sudo rm -rf "${LAPACK_SRC%.tar.gz}" || exit 1 67 | } 68 | 69 | update_lapack_version() 70 | { 71 | MODULE_VERSION=${LAPACK_VERSION} 72 | } 73 | -------------------------------------------------------------------------------- /modules/libaec.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # SPDX-License-Identifier: MIT 3 | # Copyright (C) 2024 by Amazon.com, Inc. or its affiliates. All Rights Reserved. 4 | 5 | #LIBAEC_VERSION=git 6 | LIBAEC_VERSION=${2:-1.1.3} 7 | DISABLE_COMPILER_ENV=false 8 | 9 | LIBAEC_SRC="libaec-v${LIBAEC_VERSION}.tar.gz" 10 | 11 | install_sys_dependency_for_libaec() 12 | { 13 | # packages for build libaec 14 | case ${S_VERSION_ID} in 15 | 7) 16 | return 17 | case "${S_NAME}" in 18 | "Alibaba Cloud Linux (Aliyun Linux)"|"Oracle Linux Server"|"Red Hat Enterprise Linux Server"|"CentOS Linux") 19 | return 20 | ;; 21 | "Amazon Linux") 22 | return 23 | ;; 24 | esac 25 | ;; 26 | 8) 27 | return 28 | case "${S_NAME}" in 29 | "Alibaba Cloud Linux"|"Oracle Linux Server"|"Red Hat Enterprise Linux Server"|"CentOS Linux") 30 | return 31 | ;; 32 | "Amazon Linux") 33 | return 34 | ;; 35 | esac 36 | ;; 37 | 18|20) 38 | return 39 | ;; 40 | *) 41 | exit 1 42 | ;; 43 | esac 44 | } 45 | 46 | download_libaec() { 47 | echo "zzz *** $(date) *** Downloading source code ${LIBAEC_SRC}" 48 | if [ "${LIBAEC_VERSION}" == "git" ] 49 | then 50 | git clone https://gitlab.dkrz.de/k202009/libaec.git 51 | return $? 52 | else 53 | if [ -f ${LIBAEC_SRC} ] 54 | then 55 | return 56 | else 57 | curl --retry 3 -JLOk "https://gitlab.dkrz.de/k202009/libaec/-/archive/v${LIBAEC_VERSION}/libaec-v${LIBAEC_VERSION}.tar.gz" 58 | return $? 59 | fi 60 | fi 61 | } 62 | 63 | install_libaec() 64 | { 65 | echo "zzz *** $(date) *** Build libaec-${LIBAEC_VERSION}" 66 | if [ "${LIBAEC_VERSION}" == "git" ] 67 | then 68 | mv libaec libaec-${LIBAEC_VERSION} 69 | else 70 | sudo rm -rf ${LIBAEC_SRC%.tar.gz} 71 | tar xf ${LIBAEC_SRC} 72 | fi 73 | 74 | cd ${LIBAEC_SRC%.tar.gz} 75 | 76 | if [ -f ../../patch/libaec/libaec-${LIBAEC_VERSION}.patch ] 77 | then 78 | patch -Np1 < ../../patch/libaec/libaec-${LIBAEC_VERSION}.patch 79 | fi 80 | 81 | mkdir build 82 | cd build 83 | 84 | cmake .. -DCMAKE_INSTALL_PREFIX=${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI} \ 85 | -DCMAKE_INSTALL_LIBDIR=${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI}/lib || exit 1 86 | cmake --build . -j $(nproc) && \ 87 | sudo --preserve-env=PATH,LD_LIBRARY_PATH,CC,CXX,F77,FC,AR,RANLIB env cmake --install . && \ 88 | cd ../.. && \ 89 | sudo rm -rf ${LIBAEC_SRC%.tar.gz} || exit 1 90 | } 91 | 92 | update_libaec_version() 93 | { 94 | MODULE_VERSION=${LIBAEC_VERSION} 95 | } 96 | -------------------------------------------------------------------------------- /modules/metis.sh: -------------------------------------------------------------------------------- 1 | #o!/bin/bash 2 | # SPDX-License-Identifier: MIT 3 | # Copyright (C) 2024 by Amazon.com, Inc. or its affiliates. All Rights Reserved. 4 | 5 | #METIS_VERSION=git 6 | METIS_VERSION=${2:-5.1.0} 7 | DISABLE_COMPILER_ENV=false 8 | 9 | METIS_SRC="metis-${METIS_VERSION}.tar.gz" 10 | 11 | install_sys_dependency_for_metis() 12 | { 13 | # packages for build metis 14 | case ${S_VERSION_ID} in 15 | 7) 16 | sudo yum -y install libtiff-devel 17 | return 18 | case "${S_NAME}" in 19 | "Alibaba Cloud Linux (Aliyun Linux)"|"Oracle Linux Server"|"Red Hat Enterprise Linux Server"|"CentOS Linux") 20 | return 21 | ;; 22 | "Amazon Linux") 23 | return 24 | ;; 25 | esac 26 | ;; 27 | 8) 28 | sudo dnf -y install libtiff-devel 29 | return 30 | case "${S_NAME}" in 31 | "Alibaba Cloud Linux"|"Oracle Linux Server"|"Red Hat Enterprise Linux Server"|"CentOS Linux") 32 | return 33 | ;; 34 | "Amazon Linux") 35 | return 36 | ;; 37 | esac 38 | ;; 39 | 18|20) 40 | sudo apt-get -y install libtiff-dev 41 | return 42 | ;; 43 | *) 44 | exit 1 45 | ;; 46 | esac 47 | } 48 | 49 | download_metis() { 50 | echo "zzz *** $(date) *** Downloading source code ${METIS_SRC}" 51 | if [ "${METIS_VERSION}" == "git" ] 52 | then 53 | git clone https://github.com/KarypisLab/METIS.git 54 | return $? 55 | else 56 | if [ -f ${METIS_SRC} ] 57 | then 58 | return 59 | else 60 | #curl --retry 3 -JLOk "https://github.com/KarypisLab/METIS/archive/refs/tags/v${METIS_VERSION}.tar.gz" 61 | curl --retry 3 -JLOk "http://glaros.dtc.umn.edu/gkhome/fetch/sw/metis/metis-${METIS_VERSION}.tar.gz" 62 | return $? 63 | fi 64 | fi 65 | } 66 | 67 | install_metis() 68 | { 69 | echo "zzz *** $(date) *** Build metis-${METIS_VERSION}" 70 | if [ "${METIS_VERSION}" == "git" ] 71 | then 72 | mv METIS METIS-${METIS_VERSION} 73 | else 74 | sudo rm -rf ${METIS_SRC%.tar.gz} 75 | tar xf ${METIS_SRC} 76 | fi 77 | 78 | cd ${METIS_SRC%.tar.gz} 79 | 80 | if [ -f ../../patch/metis/metis-${METIS_VERSION}.patch ] 81 | then 82 | patch -Np1 < ../../patch/metis/metis-${METIS_VERSION}.patch 83 | fi 84 | 85 | make config shared=1 prefix=${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI} && \ 86 | make && \ 87 | sudo --preserve-env=PATH,LD_LIBRARY_PATH,I_MPI_CC,I_MPI_CXX,I_MPI_FC,I_MPI_F77,I_MPI_F90,CC,CXX,F77,FC,AR,RANLIB,FFLAGS,FCFLAGS env make install && \ 88 | cd .. && \ 89 | sudo rm -rf ${METIS_SRC%.tar.gz} || exit 1 90 | } 91 | 92 | update_metis_version() 93 | { 94 | MODULE_VERSION=${METIS_VERSION} 95 | } 96 | -------------------------------------------------------------------------------- /modules/mt-dgemm.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | MT_DEGMM_VERSION=${2:-1.0.0} 4 | MT_DEGMM_SRC=mt-dgemm-${MT_DEGMM_VERSION}.tar.gz 5 | DISABLE_COMPILER_ENV=false 6 | 7 | install_sys_dependency_for_mt_dgemm() 8 | { 9 | return 10 | } 11 | 12 | download_mt_dgemm() 13 | { 14 | echo "zzz *** $(date) *** Downloading source code ${MT_DEGMM_SRC}" 15 | if [ -f ${MT_DEGMM_SRC} ] 16 | then 17 | return 18 | else 19 | #curl --retry 3 -JLk https://www.lanl.gov/projects/crossroads/_assets/docs/micro/mtdgemm-crossroads-v${MT_DEGMM_VERSION}.tgz -o ${MT_DEGMM_SRC} 20 | curl --retry 3 -JLk http://phoronix-test-suite.com/benchmark-files/mtdgemm-crossroads-v${MT_DEGMM_VERSION}.tgz -o ${MT_DEGMM_SRC} 21 | return $? 22 | fi 23 | } 24 | 25 | install_mt_dgemm() 26 | { 27 | sudo rm -rf ${MT_DEGMM_SRC%.tar.gz} 28 | tar xf ${MT_DEGMM_SRC} 29 | mv mt-dgemm ${MT_DEGMM_SRC%.tar.gz} 30 | cd ${MT_DEGMM_SRC%.tar.gz}/src 31 | cp ../../../patch/mt-dgemm/Makefile.${HPC_COMPILER} . 32 | make -f Makefile.${HPC_COMPILER} && \ 33 | cd ../../ && \ 34 | sudo mv "${MT_DEGMM_SRC%.tar.gz}" "${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI}/" || exit 1 35 | } 36 | 37 | update_mt_dgemm_version() 38 | { 39 | MODULE_VERSION=${MT_DEGMM_VERSION} 40 | } 41 | -------------------------------------------------------------------------------- /modules/nccl.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # SPDX-License-Identifier: MIT 3 | # Copyright (C) 2022 by Amazon.com, Inc. or its affiliates. All Rights Reserved. 4 | 5 | NCCL_VERSION=${2:-2.16.2-1} 6 | NCCL_SRC="nccl-${NCCL_VERSION}.tar.gz" 7 | DISABLE_COMPILER_ENV=false 8 | 9 | install_sys_dependency_for_nccl() 10 | { 11 | case ${S_VERSION_ID} in 12 | 7) 13 | sudo yum -y update 14 | case "${S_NAME}" in 15 | "Alibaba Cloud Linux (Aliyun Linux)"|"Oracle Linux Server"|"Red Hat Enterprise Linux Server"|"CentOS Linux") 16 | sudo yum -y install libfabric libfabric-devel rdma-core-devel librdmacm-utils libpsm2-devel infinipath-psm-devel libibverbs-utils libnl3 libnl3-devel python3 17 | ;; 18 | "Amazon Linux") 19 | sudo yum -y install libfabric libfabric-devel rdma-core-devel librdmacm-utils libibverbs-utils libnl3 libnl3-devel python3 20 | ;; 21 | esac 22 | ;; 23 | 8) 24 | sudo $(dnf check-release-update 2>&1 | grep "dnf update --releasever" | tail -n1) -y 2> /dev/null 25 | sudo dnf -y update 26 | sudo dnf -y install libfabric libfabric-devel rdma-core-devel librdmacm-utils libibverbs-utils libnl3 libnl3-devel python3 27 | case "${S_NAME}" in 28 | "Alibaba Cloud Linux"|"Oracle Linux Server"|"Red Hat Enterprise Linux Server"|"CentOS Linux") 29 | return 30 | ;; 31 | "Amazon Linux") 32 | return 33 | ;; 34 | esac 35 | ;; 36 | 18|20) 37 | sudo apt-get -y update 38 | sudo apt-get -y install python3 39 | ;; 40 | *) 41 | exit 1 42 | ;; 43 | esac 44 | } 45 | 46 | download_nccl() 47 | { 48 | if [ -f ${NCCL_SRC} ] 49 | then 50 | return 51 | else 52 | curl --retry 3 -JLOk "https://github.com/NVIDIA/nccl/archive/refs/tags/v${NCCL_VERSION}.tar.gz" 53 | return $? 54 | fi 55 | } 56 | 57 | install_nccl() 58 | { 59 | echo "zzz *** $(date) *** Build ${NCCL_SRC%.tar.gz}" 60 | sudo rm -rf "${NCCL_SRC%.tar.gz}" 61 | tar xf "${NCCL_SRC}" 62 | cd "${NCCL_SRC%.tar.gz}" 63 | export PREFIX=${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI} 64 | sudo --preserve-env=PATH,LD_LIBRARY_PATH,CC,CXX,F77,FC,AR,RANLIB,PREFIX make src.install \ 65 | CUDA_HOME=${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI}/usr/local/cuda && \ 66 | cd .. && \ 67 | sudo rm -rf "${NCCL_SRC%.tar.gz}" || exit 1 68 | } 69 | 70 | update_nccl_version() 71 | { 72 | MODULE_VERSION=${NCCL_VERSION} 73 | } 74 | -------------------------------------------------------------------------------- /modules/ncview.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # SPDX-License-Identifier: MIT 3 | # Copyright (C) 2022 by Amazon.com, Inc. or its affiliates. All Rights Reserved. 4 | 5 | NCVIEW_VERSION=${2:-2.1.8} 6 | NCVIEW_SRC="ncview-${NCVIEW_VERSION}.tar.gz" 7 | DISABLE_COMPILER_ENV=false 8 | 9 | install_sys_dependency_for_ncview() 10 | { 11 | case ${S_VERSION_ID} in 12 | 7) 13 | sudo yum -y update 14 | case "${S_NAME}" in 15 | "Alibaba Cloud Linux (Aliyun Linux)"|"Oracle Linux Server"|"Red Hat Enterprise Linux Server"|"CentOS Linux") 16 | sudo yum -y install libXaw-devel udunits2-devel xorg-x11-fonts-ISO8859-14-75dpi xorg-x11-fonts-ISO8859-14-100dpi 17 | ;; 18 | "Amazon Linux") 19 | sudo yum -y install libXaw-devel udunits2-devel xorg-x11-fonts-ISO8859-14-75dpi xorg-x11-fonts-ISO8859-14-100dpi 20 | ;; 21 | esac 22 | ;; 23 | 8) 24 | sudo $(dnf check-release-update 2>&1 | grep "dnf update --releasever" | tail -n1) -y 2> /dev/null 25 | sudo dnf -y update 26 | sudo dnf -y install libXaw-devel udunits2-devel xorg-x11-fonts-ISO8859-14-75dpi xorg-x11-fonts-ISO8859-14-100dpi 27 | case "${S_NAME}" in 28 | "Alibaba Cloud Linux"|"Oracle Linux Server"|"Red Hat Enterprise Linux Server"|"CentOS Linux") 29 | return 30 | ;; 31 | "Amazon Linux") 32 | return 33 | ;; 34 | esac 35 | ;; 36 | 18|20) 37 | sudo apt-get -y update 38 | sudo apt-get -y install libxaw7-dev libudunits2-dev xfonts-75dpi xfonts-100dpi 39 | ;; 40 | *) 41 | exit 1 42 | ;; 43 | esac 44 | } 45 | 46 | download_ncview() 47 | { 48 | if [ -f ${NCVIEW_SRC} ] 49 | then 50 | return 51 | else 52 | curl --retry 3 -JLOk "ftp://cirrus.ucsd.edu/pub/ncview/ncview-${NCVIEW_VERSION}.tar.gz" 53 | return $? 54 | fi 55 | } 56 | 57 | install_ncview() 58 | { 59 | echo "zzz *** $(date) *** Build ${NCVIEW_SRC%.tar.gz}" 60 | sudo rm -rf "${NCVIEW_SRC%.tar.gz}" 61 | tar xf "${NCVIEW_SRC}" 62 | cd "${NCVIEW_SRC%.tar.gz}" 63 | export PREFIX=${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI} 64 | ./configure \ 65 | --prefix=${PREFIX} \ 66 | --with-udunits2_incdir=/usr/include/udunits2 67 | 68 | make && \ 69 | sudo --preserve-env=PATH,LD_LIBRARY_PATH,CC,CXX,F77,FC,AR,RANLIB,PREFIX make install && \ 70 | cd .. && \ 71 | sudo rm -rf "${NCVIEW_SRC%.tar.gz}" || exit 1 72 | } 73 | 74 | update_ncview_version() 75 | { 76 | MODULE_VERSION=${NCVIEW_VERSION} 77 | } 78 | -------------------------------------------------------------------------------- /modules/netcdf-c.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # SPDX-License-Identifier: MIT 3 | # Copyright (C) 2022 by Amazon.com, Inc. or its affiliates. All Rights Reserved. 4 | 5 | NETCDF_C_VERSION=${2:-4.9.2} 6 | NETCDF_C_SRC="netcdf-c-${NETCDF_C_VERSION}.tar.gz" 7 | DISABLE_COMPILER_ENV=false 8 | 9 | install_sys_dependency_for_netcdf_c() 10 | { 11 | return 12 | } 13 | 14 | download_netcdf_c() { 15 | if [ -f ${NETCDF_C_SRC} ] 16 | then 17 | return 18 | else 19 | curl --retry 3 -JLOk "https://downloads.unidata.ucar.edu/netcdf-c/${NETCDF_C_VERSION}/${NETCDF_C_SRC}" 20 | return $? 21 | fi 22 | } 23 | 24 | install_netcdf_c() 25 | { 26 | echo "zzz *** $(date) *** Build ${NETCDF_C_SRC%.tar.gz}" 27 | sudo rm -rf "${NETCDF_C_SRC%.tar.gz}" 28 | tar xf "${NETCDF_C_SRC}" 29 | cd "${NETCDF_C_SRC%.tar.gz}" 30 | 31 | if [ -f ../../patch/netcdf-c/netcdf-c-$(arch)-${HPC_COMPILER}.patch ] 32 | then 33 | patch -Np1 < ../../patch/netcdf-c/netcdf-c-$(arch)-${HPC_COMPILER}.patch 34 | fi 35 | 36 | mkdir build 37 | cd build 38 | #cmake3 -DCMAKE_INSTALL_PREFIX=${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI} -DCMAKE_INSTALL_LIBDIR=${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI}/lib .. 39 | #--build=${HPC_TARGET} \ 40 | #--host=${HPC_TARGET} \ 41 | #--target=${HPC_TARGET} \ 42 | CPPFLAGS=-I${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI}/include LDFLAGS=-L${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI}/lib ../configure --prefix=${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI} \ 43 | --libdir=${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI}/lib \ 44 | --enable-shared \ 45 | --enable-pnetcdf \ 46 | --enable-large-file-tests \ 47 | --enable-largefile \ 48 | --enable-parallel-tests \ 49 | --disable-netcdf-4 \ 50 | --with-pic \ 51 | --disable-doxygen \ 52 | --disable-dap 53 | make && \ 54 | sudo --preserve-env=PATH,LD_LIBRARY_PATH,CC,CXX,F77,FC,AR,RANLIB,CPPFLAGS,LDFLAGS make install && \ 55 | cd ../.. && \ 56 | sudo rm -rf "${NETCDF_C_SRC%.tar.gz}" || exit 1 57 | } 58 | 59 | update_netcdf_c_version() 60 | { 61 | MODULE_VERSION=${NETCDF_C_VERSION} 62 | } 63 | -------------------------------------------------------------------------------- /modules/netcdf-fortran.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # SPDX-License-Identifier: MIT 3 | # Copyright (C) 2022 by Amazon.com, Inc. or its affiliates. All Rights Reserved. 4 | 5 | NETCDF_FORTRAN_VERSION=${2:-4.6.1} 6 | NETCDF_FORTRAN_SRC="netcdf-fortran-${NETCDF_FORTRAN_VERSION}.tar.gz" 7 | DISABLE_COMPILER_ENV=false 8 | 9 | install_sys_dependency_for_netcdf_fortran() 10 | { 11 | case ${S_VERSION_ID} in 12 | 7) 13 | sudo yum -y update 14 | case "${S_NAME}" in 15 | "Alibaba Cloud Linux (Aliyun Linux)"|"Oracle Linux Server"|"Red Hat Enterprise Linux Server"|"CentOS Linux") 16 | return 17 | ;; 18 | "Amazon Linux") 19 | return 20 | ;; 21 | esac 22 | ;; 23 | 8) 24 | sudo $(dnf check-release-update 2>&1 | grep "dnf update --releasever" | tail -n1) -y 2> /dev/null 25 | sudo dnf -y update 26 | case "${S_NAME}" in 27 | "Alibaba Cloud Linux"|"Oracle Linux Server"|"Red Hat Enterprise Linux Server"|"CentOS Linux") 28 | return 29 | ;; 30 | "Amazon Linux") 31 | return 32 | ;; 33 | esac 34 | ;; 35 | 18|20) 36 | sudo apt-get -y update 37 | ;; 38 | *) 39 | exit 1 40 | ;; 41 | esac 42 | } 43 | 44 | download_netcdf_fortran() { 45 | if [ -f ${NETCDF_FORTRAN_SRC} ] 46 | then 47 | return 48 | else 49 | curl --retry 3 -JLOk "https://github.com/Unidata/netcdf-fortran/archive/refs/tags/v${NETCDF_FORTRAN_VERSION}.tar.gz" 50 | return $? 51 | fi 52 | } 53 | 54 | install_netcdf_fortran() 55 | { 56 | echo "zzz *** $(date) *** Build ${NETCDF_FORTRAN_SRC%.tar.gz}" 57 | sudo rm -rf "${NETCDF_FORTRAN_SRC%.tar.gz}" "${NETCDF_FORTRAN_SRC%.tar.gz}-build" 58 | tar xf "${NETCDF_FORTRAN_SRC}" 59 | 60 | if [ -f ../patch/netcdf-fortran/netcdf-fortran-${NETCDF_FORTRAN_VERSION}.patch ] 61 | then 62 | cd "${NETCDF_FORTRAN_SRC%.tar.gz}" 63 | patch -Np1 < ../../patch/netcdf-fortran/netcdf-fortran-${NETCDF_FORTRAN_VERSION}.patch 64 | cd .. 65 | fi 66 | 67 | mkdir -p "${NETCDF_FORTRAN_SRC%.tar.gz}-build" 68 | 69 | cmake -H${NETCDF_FORTRAN_SRC%.tar.gz} -B${NETCDF_FORTRAN_SRC%.tar.gz}-build \ 70 | -DCMAKE_INSTALL_PREFIX=${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI} -DCMAKE_PREFIX_PATH=${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI} \ 71 | -DBUILD_SHARED_LIBS=ON || exit 1 72 | 73 | cmake --build "${NETCDF_FORTRAN_SRC%.tar.gz}-build" -j $(nproc) || exit 1 74 | 75 | sudo --preserve-env=PATH,LD_LIBRARY_PATH,CC,CXX,F77,FC,AR,RANLIB,I_MPI_CC,I_MPI_CXX,I_MPI_FC,I_MPI_F77,I_MPI_F90 env cmake --install "${NETCDF_FORTRAN_SRC%.tar.gz}-build" \ 76 | && sudo rm -rf "${NETCDF_FORTRAN_SRC%.tar.gz}" "${NETCDF_FORTRAN_SRC%.tar.gz}-build" || exit 1 77 | 78 | } 79 | 80 | update_netcdf_fortran_version() 81 | { 82 | MODULE_VERSION=${NETCDF_FORTRAN_VERSION} 83 | } 84 | -------------------------------------------------------------------------------- /modules/ninja.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # SPDX-License-Identifier: MIT 3 | # Copyright (C) 2024 by Amazon.com, Inc. or its affiliates. All Rights Reserved. 4 | 5 | #NINJA_VERSION=git 6 | NINJA_VERSION=${2:-1.12.1} 7 | DISABLE_COMPILER_ENV=false 8 | 9 | NINJA_SRC="ninja-${NINJA_VERSION}.tar.gz" 10 | 11 | install_sys_dependency_for_ninja() 12 | { 13 | # packages for build ninja 14 | case ${S_VERSION_ID} in 15 | 7) 16 | return 17 | case "${S_NAME}" in 18 | "Alibaba Cloud Linux (Aliyun Linux)"|"Oracle Linux Server"|"Red Hat Enterprise Linux Server"|"CentOS Linux") 19 | return 20 | ;; 21 | "Amazon Linux") 22 | return 23 | ;; 24 | esac 25 | ;; 26 | 8) 27 | return 28 | case "${S_NAME}" in 29 | "Alibaba Cloud Linux"|"Oracle Linux Server"|"Red Hat Enterprise Linux Server"|"CentOS Linux") 30 | return 31 | ;; 32 | "Amazon Linux") 33 | return 34 | ;; 35 | esac 36 | ;; 37 | 18|20) 38 | return 39 | ;; 40 | *) 41 | exit 1 42 | ;; 43 | esac 44 | } 45 | 46 | download_ninja() { 47 | echo "zzz *** $(date) *** Downloading source code ${NINJA_SRC}" 48 | if [ "${NINJA_VERSION}" == "git" ] 49 | then 50 | git clone https://github.com/ninja-build/ninja.git 51 | return $? 52 | else 53 | if [ -f ${NINJA_SRC} ] 54 | then 55 | return 56 | else 57 | curl --retry 3 -JLOk "https://github.com/ninja-build/ninja/archive/refs/tags/v${NINJA_VERSION}.tar.gz" 58 | return $? 59 | fi 60 | fi 61 | } 62 | 63 | install_ninja() 64 | { 65 | echo "zzz *** $(date) *** Build ninja-${NINJA_VERSION}" 66 | if [ "${NINJA_VERSION}" == "git" ] 67 | then 68 | mv ninja ninja-${NINJA_VERSION} 69 | else 70 | sudo rm -rf ${NINJA_SRC%.tar.gz} 71 | tar xf ${NINJA_SRC} 72 | fi 73 | 74 | if [ -f ../patch/ninja/ninja-${NINJA_VERSION}.patch ] 75 | then 76 | cd ${NINJA_SRC%.tar.gz} 77 | patch -Np1 < ../../patch/ninja/ninja-${NINJA_VERSION}.patch 78 | cd .. 79 | fi 80 | 81 | mkdir -p "${NINJA_SRC%.tar.gz}-build" 82 | 83 | cmake -H${NINJA_SRC%.tar.gz} -B${NINJA_SRC%.tar.gz}-build \ 84 | -DCMAKE_PREFIX_PATH=${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI} \ 85 | -DBUILD_SHARED_LIBS=ON \ 86 | -DCMAKE_INSTALL_PREFIX=${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI} \ 87 | -DCMAKE_BUILD_TYPE=Release || exit 1 88 | 89 | cmake --build "${NINJA_SRC%.tar.gz}-build" -j $(nproc) && \ 90 | sudo --preserve-env=PATH,LD_LIBRARY_PATH,LIBRARY_PATH,CC,CXX,F77,FC,AR,RANLIB,I_MPI_ROOT,MPI_ROOT,I_MPI_CC,I_MPI_CXX,I_MPI_FC,I_MPI_F77,I_MPI_F90 env cmake --install "${NINJA_SRC%.tar.gz}-build" && \ 91 | sudo rm -rf ${NINJA_SRC%.tar.gz}-build || exit 1 92 | } 93 | 94 | update_ninja_version() 95 | { 96 | MODULE_VERSION=${NINJA_VERSION} 97 | } 98 | -------------------------------------------------------------------------------- /modules/openblas.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # SPDX-License-Identifier: MIT 3 | # Copyright (C) 2023 by Amazon.com, Inc. or its affiliates. All Rights Reserved. 4 | 5 | OPENBLAS_VERSION=${2:-0.3.25} 6 | OPENBLAS_SRC="OpenBLAS-${OPENBLAS_VERSION}.tar.gz" 7 | DISABLE_COMPILER_ENV=false 8 | 9 | install_sys_dependency_for_openblas() 10 | { 11 | case ${S_VERSION_ID} in 12 | 7) 13 | sudo yum -y update 14 | case "${S_NAME}" in 15 | "Alibaba Cloud Linux (Aliyun Linux)"|"Oracle Linux Server"|"Red Hat Enterprise Linux Server"|"CentOS Linux") 16 | return 17 | ;; 18 | "Amazon Linux") 19 | return 20 | ;; 21 | esac 22 | ;; 23 | 8) 24 | sudo $(dnf check-release-update 2>&1 | grep "dnf update --releasever" | tail -n1) -y 2> /dev/null 25 | sudo dnf -y update 26 | case "${S_NAME}" in 27 | "Alibaba Cloud Linux"|"Oracle Linux Server"|"Red Hat Enterprise Linux Server"|"CentOS Linux") 28 | return 29 | ;; 30 | "Amazon Linux") 31 | return 32 | ;; 33 | esac 34 | ;; 35 | 18|20) 36 | sudo apt-get -y update 37 | ;; 38 | *) 39 | exit 1 40 | ;; 41 | esac 42 | } 43 | 44 | download_openblas() { 45 | echo "zzz *** $(date) *** Downloading source code ${OPENBLAS_SRC}" 46 | if [ -f ${OPENBLAS_SRC} ] 47 | then 48 | return 49 | else 50 | curl --retry 3 -JLOk https://github.com/OpenMathLib/OpenBLAS/archive/refs/tags/v${OPENBLAS_VERSION}.tar.gz 51 | return $? 52 | fi 53 | } 54 | 55 | install_openblas() 56 | { 57 | sudo rm -rf "${OPENBLAS_SRC%.tar.gz}" 58 | tar xf "${OPENBLAS_SRC}" 59 | cd "${OPENBLAS_SRC%.tar.gz}" 60 | mkdir -p build 61 | cd build 62 | cmake .. -DCMAKE_INSTALL_PREFIX=${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI} -DBUILD_SHARED_LIBS=ON && \ 63 | cmake --build . -j $(nproc) && \ 64 | sudo --preserve-env=PATH,LD_LIBRARY_PATH,CC,CXX,F77,FC,AR,RANLIB env cmake --install . && \ 65 | cd ../.. && \ 66 | sudo rm -rf "${OPENBLAS_SRC%.tar.gz}" || exit 1 67 | } 68 | 69 | update_openblas_version() 70 | { 71 | MODULE_VERSION=${OPENBLAS_VERSION} 72 | } 73 | -------------------------------------------------------------------------------- /modules/openssl.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # SPDX-License-Identifier: MIT 3 | # Copyright (C) 2024 by Amazon.com, Inc. or its affiliates. All Rights Reserved. 4 | 5 | #OPENSSL_VERSION=git 6 | OPENSSL_VERSION=${2:-3.2.1} 7 | DISABLE_COMPILER_ENV=false 8 | 9 | OPENSSL_SRC="openssl-openssl-${OPENSSL_VERSION}.tar.gz" 10 | 11 | install_sys_dependency_for_openssl() 12 | { 13 | # packages for build openssl 14 | case ${S_VERSION_ID} in 15 | 7) 16 | case "${S_NAME}" in 17 | "Alibaba Cloud Linux (Aliyun Linux)"|"Oracle Linux Server"|"Red Hat Enterprise Linux Server"|"CentOS Linux") 18 | sudo yum -y install perl-IPC-Cmd 19 | return 20 | ;; 21 | "Amazon Linux") 22 | sudo yum -y install perl-IPC-Cmd 23 | return 24 | ;; 25 | esac 26 | ;; 27 | 8) 28 | case "${S_NAME}" in 29 | "Alibaba Cloud Linux"|"Oracle Linux Server"|"Red Hat Enterprise Linux Server"|"CentOS Linux") 30 | sudo dnf -y install perl-IPC-Cmd 31 | return 32 | ;; 33 | "Amazon Linux") 34 | sudo dnf -y install perl-IPC-Cmd 35 | return 36 | ;; 37 | esac 38 | ;; 39 | 18|20) 40 | return 41 | ;; 42 | *) 43 | exit 1 44 | ;; 45 | esac 46 | } 47 | 48 | download_openssl() { 49 | echo "zzz *** $(date) *** Downloading source code ${OPENSSL_SRC}" 50 | if [ "${OPENSSL_VERSION}" == "git" ] 51 | then 52 | git clone https://github.com/openssl/openssl.git 53 | return $? 54 | else 55 | if [ -f ${OPENSSL_SRC} ] 56 | then 57 | return 58 | else 59 | curl --retry 3 -JLOk "https://github.com/openssl/openssl/archive/refs/tags/openssl-${OPENSSL_VERSION}.tar.gz" 60 | return $? 61 | fi 62 | fi 63 | } 64 | 65 | install_openssl() 66 | { 67 | echo "zzz *** $(date) *** Build openssl-${OPENSSL_VERSION}" 68 | if [ "${OPENSSL_VERSION}" == "git" ] 69 | then 70 | mv openssl openssl-${OPENSSL_VERSION} 71 | else 72 | sudo rm -rf ${OPENSSL_SRC%.tar.gz} 73 | tar xf ${OPENSSL_SRC} 74 | fi 75 | 76 | cd ${OPENSSL_SRC%.tar.gz} 77 | 78 | if [ -f ../../patch/openssl/openssl-${OPENSSL_VERSION}.patch ] 79 | then 80 | patch -Np1 < ../../patch/openssl/openssl-${OPENSSL_VERSION}.patch 81 | fi 82 | 83 | ./Configure --prefix=${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI} 84 | make && \ 85 | sudo --preserve-env=PATH,LD_LIBRARY_PATH,CC,CXX,F77,FC,AR,RANLIB env make install && \ 86 | cd .. && \ 87 | sudo rm -rf ${OPENSSL_SRC%.tar.gz} || exit 1 88 | 89 | } 90 | 91 | update_openssl_version() 92 | { 93 | MODULE_VERSION=${OPENSSL_VERSION} 94 | } 95 | -------------------------------------------------------------------------------- /modules/osu.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # SPDX-License-Identifier: MIT 3 | # Copyright (C) 2022 by Amazon.com, Inc. or its affiliates. All Rights Reserved. 4 | 5 | OSU_VERSION=${2:-6.1} 6 | OSU_SRC=osu-micro-benchmarks-${OSU_VERSION}.tar.gz 7 | DISABLE_COMPILER_ENV=false 8 | 9 | install_sys_dependency_for_osu() 10 | { 11 | return 12 | } 13 | 14 | download_osu() 15 | { 16 | echo "zzz *** $(date) *** Downloading source code ${OSU_SRC}" 17 | if [ -f ${OSU_SRC} ] 18 | then 19 | return 20 | else 21 | curl --retry 3 -JLOk https://mvapich.cse.ohio-state.edu/download/mvapich/${OSU_SRC} 22 | return $? 23 | fi 24 | } 25 | 26 | install_osu() 27 | { 28 | sudo rm -rf ${OSU_SRC%.tar.gz} 29 | tar xf ${OSU_SRC} 30 | cd ${OSU_SRC%.tar.gz} 31 | if [ -f ../../patch/osu/osu-${OSU_VERSION}-return-value.patch ] 32 | then 33 | patch -Np1 < ../../patch/osu/osu-${OSU_VERSION}-return-value.patch 34 | fi 35 | ./configure CC=mpicc CXX=mpicxx 36 | make && \ 37 | cd .. && \ 38 | sudo mv "${OSU_SRC%.tar.gz}" "${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI}/" || exit 1 39 | } 40 | 41 | update_osu_version() 42 | { 43 | MODULE_VERSION=${OSU_VERSION} 44 | } 45 | -------------------------------------------------------------------------------- /modules/pnetcdf.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # SPDX-License-Identifier: MIT 3 | # Copyright (C) 2022 by Amazon.com, Inc. or its affiliates. All Rights Reserved. 4 | 5 | PNETCDF_VERSION=${2:-1.12.3} 6 | PNETCDF_SRC="pnetcdf-${PNETCDF_VERSION}.tar.gz" 7 | DISABLE_COMPILER_ENV=true 8 | 9 | install_sys_dependency_for_pnetcdf() 10 | { 11 | case ${S_VERSION_ID} in 12 | 7) 13 | sudo yum -y update 14 | case "${S_NAME}" in 15 | "Alibaba Cloud Linux (Aliyun Linux)"|"Oracle Linux Server"|"Red Hat Enterprise Linux Server"|"CentOS Linux") 16 | return 17 | ;; 18 | "Amazon Linux") 19 | return 20 | ;; 21 | esac 22 | ;; 23 | 8) 24 | sudo $(dnf check-release-update 2>&1 | grep "dnf update --releasever" | tail -n1) -y 2> /dev/null 25 | sudo dnf -y update 26 | case "${S_NAME}" in 27 | "Alibaba Cloud Linux"|"Oracle Linux Server"|"Red Hat Enterprise Linux Server"|"CentOS Linux") 28 | return 29 | ;; 30 | "Amazon Linux") 31 | return 32 | ;; 33 | esac 34 | ;; 35 | 18|20) 36 | sudo apt-get -y update 37 | ;; 38 | *) 39 | exit 1 40 | ;; 41 | esac 42 | } 43 | 44 | download_pnetcdf() { 45 | echo "zzz *** $(date) *** Downloading source code ${PNETCDF_SRC}" 46 | if [ -f ${PNETCDF_SRC} ] 47 | then 48 | return 49 | else 50 | curl --retry 3 -JLOk "https://parallel-netcdf.github.io/Release/${PNETCDF_SRC}" 51 | return $? 52 | fi 53 | } 54 | 55 | 56 | install_pnetcdf() 57 | { 58 | sudo rm -rf "${PNETCDF_SRC%.tar.gz}" 59 | tar xf "${PNETCDF_SRC}" 60 | cd "${PNETCDF_SRC%.tar.gz}" 61 | mkdir -p build 62 | cd build 63 | # pnetcdf has to disable compiler env 64 | # pnetcdf 要设置mpicc等,或者取消掉CC 等环境变量设置 65 | #configure: error: 66 | #----------------------------------------------------------------------- 67 | # Invalid MPI compiler specified or detected: "/fsx/wrf-aarch64/opt/arm-linux-compiler-22.1_Generic-AArch64_RHEL-7_aarch64-linux/bin/armclang" 68 | # A working MPI C compiler is required. Please specify the location 69 | # of one either in the MPICC environment variable (not CC variable) or 70 | # through --with-mpi configure flag. Abort. 71 | #----------------------------------------------------------------------- 72 | #--build=${HPC_TARGET} \ 73 | #--host=${HPC_TARGET} \ 74 | #--target=${HPC_TARGET} \ 75 | ../configure --prefix=${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI} \ 76 | --enable-fortran \ 77 | --enable-shared && fix_clang_ld 78 | make && \ 79 | sudo --preserve-env=PATH,LD_LIBRARY_PATH,CC,CXX,F77,FC,AR,RANLIB env make install && \ 80 | cd ../.. && \ 81 | sudo rm -rf "${PNETCDF_SRC%.tar.gz}" || exit 1 82 | } 83 | 84 | update_pnetcdf_version() 85 | { 86 | MODULE_VERSION=${PNETCDF_VERSION} 87 | } 88 | -------------------------------------------------------------------------------- /modules/proj.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # SPDX-License-Identifier: MIT 3 | # Copyright (C) 2024 by Amazon.com, Inc. or its affiliates. All Rights Reserved. 4 | 5 | #PROJ_VERSION=git 6 | PROJ_VERSION=${2:-9.4.0} 7 | DISABLE_COMPILER_ENV=false 8 | 9 | PROJ_SRC="PROJ-${PROJ_VERSION}.tar.gz" 10 | 11 | install_sys_dependency_for_proj() 12 | { 13 | # packages for build proj 14 | case ${S_VERSION_ID} in 15 | 7) 16 | sudo yum -y install libtiff-devel 17 | return 18 | case "${S_NAME}" in 19 | "Alibaba Cloud Linux (Aliyun Linux)"|"Oracle Linux Server"|"Red Hat Enterprise Linux Server"|"CentOS Linux") 20 | return 21 | ;; 22 | "Amazon Linux") 23 | return 24 | ;; 25 | esac 26 | ;; 27 | 8) 28 | sudo dnf -y install libtiff-devel 29 | return 30 | case "${S_NAME}" in 31 | "Alibaba Cloud Linux"|"Oracle Linux Server"|"Red Hat Enterprise Linux Server"|"CentOS Linux") 32 | return 33 | ;; 34 | "Amazon Linux") 35 | return 36 | ;; 37 | esac 38 | ;; 39 | 18|20) 40 | sudo apt-get -y install libtiff-dev 41 | return 42 | ;; 43 | *) 44 | exit 1 45 | ;; 46 | esac 47 | } 48 | 49 | download_proj() { 50 | echo "zzz *** $(date) *** Downloading source code ${PROJ_SRC}" 51 | if [ "${PROJ_VERSION}" == "git" ] 52 | then 53 | git clone https://github.com/OSGeo/PROJ.git 54 | return $? 55 | else 56 | if [ -f ${PROJ_SRC} ] 57 | then 58 | return 59 | else 60 | curl --retry 3 -JLOk "https://github.com/OSGeo/PROJ/archive/refs/tags/${PROJ_VERSION}.tar.gz" 61 | return $? 62 | fi 63 | fi 64 | } 65 | 66 | install_proj() 67 | { 68 | echo "zzz *** $(date) *** Build proj-${PROJ_VERSION}" 69 | if [ "${PROJ_VERSION}" == "git" ] 70 | then 71 | mv PROJ PROJ-${PROJ_VERSION} 72 | else 73 | sudo rm -rf ${PROJ_SRC%.tar.gz} 74 | tar xf ${PROJ_SRC} 75 | fi 76 | 77 | cd ${PROJ_SRC%.tar.gz} 78 | 79 | if [ -f ../../patch/proj/proj-${PROJ_VERSION}.patch ] 80 | then 81 | patch -Np1 < ../../patch/proj/proj-${PROJ_VERSION}.patch 82 | fi 83 | 84 | mkdir build 85 | cd build 86 | 87 | cmake .. -Wno-dev \ 88 | -DCMAKE_INSTALL_PREFIX=${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI} \ 89 | -DCMAKE_PREFIX_PATH=${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI} \ 90 | -DCMAKE_INSTALL_LIBDIR=${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI}/lib && \ 91 | cmake --build . -j $(nproc) && \ 92 | sudo --preserve-env=PATH,LD_LIBRARY_PATH,CC,CXX,F77,FC,AR,RANLIB env cmake --install . && \ 93 | cd ../.. && \ 94 | sudo rm -rf ${PROJ_SRC%.tar.gz} || exit 1 95 | } 96 | 97 | update_proj_version() 98 | { 99 | MODULE_VERSION=${PROJ_VERSION} 100 | } 101 | -------------------------------------------------------------------------------- /modules/python.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # SPDX-License-Identifier: MIT 3 | # Copyright (C) 2024 by Amazon.com, Inc. or its affiliates. All Rights Reserved. 4 | 5 | #PYTHON_VERSION=git 6 | PYTHON_VERSION=${2:-3.11.9} 7 | DISABLE_COMPILER_ENV=false 8 | 9 | PYTHON_SRC="Python-${PYTHON_VERSION}.tgz" 10 | 11 | install_sys_dependency_for_python() 12 | { 13 | # packages for build python 14 | case ${S_VERSION_ID} in 15 | 7) 16 | return 17 | case "${S_NAME}" in 18 | "Alibaba Cloud Linux (Aliyun Linux)"|"Oracle Linux Server"|"Red Hat Enterprise Linux Server"|"CentOS Linux") 19 | return 20 | ;; 21 | "Amazon Linux") 22 | return 23 | ;; 24 | esac 25 | ;; 26 | 8) 27 | return 28 | case "${S_NAME}" in 29 | "Alibaba Cloud Linux"|"Oracle Linux Server"|"Red Hat Enterprise Linux Server"|"CentOS Linux") 30 | return 31 | ;; 32 | "Amazon Linux") 33 | return 34 | ;; 35 | esac 36 | ;; 37 | 18|20) 38 | return 39 | ;; 40 | *) 41 | exit 1 42 | ;; 43 | esac 44 | } 45 | 46 | download_python() { 47 | echo "zzz *** $(date) *** Downloading source code ${PYTHON_SRC}" 48 | if [ "${PYTHON_VERSION}" == "git" ] 49 | then 50 | git clone https://github.com/python/python.git 51 | return $? 52 | else 53 | if [ -f ${PYTHON_SRC} ] 54 | then 55 | return 56 | else 57 | curl --retry 3 -JLOk "https://www.python.org/ftp/python/${PYTHON_VERSION}/${PYTHON_SRC}" 58 | return $? 59 | fi 60 | fi 61 | } 62 | 63 | install_python() 64 | { 65 | echo "zzz *** $(date) *** Build python-${PYTHON_VERSION}" 66 | if [ "${PYTHON_VERSION}" == "git" ] 67 | then 68 | mv python python-${PYTHON_VERSION} 69 | else 70 | sudo rm -rf ${PYTHON_SRC%.tgz} 71 | tar xf ${PYTHON_SRC} 72 | fi 73 | 74 | cd ${PYTHON_SRC%.tgz} 75 | 76 | if [ -f ../../patch/python/python-${PYTHON_VERSION}.patch ] 77 | then 78 | patch -Np1 < ../../patch/python/python-${PYTHON_VERSION}.patch 79 | fi 80 | 81 | ./configure --prefix=${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI} --enable-optimizations 82 | make && \ 83 | sudo --preserve-env=PATH,LD_LIBRARY_PATH,CC,CXX,F77,FC,AR,RANLIB env make install && \ 84 | cd .. && \ 85 | sudo rm -rf ${PYTHON_SRC%.tgz} || exit 1 86 | 87 | } 88 | 89 | update_python_version() 90 | { 91 | MODULE_VERSION=${PYTHON_VERSION} 92 | } 93 | -------------------------------------------------------------------------------- /modules/qd.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # SPDX-License-Identifier: MIT 3 | # Copyright (C) 2022 by Amazon.com, Inc. or its affiliates. All Rights Reserved. 4 | 5 | QD_VERSION=${2:-2.3.23} 6 | QD_SRC=qd-${QD_VERSION}.tar.gz 7 | DISABLE_COMPILER_ENV=false 8 | 9 | install_sys_dependency_for_qd() 10 | { 11 | return 12 | } 13 | 14 | download_qd() 15 | { 16 | echo "zzz *** $(date) *** Downloading source code ${QD_SRC}" 17 | if [ -f ${QD_SRC} ] 18 | then 19 | return 20 | else 21 | curl --retry 3 -JLOk https://www.davidhbailey.com/dhbsoftware/${QD_SRC} 22 | return $? 23 | fi 24 | } 25 | 26 | install_qd() 27 | { 28 | sudo rm -rf ${QD_SRC%.tar.gz} 29 | tar xf ${QD_SRC} 30 | cd ${QD_SRC%.tar.gz} 31 | ./configure --prefix=${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI} 32 | make && \ 33 | sudo --preserve-env=PATH,LD_LIBRARY_PATH,CC,CXX,F77,FC,AR,RANLIB env make install && \ 34 | cd .. && \ 35 | sudo rm -rf ${QD_SRC%.tar.gz} || exit 1 36 | } 37 | 38 | update_qd_version() 39 | { 40 | MODULE_VERSION=${QD_VERSION} 41 | } 42 | -------------------------------------------------------------------------------- /modules/scalapack.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # SPDX-License-Identifier: MIT 3 | # Copyright (C) 2022 by Amazon.com, Inc. or its affiliates. All Rights Reserved. 4 | 5 | SCALAPACK_VERSION=${2:-2.2.1} 6 | SCALAPACK_SRC="scalapack-${SCALAPACK_VERSION}.tar.gz" 7 | DISABLE_COMPILER_ENV=false 8 | 9 | install_sys_dependency_for_scalapack() 10 | { 11 | case ${S_VERSION_ID} in 12 | 7) 13 | sudo yum -y update 14 | case "${S_NAME}" in 15 | "Alibaba Cloud Linux (Aliyun Linux)"|"Oracle Linux Server"|"Red Hat Enterprise Linux Server"|"CentOS Linux") 16 | return 17 | ;; 18 | "Amazon Linux") 19 | return 20 | ;; 21 | esac 22 | ;; 23 | 8) 24 | sudo $(dnf check-release-update 2>&1 | grep "dnf update --releasever" | tail -n1) -y 2> /dev/null 25 | sudo dnf -y update 26 | case "${S_NAME}" in 27 | "Alibaba Cloud Linux"|"Oracle Linux Server"|"Red Hat Enterprise Linux Server"|"CentOS Linux") 28 | return 29 | ;; 30 | "Amazon Linux") 31 | return 32 | ;; 33 | esac 34 | ;; 35 | 18|20) 36 | sudo apt-get -y update 37 | ;; 38 | *) 39 | exit 1 40 | ;; 41 | esac 42 | } 43 | 44 | download_scalapack() { 45 | echo "zzz *** $(date) *** Downloading source code ${SCALAPACK_SRC}" 46 | if [ -f ${SCALAPACK_SRC} ] 47 | then 48 | return 49 | else 50 | curl --retry 3 -JLOk "https://github.com/Reference-ScaLAPACK/scalapack/archive/refs/tags/v${SCALAPACK_VERSION}.tar.gz" 51 | return $? 52 | fi 53 | } 54 | 55 | install_scalapack() 56 | { 57 | sudo rm -rf "${SCALAPACK_SRC%.tar.gz}" 58 | tar xf "${SCALAPACK_SRC}" 59 | cd "${SCALAPACK_SRC%.tar.gz}" 60 | mkdir -p build 61 | cd build 62 | if [ "${HPC_COMPILER}" == "armgcc" ] 63 | then 64 | CC=mpicc FC=mpif90 cmake3 .. -DMPIEXEC=mpirun -DCMAKE_INSTALL_PREFIX=${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI} -DBUILD_SHARED_LIBS=ON -DCMAKE_Fortran_FLAGS="-fallow-argument-mismatch -fallow-invalid-boz" -DLAPACK_LIBRARIES=${ARMPL_DIR}/lib/libarmpl.so -DBLAS_LIBRARIES=${ARMPL_DIR}/lib/libarmpl.so 65 | elif [ "${HPC_COMPILER}" == "armclang" ] 66 | then 67 | CC=mpicc FC=mpif90 cmake3 .. -DMPIEXEC=mpirun -DCMAKE_INSTALL_PREFIX=${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI} -DBUILD_SHARED_LIBS=ON -DLAPACK_LIBRARIES=${ARMPL_DIR}/lib/libarmpl.so -DBLAS_LIBRARIES=${ARMPL_DIR}/lib/libarmpl.so 68 | else 69 | echo "Not supported compiler" 70 | exit 1 71 | fi 72 | make && \ 73 | sudo --preserve-env=PATH,LD_LIBRARY_PATH,CC,CXX,F77,FC,AR,RANLIB env make install && \ 74 | cd ../.. && \ 75 | sudo rm -rf "${SCALAPACK_SRC%.tar.gz}" || exit 1 76 | } 77 | 78 | update_scalapack_version() 79 | { 80 | MODULE_VERSION=${SCALAPACK_VERSION} 81 | } 82 | -------------------------------------------------------------------------------- /modules/scotch.sh: -------------------------------------------------------------------------------- 1 | #o!/bin/bash 2 | # SPDX-License-Identifier: MIT 3 | # Copyright (C) 2024 by Amazon.com, Inc. or its affiliates. All Rights Reserved. 4 | 5 | #SCOTCH_VERSION=git 6 | SCOTCH_VERSION=${2:-7.0.4} 7 | DISABLE_COMPILER_ENV=false 8 | 9 | SCOTCH_SRC="scotch-${SCOTCH_VERSION}.tar.gz" 10 | 11 | install_sys_dependency_for_scotch() 12 | { 13 | # packages for build scotch 14 | case ${S_VERSION_ID} in 15 | 7) 16 | sudo yum -y install libtiff-devel 17 | return 18 | case "${S_NAME}" in 19 | "Alibaba Cloud Linux (Aliyun Linux)"|"Oracle Linux Server"|"Red Hat Enterprise Linux Server"|"CentOS Linux") 20 | return 21 | ;; 22 | "Amazon Linux") 23 | return 24 | ;; 25 | esac 26 | ;; 27 | 8) 28 | sudo dnf -y install libtiff-devel 29 | return 30 | case "${S_NAME}" in 31 | "Alibaba Cloud Linux"|"Oracle Linux Server"|"Red Hat Enterprise Linux Server"|"CentOS Linux") 32 | return 33 | ;; 34 | "Amazon Linux") 35 | return 36 | ;; 37 | esac 38 | ;; 39 | 18|20) 40 | sudo apt-get -y install libtiff-dev 41 | return 42 | ;; 43 | *) 44 | exit 1 45 | ;; 46 | esac 47 | } 48 | 49 | download_scotch() { 50 | echo "zzz *** $(date) *** Downloading source code ${SCOTCH_SRC}" 51 | if [ "${SCOTCH_VERSION}" == "git" ] 52 | then 53 | git clone https://github.com/live-clones/scotch.git 54 | return $? 55 | else 56 | if [ -f ${SCOTCH_SRC} ] 57 | then 58 | return 59 | else 60 | curl --retry 3 -JLOk "https://github.com/live-clones/scotch/archive/refs/tags/v${SCOTCH_VERSION}.tar.gz" 61 | return $? 62 | fi 63 | fi 64 | } 65 | 66 | install_scotch() 67 | { 68 | echo "zzz *** $(date) *** Build scotch-${SCOTCH_VERSION}" 69 | if [ "${SCOTCH_VERSION}" == "git" ] 70 | then 71 | mv scotch scotch-${SCOTCH_VERSION} 72 | else 73 | sudo rm -rf ${SCOTCH_SRC%.tar.gz} 74 | tar xf ${SCOTCH_SRC} 75 | fi 76 | 77 | cd ${SCOTCH_SRC%.tar.gz} 78 | 79 | if [ -f ../../patch/scotch/scotch-${SCOTCH_VERSION}.patch ] 80 | then 81 | patch -Np1 < ../../patch/scotch/scotch-${SCOTCH_VERSION}.patch 82 | fi 83 | 84 | mkdir build 85 | cd build 86 | 87 | cmake .. -DCMAKE_INSTALL_PREFIX=${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI} \ 88 | -DCMAKE_PREFIX_PATH=${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI} \ 89 | -DCMAKE_INSTALL_LIBDIR=${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI}/lib \ 90 | -DBUILD_SHARED_LIBS=ON \ 91 | -DCMAKE_BUILD_TYPE=Release && \ 92 | cmake --build . -j $(nproc) && \ 93 | sudo --preserve-env=PATH,LD_LIBRARY_PATH,CC,CXX,F77,FC,AR,RANLIB env cmake --install . && \ 94 | cd ../.. && \ 95 | sudo rm -rf ${SCOTCH_SRC%.tar.gz} || exit 1 96 | } 97 | 98 | update_scotch_version() 99 | { 100 | MODULE_VERSION=${SCOTCH_VERSION} 101 | } 102 | -------------------------------------------------------------------------------- /modules/sqlite.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # SPDX-License-Identifier: MIT 3 | # Copyright (C) 2024 by Amazon.com, Inc. or its affiliates. All Rights Reserved. 4 | 5 | #SQLITE_VERSION=git 6 | SQLITE_VERSION=${2:-3.45.2} 7 | DISABLE_COMPILER_ENV=false 8 | 9 | SQLITE_SRC="sqlite-version-${SQLITE_VERSION}.tar.gz" 10 | 11 | install_sys_dependency_for_sqlite() 12 | { 13 | # packages for build sqlite 14 | case ${S_VERSION_ID} in 15 | 7) 16 | return 17 | case "${S_NAME}" in 18 | "Alibaba Cloud Linux (Aliyun Linux)"|"Oracle Linux Server"|"Red Hat Enterprise Linux Server"|"CentOS Linux") 19 | return 20 | ;; 21 | "Amazon Linux") 22 | return 23 | ;; 24 | esac 25 | ;; 26 | 8) 27 | return 28 | case "${S_NAME}" in 29 | "Alibaba Cloud Linux"|"Oracle Linux Server"|"Red Hat Enterprise Linux Server"|"CentOS Linux") 30 | return 31 | ;; 32 | "Amazon Linux") 33 | return 34 | ;; 35 | esac 36 | ;; 37 | 18|20) 38 | return 39 | ;; 40 | *) 41 | exit 1 42 | ;; 43 | esac 44 | } 45 | 46 | download_sqlite() { 47 | echo "zzz *** $(date) *** Downloading source code ${SQLITE_SRC}" 48 | if [ "${SQLITE_VERSION}" == "git" ] 49 | then 50 | git clone https://github.com/sqlite/sqlite.git 51 | return $? 52 | else 53 | if [ -f ${SQLITE_SRC} ] 54 | then 55 | return 56 | else 57 | curl --retry 3 -JLOk "https://github.com/sqlite/sqlite/archive/refs/tags/version-${SQLITE_VERSION}.tar.gz" 58 | return $? 59 | fi 60 | fi 61 | } 62 | 63 | install_sqlite() 64 | { 65 | echo "zzz *** $(date) *** Build sqlite-${SQLITE_VERSION}" 66 | if [ "${SQLITE_VERSION}" == "git" ] 67 | then 68 | mv sqlite sqlite-${SQLITE_VERSION} 69 | else 70 | sudo rm -rf ${SQLITE_SRC%.tar.gz} 71 | tar xf ${SQLITE_SRC} 72 | fi 73 | 74 | cd ${SQLITE_SRC%.tar.gz} 75 | 76 | if [ -f ../../patch/sqlite/sqlite-${SQLITE_VERSION}.patch ] 77 | then 78 | patch -Np1 < ../../patch/sqlite/sqlite-${SQLITE_VERSION}.patch 79 | fi 80 | 81 | ./configure --prefix=${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI} \ 82 | --libdir=${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI}/lib 83 | make && \ 84 | sudo --preserve-env=PATH,LD_LIBRARY_PATH,CC,CXX,F77,FC,AR,RANLIB env make install && \ 85 | cd .. && \ 86 | sudo rm -rf ${SQLITE_SRC%.tar.gz} || exit 1 87 | 88 | } 89 | 90 | update_sqlite_version() 91 | { 92 | MODULE_VERSION=${SQLITE_VERSION} 93 | } 94 | -------------------------------------------------------------------------------- /modules/vasp.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | VASP_VERSION=${2:-6.3.0} 4 | VASP_SRC=vasp.${VASP_VERSION}.tgz 5 | DISABLE_COMPILER_ENV=false 6 | 7 | install_sys_dependency_for_vasp() 8 | { 9 | # packages for build vasp 10 | case ${S_VERSION_ID} in 11 | 7) 12 | sudo yum -y update 13 | sudo yum -y install rsync 14 | case "${S_NAME}" in 15 | "Alibaba Cloud Linux (Aliyun Linux)"|"Oracle Linux Server"|"Red Hat Enterprise Linux Server"|"CentOS Linux") 16 | return 17 | ;; 18 | "Amazon Linux") 19 | return 20 | ;; 21 | esac 22 | ;; 23 | 8) 24 | sudo $(dnf check-release-update 2>&1 | grep "dnf update --releasever" | tail -n1) -y 2> /dev/null 25 | sudo dnf -y update 26 | sudo dnf -y install rsync 27 | case "${S_NAME}" in 28 | "Alibaba Cloud Linux"|"Oracle Linux Server"|"Red Hat Enterprise Linux Server"|"CentOS Linux") 29 | return 30 | ;; 31 | "Amazon Linux") 32 | return 33 | ;; 34 | esac 35 | ;; 36 | 18|20) 37 | sudo apt-get -y update 38 | sudo apt-get install rsync 39 | ;; 40 | *) 41 | exit 1 42 | ;; 43 | esac 44 | } 45 | 46 | download_vasp() 47 | { 48 | if [ -f ${VASP_SRC} ] 49 | then 50 | return 51 | else 52 | echo "Please put ${VASP_SRC} to $(pwd) and run the installation again" >&2 53 | exit 1 54 | fi 55 | } 56 | 57 | install_vasp() 58 | { 59 | sudo rm -rf ${VASP_SRC%.tgz} 60 | tar xf ${VASP_SRC} 61 | cd ${VASP_SRC%.tgz} 62 | cp ../../patch/vasp/makefile.include.${SARCH}.${HPC_COMPILER} makefile.include 63 | make && \ 64 | cd .. && \ 65 | sudo mv "${VASP_SRC%.tgz}" "${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI}/" && \ 66 | sudo rm -rf ${VASP_SRC%.tgz} || exit 1 67 | } 68 | 69 | update_vasp_version() 70 | { 71 | MODULE_VERSION=${VASP_VERSION} 72 | } 73 | -------------------------------------------------------------------------------- /modules/wgrib2.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # SPDX-License-Identifier: MIT 3 | # Copyright (C) 2022 by Amazon.com, Inc. or its affiliates. All Rights Reserved. 4 | 5 | WGRIB2_VERSION=${2:-3.1.2} 6 | WGRIB2_SRC="wgrib2.tgz.v${WGRIB2_VERSION}" 7 | DISABLE_COMPILER_ENV=false 8 | 9 | install_sys_dependency_for_wgrib2() 10 | { 11 | case ${S_VERSION_ID} in 12 | 7) 13 | sudo yum -y update 14 | case "${S_NAME}" in 15 | "Alibaba Cloud Linux (Aliyun Linux)"|"Oracle Linux Server"|"Red Hat Enterprise Linux Server"|"CentOS Linux") 16 | sudo yum -y install tmux git 17 | ;; 18 | "Amazon Linux") 19 | sudo yum -y install tmux git 20 | ;; 21 | esac 22 | ;; 23 | 8) 24 | sudo $(dnf check-release-update 2>&1 | grep "dnf update --releasever" | tail -n1) -y 2> /dev/null 25 | sudo dnf -y update 26 | sudo dnf -y install tmux git 27 | case "${S_NAME}" in 28 | "Alibaba Cloud Linux"|"Oracle Linux Server"|"Red Hat Enterprise Linux Server"|"CentOS Linux") 29 | return 30 | ;; 31 | "Amazon Linux") 32 | return 33 | ;; 34 | esac 35 | ;; 36 | 18|20) 37 | sudo apt-get -y update 38 | sudo apt-get -y install tmux git 39 | ;; 40 | *) 41 | exit 1 42 | ;; 43 | esac 44 | } 45 | 46 | download_wgrib2() 47 | { 48 | if [ -f ${WGRIB2_SRC} ] 49 | then 50 | return 51 | else 52 | curl --retry 3 -JLOk https://www.ftp.cpc.ncep.noaa.gov/wd51we/wgrib2/${WGRIB2_SRC} 53 | return $? 54 | fi 55 | } 56 | 57 | 58 | patch_wgrib2() 59 | { 60 | if [ -f ../../patch/wgrib2/wgrib2-$(arch)-${HPC_COMPILER}.patch ] 61 | then 62 | patch -Np1 < ../../patch/wgrib2/wgrib2-$(arch)-${HPC_COMPILER}.patch 63 | fi 64 | } 65 | 66 | install_wgrib2() 67 | { 68 | echo "zzz *** $(date) *** Build wgrib2-${WGRIB2_VERSION}" 69 | sudo rm -rf grib2 70 | tar xf "${WGRIB2_SRC}" 71 | cd grib2 72 | patch_wgrib2 73 | 74 | unset MAKEFLAGS 75 | 76 | export BUILD=$(arch)-unknown-linux-gnu 77 | export NETCDF_INCLUDES=${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI}/include 78 | export NETCDF_LIBRARIES=${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI}/lib 79 | export HDF5_INCLUDES=${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI}/include 80 | export HDF5_LIBRARIES=${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI}/lib 81 | 82 | make && \ 83 | sudo cp wgrib2/wgrib2 ${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI}/bin && \ 84 | cd .. && \ 85 | sudo rm -rf grib2 || exit 1 86 | } 87 | 88 | update_wgrib2_version() 89 | { 90 | MODULE_VERSION=${WGRIB2_VERSION} 91 | } 92 | -------------------------------------------------------------------------------- /modules/zlib.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # SPDX-License-Identifier: MIT 3 | # Copyright (C) 2024 by Amazon.com, Inc. or its affiliates. All Rights Reserved. 4 | 5 | #ZLIB_VERSION=${2:-git} 6 | ZLIB_VERSION=${2:-2.1.6} 7 | DISABLE_COMPILER_ENV=false 8 | 9 | ZLIB_SRC="zlib-ng-${ZLIB_VERSION}.tar.gz" 10 | 11 | install_sys_dependency_for_zlib() 12 | { 13 | # packages for build zlib 14 | case ${S_VERSION_ID} in 15 | 7) 16 | return 17 | case "${S_NAME}" in 18 | "Alibaba Cloud Linux (Aliyun Linux)"|"Oracle Linux Server"|"Red Hat Enterprise Linux Server"|"CentOS Linux") 19 | return 20 | ;; 21 | "Amazon Linux") 22 | return 23 | ;; 24 | esac 25 | ;; 26 | 8) 27 | return 28 | case "${S_NAME}" in 29 | "Alibaba Cloud Linux"|"Oracle Linux Server"|"Red Hat Enterprise Linux Server"|"CentOS Linux") 30 | return 31 | ;; 32 | "Amazon Linux") 33 | return 34 | ;; 35 | esac 36 | ;; 37 | 18|20) 38 | return 39 | ;; 40 | *) 41 | exit 1 42 | ;; 43 | esac 44 | } 45 | 46 | download_zlib() { 47 | echo "zzz *** $(date) *** Downloading source code ${ZLIB_SRC}" 48 | if [ "${ZLIB_VERSION}" == "git" ] 49 | then 50 | git clone https://github.com/zlib-ng/zlib-ng.git 51 | return $? 52 | else 53 | if [ -f ${ZLIB_SRC} ] 54 | then 55 | return 56 | else 57 | curl --retry 3 -JLOk "https://github.com/zlib-ng/zlib-ng/archive/refs/tags/${ZLIB_VERSION}.tar.gz" 58 | return $? 59 | fi 60 | fi 61 | } 62 | 63 | install_zlib() 64 | { 65 | echo "zzz *** $(date) *** Build zlib-ng-${ZLIB_VERSION}" 66 | if [ "${ZLIB_VERSION}" == "git" ] 67 | then 68 | mv zlib-ng zlib-ng-${ZLIB_VERSION} 69 | else 70 | sudo rm -rf ${ZLIB_SRC%.tar.gz} 71 | tar xf ${ZLIB_SRC} 72 | fi 73 | 74 | cd ${ZLIB_SRC%.tar.gz} 75 | 76 | if [ -f ../../patch/zlib/zlib-${ZLIB_VERSION}.patch ] 77 | then 78 | patch -Np1 < ../../patch/zlib/zlib-${ZLIB_VERSION}.patch 79 | fi 80 | 81 | ./configure --prefix=${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI} --zlib-compat 82 | make && \ 83 | sudo --preserve-env=PATH,LD_LIBRARY_PATH,CC,CXX,F77,FC,AR,RANLIB env make install && \ 84 | cd .. && \ 85 | sudo rm -rf ${ZLIB_SRC%.tar.gz} || exit 1 86 | 87 | } 88 | 89 | update_zlib_version() 90 | { 91 | MODULE_VERSION=${ZLIB_VERSION} 92 | } 93 | -------------------------------------------------------------------------------- /patch/aocl/fix_aocl.py: -------------------------------------------------------------------------------- 1 | #!/bin/python3 2 | # SPDX-License-Identifier: MIT 3 | # Copyright (C) 2023 by Amazon.com, Inc. or its affiliates. All Rights Reserved. 4 | 5 | import lief 6 | import argparse 7 | 8 | parser = argparse.ArgumentParser(description='This program fix AOCL could not find GLIBC_2.27 on Amazon Linux') 9 | parser.add_argument('-p', '--prefix', type=str, help='prefix name(default: /fsx/amd64)', default='/fsx/amd64') 10 | parser.add_argument('-a', '--aversion', type=str, help='aocl version', default='4.1.0') 11 | args = parser.parse_args() 12 | 13 | binary = lief.parse(args.prefix + '/opt/' + args.aversion + '/aocc/lib/libscalapack.so') 14 | 15 | glibc_aux = None 16 | 17 | for b in binary.imported_symbols: 18 | if b.name == 'printf': 19 | glibcsym = b 20 | break 21 | 22 | glibc_aux = glibcsym.symbol_version.symbol_version_auxiliary 23 | 24 | bin_aux = {} 25 | 26 | funcs = ['expf', 'logf', 'powf'] 27 | 28 | for func in funcs: 29 | for i in binary.imported_symbols: 30 | if i.name == func: 31 | bin_aux[i.name] = i.symbol_version.symbol_version_auxiliary 32 | break 33 | 34 | # 复制 GLIBC_X.X.X 记录 name 和 hash 至 expf, logf, powf 记录对应字段中。 35 | if glibc_aux: 36 | for k in funcs: 37 | bin_aux[k].name = glibc_aux.name 38 | bin_aux[k].hash = glibc_aux.hash 39 | 40 | binary.add_library('libm.so.6') # 相当于 patchelf --add-needed libm.so.6 41 | binary.write('libscalapack.so') 42 | -------------------------------------------------------------------------------- /patch/backup/WRF-3.x-amd64-clang.patch.orig-toolchain: -------------------------------------------------------------------------------- 1 | diff -urN WRF-3.x.orig/arch/configure_new.defaults WRF-3.x/arch/configure_new.defaults 2 | --- WRF-3.x.orig/arch/configure_new.defaults 2017-08-17 01:21:45.000000000 +0000 3 | +++ WRF-3.x/arch/configure_new.defaults 2022-09-30 14:36:43.227894203 +0000 4 | @@ -756,18 +756,18 @@ 5 | CC_TOOLS = $(SCC) 6 | 7 | ########################################################### 8 | -#ARCH Linux x86_64 ppc64le, gfortran compiler with gcc #serial smpar dmpar dm+sm 9 | +#ARCH Linux x86_64 ppc64le, gfortran compiler with clang #serial smpar dmpar dm+sm 10 | # 11 | -DESCRIPTION = GNU ($SFC/$SCC) 12 | +DESCRIPTION = BSD ($SFC/$SCC) 13 | DMPARALLEL = # 1 14 | OMPCPP = # -D_OPENMP 15 | OMP = # -fopenmp 16 | OMPCC = # -fopenmp 17 | -SFC = gfortran 18 | -SCC = gcc 19 | -CCOMP = gcc 20 | +SFC = flang 21 | +SCC = clang 22 | +CCOMP = clang 23 | DM_FC = mpif90 -f90=$(SFC) 24 | -DM_CC = mpicc -cc=$(SCC) 25 | +DM_CC = mpicc -cc=$(SCC) -DMPI2_SUPPORT 26 | FC = CONFIGURE_FC 27 | CC = CONFIGURE_CC 28 | LD = $(FC) 29 | -------------------------------------------------------------------------------- /patch/backup/WRF-4.z-aarch64-Graviton2.patch: -------------------------------------------------------------------------------- 1 | diff --color -urN WRF-4.z.orig/arch/configure.defaults WRF-4.z/arch/configure.defaults 2 | --- WRF-4.z.orig/arch/configure.defaults 2021-01-16 01:21:58.000000000 +0800 3 | +++ WRF-4.z/arch/configure.defaults 2022-09-20 23:42:57.282260800 +0800 4 | @@ -66,7 +66,7 @@ 5 | LDFLAGS_LOCAL = 6 | CPLUSPLUSLIB = 7 | ESMF_LDFLAG = $(CPLUSPLUSLIB) 8 | -FCOPTIM = -O2 -ftree-vectorize -funroll-loops 9 | +FCOPTIM = -Ofast -march=armv8.2-a+fp16+rcpc+dotprod -funroll-loops -fno-expensive-optimizations -fno-reciprocal-math -fsigned-zeros -fno-unsafe-math-optimizations 10 | FCREDUCEDOPT = $(FCOPTIM) 11 | FCNOOPT = -O0 12 | FCDEBUG = # -g $(FCNOOPT) # -fbacktrace -ggdb -fcheck=bounds,do,mem,pointer -ffpe-trap=invalid,zero,overflow 13 | -------------------------------------------------------------------------------- /patch/backup/WRF-4.z-aarch64-Graviton3.patch: -------------------------------------------------------------------------------- 1 | diff -urN WRF-4.z.orig/arch/configure.defaults WRF-4.z/arch/configure.defaults 2 | --- WRF-4.z.orig/arch/configure.defaults 2021-01-15 17:21:58.000000000 +0000 3 | +++ WRF-4.z/arch/configure.defaults 2022-09-20 07:53:13.049991397 +0000 4 | @@ -66,7 +66,7 @@ 5 | LDFLAGS_LOCAL = 6 | CPLUSPLUSLIB = 7 | ESMF_LDFLAG = $(CPLUSPLUSLIB) 8 | -FCOPTIM = -O2 -ftree-vectorize -funroll-loops 9 | +FCOPTIM = -Ofast -mcpu=native -funroll-loops -fno-expensive-optimizations -fno-reciprocal-math -fsigned-zeros -fno-unsafe-math-optimizations 10 | FCREDUCEDOPT = $(FCOPTIM) 11 | FCNOOPT = -O0 12 | FCDEBUG = # -g $(FCNOOPT) # -fbacktrace -ggdb -fcheck=bounds,do,mem,pointer -ffpe-trap=invalid,zero,overflow 13 | -------------------------------------------------------------------------------- /patch/backup/WRF-git-x86_64.patch: -------------------------------------------------------------------------------- 1 | diff -urN WRF.orig/arch/configure.defaults WRF/arch/configure.defaults 2 | --- WRF.orig/arch/configure.defaults 2022-09-23 12:37:42.557201377 +0000 3 | +++ WRF/arch/configure.defaults 2022-09-23 12:45:39.128887527 +0000 4 | @@ -308,8 +308,8 @@ 5 | SFC = ifort 6 | SCC = icc 7 | CCOMP = icc 8 | -DM_FC = mpiifort 9 | -DM_CC = mpiicc 10 | +DM_FC = mpif90 -f90=$(SFC) 11 | +DM_CC = mpicc 12 | FC = CONFIGURE_FC 13 | CC = CONFIGURE_CC 14 | LD = $(FC) 15 | -------------------------------------------------------------------------------- /patch/lammps/lammps-x86_64-amdclang.patch: -------------------------------------------------------------------------------- 1 | diff -urN lammps.orig/src/image.cpp lammps/src/image.cpp 2 | --- lammps.orig/src/image.cpp 2023-08-26 12:43:08.000000000 +0000 3 | +++ lammps/src/image.cpp 2023-08-26 12:41:29.000000000 +0000 4 | @@ -34,7 +34,7 @@ 5 | 6 | #ifdef LAMMPS_PNG 7 | #include 8 | -#include 9 | +#include 10 | #include 11 | #include "version.h" 12 | #endif 13 | -------------------------------------------------------------------------------- /patch/mt-dgemm/Makefile.armclang: -------------------------------------------------------------------------------- 1 | 2 | CC=armclang 3 | CFLAGS=-O3 -fopenmp -DUSE_CBLAS -I$(ARMPL_DIR)/include -L$(ARMPL_DIR)/lib -larmpl 4 | LDFLAGS= 5 | 6 | mt-dgemm-icc: mt-dgemm.c 7 | $(CC) $(CFLAGS) -o mt-dgemm mt-dgemm.c 8 | 9 | clean: 10 | rm mt-dgemm *.o 11 | -------------------------------------------------------------------------------- /patch/mt-dgemm/Makefile.armgcc: -------------------------------------------------------------------------------- 1 | 2 | CC=gcc 3 | CFLAGS=-O3 -fopenmp -DUSE_CBLAS -I$(ARMPL_DIR)/include -L$(ARMPL_DIR)/lib -larmpl 4 | LDFLAGS= 5 | 6 | mt-dgemm-icc: mt-dgemm.c 7 | $(CC) $(CFLAGS) -o mt-dgemm mt-dgemm.c 8 | 9 | clean: 10 | rm mt-dgemm *.o 11 | -------------------------------------------------------------------------------- /patch/mt-dgemm/Makefile.clang: -------------------------------------------------------------------------------- 1 | 2 | CC=clang 3 | CFLAGS=-ffast-math -mavx2 -ftree-vectorizer-verbose=3 -O3 -fopenmp -DUSE_CBLAS 4 | LDFLAGS=-L${OPENBLAS_ROOT}/lib -lopenblas 5 | 6 | mt-dgemm: mt-dgemm.c 7 | $(CC) $(CFLAGS) -o mt-dgemm mt-dgemm.c 8 | 9 | clean: 10 | rm mt-dgemm *.o 11 | 12 | -------------------------------------------------------------------------------- /patch/mt-dgemm/Makefile.gcc: -------------------------------------------------------------------------------- 1 | 2 | CC=gcc 3 | CFLAGS=-ffast-math -mavx2 -ftree-vectorizer-verbose=3 -O3 -fopenmp -DUSE_CBLAS 4 | LDFLAGS=-L${OPENBLAS_ROOT}/lib -lopenblas 5 | 6 | mt-dgemm: mt-dgemm.c 7 | $(CC) $(CFLAGS) -o mt-dgemm mt-dgemm.c 8 | 9 | clean: 10 | rm mt-dgemm *.o 11 | 12 | -------------------------------------------------------------------------------- /patch/mt-dgemm/Makefile.icc: -------------------------------------------------------------------------------- 1 | 2 | CC=icc 3 | CFLAGS=-O3 -fopenmp -qmkl -DUSE_MKL 4 | LDFLAGS= 5 | 6 | mt-dgemm-icc: mt-dgemm.c 7 | $(CC) $(CFLAGS) -o mt-dgemm mt-dgemm.c 8 | 9 | clean: 10 | rm mt-dgemm *.o 11 | 12 | -------------------------------------------------------------------------------- /patch/mt-dgemm/Makefile.icx: -------------------------------------------------------------------------------- 1 | 2 | CC=icx 3 | CFLAGS=-O3 -fopenmp -qmkl -DUSE_MKL 4 | LDFLAGS= 5 | 6 | mt-dgemm-icc: mt-dgemm.c 7 | $(CC) $(CFLAGS) -o mt-dgemm mt-dgemm.c 8 | 9 | clean: 10 | rm mt-dgemm *.o 11 | 12 | -------------------------------------------------------------------------------- /patch/netcdf-c/netcdf-c-x86_64-amdclang.patch: -------------------------------------------------------------------------------- 1 | diff -urN netcdf-c.orig/plugins/H5Zdeflate.c netcdf-c/plugins/H5Zdeflate.c 2 | --- netcdf-c.orig/plugins/H5Zdeflate.c 2022-06-09 20:51:51.000000000 +0000 3 | +++ netcdf-c/plugins/H5Zdeflate.c 2023-09-06 04:08:49.000000000 +0000 4 | @@ -20,7 +20,7 @@ 5 | #include 6 | #include 7 | #include "netcdf_filter_build.h" 8 | -#include 9 | +#include 10 | 11 | /* Local function prototypes */ 12 | static size_t H5Z__filter_deflate (unsigned flags, size_t cd_nelmts, 13 | -------------------------------------------------------------------------------- /patch/openfoam/OpenFOAM-2006-sha1.patch: -------------------------------------------------------------------------------- 1 | diff -urN OpenFOAM-2006.orig/src/OpenFOAM/db/IOstreams/hashes/OSHA1stream.H OpenFOAM-2006/src/OpenFOAM/db/IOstreams/hashes/OSHA1stream.H 2 | --- OpenFOAM-2006.orig/src/OpenFOAM/db/IOstreams/hashes/OSHA1stream.H 2020-06-29 17:16:22.000000000 +0000 3 | +++ OpenFOAM-2006/src/OpenFOAM/db/IOstreams/hashes/OSHA1stream.H 2024-05-22 06:55:53.000000000 +0000 4 | @@ -32,8 +32,8 @@ 5 | 6 | \*---------------------------------------------------------------------------*/ 7 | 8 | -#ifndef OSHA1stream_H 9 | -#define OSHA1stream_H 10 | +#ifndef Foam_OSHA1stream_H 11 | +#define Foam_OSHA1stream_H 12 | 13 | #include "OSstream.H" 14 | #include "SHA1.H" 15 | @@ -63,10 +63,17 @@ 16 | 17 | protected: 18 | 19 | + //- Handle overflow 20 | + virtual int overflow(int c = EOF) 21 | + { 22 | + if (c != EOF) sha1_.append(c); 23 | + return c; 24 | + } 25 | + 26 | //- Put sequence of characters 27 | virtual std::streamsize xsputn(const char* s, std::streamsize n) 28 | { 29 | - sha1_.append(s, n); 30 | + if (n) sha1_.append(s, n); 31 | return n; 32 | } 33 | 34 | diff -urN OpenFOAM-2006.orig/src/OpenFOAM/primitives/hashes/SHA1/SHA1.H OpenFOAM-2006/src/OpenFOAM/primitives/hashes/SHA1/SHA1.H 35 | --- OpenFOAM-2006.orig/src/OpenFOAM/primitives/hashes/SHA1/SHA1.H 2020-06-29 17:16:22.000000000 +0000 36 | +++ OpenFOAM-2006/src/OpenFOAM/primitives/hashes/SHA1/SHA1.H 2024-05-22 06:54:07.000000000 +0000 37 | @@ -42,8 +42,8 @@ 38 | 39 | \*---------------------------------------------------------------------------*/ 40 | 41 | -#ifndef SHA1_H 42 | -#define SHA1_H 43 | +#ifndef Foam_SHA1_H 44 | +#define Foam_SHA1_H 45 | 46 | #include 47 | #include 48 | @@ -113,6 +113,9 @@ 49 | //- Reset the hashed data before appending more 50 | void clear(); 51 | 52 | + //- Append single character 53 | + inline void append(char c); 54 | + 55 | //- Append data for processing 56 | inline SHA1& append(const char* str); 57 | 58 | diff -urN OpenFOAM-2006.orig/src/OpenFOAM/primitives/hashes/SHA1/SHA1I.H OpenFOAM-2006/src/OpenFOAM/primitives/hashes/SHA1/SHA1I.H 59 | --- OpenFOAM-2006.orig/src/OpenFOAM/primitives/hashes/SHA1/SHA1I.H 2020-06-29 17:16:22.000000000 +0000 60 | +++ OpenFOAM-2006/src/OpenFOAM/primitives/hashes/SHA1/SHA1I.H 2024-05-22 06:54:07.000000000 +0000 61 | @@ -53,6 +53,11 @@ 62 | 63 | // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // 64 | 65 | +inline void Foam::SHA1::append(char c) 66 | +{ 67 | + processBytes(&c, 1); 68 | +} 69 | + 70 | inline Foam::SHA1& Foam::SHA1::append(const char* data, size_t len) 71 | { 72 | processBytes(data, len); 73 | -------------------------------------------------------------------------------- /patch/openfoam/OpenFOAM-2006-sigfpe.patch: -------------------------------------------------------------------------------- 1 | diff -urN OpenFOAM-2006.orig/src/sampling/sampledSurface/sampledSurface/sampledSurface.H OpenFOAM-2006/src/sampling/sampledSurface/sampledSurface/sampledSurface.H 2 | --- OpenFOAM-2006.orig/src/sampling/sampledSurface/sampledSurface/sampledSurface.H 2020-06-29 17:16:22.000000000 +0000 3 | +++ OpenFOAM-2006/src/sampling/sampledSurface/sampledSurface/sampledSurface.H 2024-05-23 01:25:38.000000000 +0000 4 | @@ -275,31 +275,31 @@ 5 | // Access 6 | 7 | //- Access to the underlying mesh 8 | - const polyMesh& mesh() const 9 | + const polyMesh& mesh() const noexcept 10 | { 11 | return mesh_; 12 | } 13 | 14 | //- Name of surface 15 | - const word& name() const 16 | + const word& name() const noexcept 17 | { 18 | return name_; 19 | } 20 | 21 | //- Surface is enabled 22 | - bool enabled() const 23 | + bool enabled() const noexcept 24 | { 25 | return enabled_; 26 | } 27 | 28 | //- Surface is invariant with geometry change (caution) 29 | - bool invariant() const 30 | + bool invariant() const noexcept 31 | { 32 | return invariant_; 33 | } 34 | 35 | //- Interpolation to nodes requested for surface 36 | - bool interpolate() const 37 | + bool interpolate() const noexcept 38 | { 39 | return interpolate_; 40 | } 41 | -------------------------------------------------------------------------------- /patch/openfoam/OpenFOAM-2006.patch: -------------------------------------------------------------------------------- 1 | diff -urN OpenFOAM-2006.orig/modules/avalanche/src/avalanche/gistools/shapefile.H OpenFOAM-2006/modules/avalanche/src/avalanche/gistools/shapefile.H 2 | --- OpenFOAM-2006.orig/modules/avalanche/src/avalanche/gistools/shapefile.H 2020-06-19 11:12:57.000000000 +0000 3 | +++ OpenFOAM-2006/modules/avalanche/src/avalanche/gistools/shapefile.H 2024-05-20 11:29:29.000000000 +0000 4 | @@ -47,6 +47,7 @@ 5 | #define shapefile_H 6 | 7 | #include 8 | +#include 9 | #include 10 | 11 | class shapefile 12 | diff -urN OpenFOAM-2006.orig/src/OpenFOAM/primitives/strings/word/word.C OpenFOAM-2006/src/OpenFOAM/primitives/strings/word/word.C 13 | --- OpenFOAM-2006.orig/src/OpenFOAM/primitives/strings/word/word.C 2020-06-29 17:16:22.000000000 +0000 14 | +++ OpenFOAM-2006/src/OpenFOAM/primitives/strings/word/word.C 2024-05-20 11:28:50.000000000 +0000 15 | @@ -29,6 +29,7 @@ 16 | #include "word.H" 17 | #include "debug.H" 18 | #include 19 | +#include 20 | #include 21 | 22 | // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // 23 | -------------------------------------------------------------------------------- /patch/openfoam/ThirdParty-2006.patch: -------------------------------------------------------------------------------- 1 | diff -urN ThirdParty-v2006.orig/ADIOS2-2.4.0/thirdparty/dill/dill/arm8.c ThirdParty-v2006/ADIOS2-2.4.0/thirdparty/dill/dill/arm8.c 2 | --- ThirdParty-v2006.orig/ADIOS2-2.4.0/thirdparty/dill/dill/arm8.c 2019-06-30 20:01:38.000000000 +0000 3 | +++ ThirdParty-v2006/ADIOS2-2.4.0/thirdparty/dill/dill/arm8.c 2024-05-19 16:30:53.000000000 +0000 4 | @@ -1517,6 +1517,8 @@ 5 | } 6 | } 7 | 8 | +extern void arm8_rt_call_link(char *code, call_t *t); 9 | + 10 | static void 11 | arm8_call_link(dill_stream s) 12 | { 13 | @@ -1539,7 +1541,9 @@ 14 | * Cache flush code grabbed from a Dec 1999 posting on libc-hacker 15 | * mailing list 16 | */ 17 | -extern void __clear_cache(char*, char *); 18 | +#ifndef CLEAR_CACHE_DEFINED 19 | +extern void __clear_cache(void *, void *); 20 | +#endif 21 | 22 | static void 23 | arm8_flush(void *base, void *limit) 24 | diff -urN ThirdParty-v2006.orig/ADIOS2-2.4.0/thirdparty/dill/dill/arm8_rt.c ThirdParty-v2006/ADIOS2-2.4.0/thirdparty/dill/dill/arm8_rt.c 25 | --- ThirdParty-v2006.orig/ADIOS2-2.4.0/thirdparty/dill/dill/arm8_rt.c 2019-06-30 20:01:38.000000000 +0000 26 | +++ ThirdParty-v2006/ADIOS2-2.4.0/thirdparty/dill/dill/arm8_rt.c 2024-05-19 16:30:37.000000000 +0000 27 | @@ -124,7 +124,9 @@ 28 | * Cache flush code grabbed from a Dec 1999 posting on libc-hacker 29 | * mailing list 30 | */ 31 | -extern void __clear_cache(char*, char *); 32 | +#ifndef CLEAR_CACHE_DEFINED 33 | +extern void __clear_cache(void *, void *); 34 | +#endif 35 | 36 | static void 37 | arm8_flush(void *base, void *limit) 38 | -------------------------------------------------------------------------------- /patch/openfoam/c++OptAVX512: -------------------------------------------------------------------------------- 1 | c++DBUG = 2 | c++OPT = -O3 -xCORE-AVX512 3 | -------------------------------------------------------------------------------- /patch/openfoam/c++OptHB: -------------------------------------------------------------------------------- 1 | c++DBUG = 2 | c++OPT = $(HPC_CXXFLAGS) 3 | -------------------------------------------------------------------------------- /patch/openfoam/cOptAVX512: -------------------------------------------------------------------------------- 1 | cDBUG = 2 | cOPT = -O3 -xCORE-AVX512 3 | -------------------------------------------------------------------------------- /patch/openfoam/cOptHB: -------------------------------------------------------------------------------- 1 | cDBUG = 2 | cOPT = $(HPC_CFLAGS) 3 | -------------------------------------------------------------------------------- /patch/osu/osu-6.1-return-value.patch: -------------------------------------------------------------------------------- 1 | diff --color -urN osu-micro-benchmarks-6.1.orig/c/util/osu_util.h osu-micro-benchmarks-6.1/c/util/osu_util.h 2 | --- osu-micro-benchmarks-6.1.orig/c/util/osu_util.h 2022-09-19 21:48:03.000000000 +0800 3 | +++ osu-micro-benchmarks-6.1/c/util/osu_util.h 2022-10-07 23:06:00.159449806 +0800 4 | @@ -367,7 +367,7 @@ 5 | extern int process_one_sided_options (int opt, char *arg); 6 | int process_options (int argc, char *argv[]); 7 | int setAccel(char); 8 | -void omb_ddt_process_options(char *optarg); 9 | +int omb_ddt_process_options(char *optarg); 10 | 11 | /* 12 | * Set Benchmark Properties 13 | diff --color -urN osu-micro-benchmarks-6.1.orig/c/util/osu_util_mpi.c osu-micro-benchmarks-6.1/c/util/osu_util_mpi.c 14 | --- osu-micro-benchmarks-6.1.orig/c/util/osu_util_mpi.c 2022-09-19 21:48:03.000000000 +0800 15 | +++ osu-micro-benchmarks-6.1/c/util/osu_util_mpi.c 2022-10-07 23:09:09.434085734 +0800 16 | @@ -204,7 +204,7 @@ 17 | fflush(stdout); 18 | } 19 | 20 | -void omb_ddt_process_options(char *optarg) 21 | +int omb_ddt_process_options(char *optarg) 22 | { 23 | char *option; 24 | if (NULL == optarg) { 25 | @@ -2006,7 +2006,7 @@ 26 | int displacements[OMB_DDT_INDEXED_MAX_LENGTH] = {0}; 27 | 28 | if (0 == options.omb_enable_ddt) { 29 | - return; 30 | + return 0; 31 | } 32 | switch (options.ddt_type) { 33 | case OMB_DDT_CONTIGUOUS: 34 | -------------------------------------------------------------------------------- /patch/vasp/makefile.include.aarch64.armgcc: -------------------------------------------------------------------------------- 1 | # Default precompiler options 2 | CPP_OPTIONS = -DHOST=\"LinuxGNU\" \ 3 | -DMPI -DMPI_BLOCK=8000 -Duse_collective \ 4 | -DscaLAPACK \ 5 | -DCACHE_SIZE=4000 \ 6 | -Davoidalloc \ 7 | -Dvasp6 \ 8 | -Duse_bse_te \ 9 | -Dtbdyn \ 10 | -Dfock_dblbuf \ 11 | -D_OPENMP 12 | 13 | CPP = gcc -E -C -w $*$(FUFFIX) >$*$(SUFFIX) $(CPP_OPTIONS) 14 | 15 | FC = mpif90 -fopenmp 16 | FCL = mpif90 -fopenmp 17 | 18 | FREE = -ffree-form -ffree-line-length-none 19 | 20 | FFLAGS = -w -ffpe-summary=invalid,zero,overflow 21 | 22 | OFLAG = -O2 23 | OFLAG_IN = $(OFLAG) 24 | DEBUG = -O0 25 | 26 | OBJECTS = fftmpiw.o fftmpi_map.o fftw3d.o fft3dlib.o 27 | OBJECTS_O1 += fftw3d.o fftmpi.o fftmpiw.o 28 | OBJECTS_O2 += fft3dlib.o 29 | 30 | # For what used to be vasp.5.lib 31 | CPP_LIB = $(CPP) 32 | FC_LIB = $(FC) 33 | CC_LIB = gcc 34 | CFLAGS_LIB = -O 35 | FFLAGS_LIB = -O1 36 | FREE_LIB = $(FREE) 37 | 38 | OBJECTS_LIB = linpack_double.o 39 | 40 | # For the parser library 41 | CXX_PARS = g++ 42 | LLIBS = -lstdc++ 43 | 44 | ## 45 | ## Customize as of this point! Of course you may change the preceding 46 | ## part of this file as well if you like, but it should rarely be 47 | ## necessary ... 48 | ## 49 | 50 | # When compiling on the target machine itself, change this to the 51 | # relevant target when cross-compiling for another architecture 52 | FFLAGS += -march=native 53 | 54 | # For gcc-10 and higher (comment out for older versions) 55 | FFLAGS += -fallow-argument-mismatch 56 | 57 | # ARMPL (mandatory) 58 | ARMPL_DIR ?= /path/to/your/amdblis/installation 59 | ARMPL = -L$(ARMPL_DIR)/lib -larmpl -lamath -lastring 60 | 61 | # scaLAPACK (mandatory) 62 | SCALAPACK_ROOT ?= /path/to/your/amdscalapack/installation 63 | SCALAPACK = -L$(HPC_PREFIX)/$(HPC_COMPILER)/lib -lscalapack 64 | 65 | LLIBS += $(SCALAPACK) $(ARMPL) 66 | INCS += -I$(ARMPL_DIR)/include 67 | 68 | # HDF5-support (optional but strongly recommended) 69 | #CPP_OPTIONS+= -DVASP_HDF5 70 | #HDF5_ROOT ?= /path/to/your/hdf5/installation 71 | #LLIBS += -L$(HDF5_ROOT)/lib -lhdf5_fortran 72 | #INCS += -I$(HDF5_ROOT)/include 73 | 74 | # For the VASP-2-Wannier90 interface (optional) 75 | #CPP_OPTIONS += -DVASP2WANNIER90 76 | #WANNIER90_ROOT ?= /path/to/your/wannier90/installation 77 | #LLIBS += -L$(WANNIER90_ROOT)/lib -lwannier 78 | 79 | # For the fftlib library (experimental) 80 | CPP_OPTIONS+= -Dsysv 81 | FCL += fftlib.o 82 | CXX_FFTLIB = g++ -fopenmp -std=c++11 -DFFTLIB_THREADSAFE 83 | INCS_FFTLIB = -I./include -I$(ARMPL_DIR)/include 84 | LIBS += fftlib 85 | LLIBS += -ldl 86 | -------------------------------------------------------------------------------- /patch/vasp/makefile.include.amd64.amdclang: -------------------------------------------------------------------------------- 1 | makefile.include.amd64.clang -------------------------------------------------------------------------------- /patch/vasp/makefile.include.amd64.icc: -------------------------------------------------------------------------------- 1 | # Default precompiler options 2 | CPP_OPTIONS = -DHOST=\"LinuxIFC\" \ 3 | -DMPI -DMPI_BLOCK=8000 -Duse_collective \ 4 | -DscaLAPACK \ 5 | -DCACHE_SIZE=4000 \ 6 | -Davoidalloc \ 7 | -Dvasp6 \ 8 | -Duse_bse_te \ 9 | -Dtbdyn \ 10 | -Dfock_dblbuf \ 11 | -D_OPENMP 12 | 13 | CPP = fpp -f_com=no -free -w0 $*$(FUFFIX) $*$(SUFFIX) $(CPP_OPTIONS) 14 | 15 | FC = mpiifort -qopenmp 16 | FCL = mpiifort 17 | 18 | FREE = -free -names lowercase 19 | 20 | FFLAGS = -assume byterecl -w 21 | 22 | OFLAG = -O3 23 | OFLAG_IN = $(OFLAG) 24 | DEBUG = -O0 25 | 26 | OBJECTS = fftmpiw.o fftmpi_map.o fftw3d.o fft3dlib.o 27 | OBJECTS_O1 += fftw3d.o fftmpi.o fftmpiw.o 28 | OBJECTS_O2 += fft3dlib.o 29 | 30 | # For what used to be vasp.5.lib 31 | CPP_LIB = $(CPP) 32 | FC_LIB = $(FC) 33 | CC_LIB = icc 34 | CFLAGS_LIB = -O 35 | FFLAGS_LIB = -O1 36 | FREE_LIB = $(FREE) 37 | 38 | OBJECTS_LIB = linpack_double.o 39 | 40 | # For the parser library 41 | CXX_PARS = icpc 42 | LLIBS = -lstdc++ 43 | 44 | ## 45 | ## Customize as of this point! Of course you may change the preceding 46 | ## part of this file as well if you like, but it should rarely be 47 | ## necessary ... 48 | ## 49 | 50 | # When compiling on the target machine itself, change this to the 51 | # relevant target when cross-compiling for another architecture 52 | FFLAGS += -mcore-avx2 -Ofast -march=mcore-avx2 -fp-model fast=2 53 | 54 | # Intel MKL (FFTW, BLAS, LAPACK, and scaLAPACK) 55 | # (Note: for Intel Parallel Studio's MKL use -mkl instead of -qmkl) 56 | FCL += -qmkl 57 | MKLROOT ?= /path/to/your/mkl/installation 58 | LLIBS += -L$(MKLROOT)/lib/intel64 -lmkl_scalapack_lp64 -lmkl_blacs_intelmpi_lp64 59 | INCS =-I$(MKLROOT)/include/fftw 60 | 61 | # HDF5-support (optional but strongly recommended) 62 | #CPP_OPTIONS+= -DVASP_HDF5 63 | #HDF5_ROOT ?= /path/to/your/hdf5/installation 64 | #LLIBS += -L$(HDF5_ROOT)/lib -lhdf5_fortran 65 | #INCS += -I$(HDF5_ROOT)/include 66 | 67 | # For the VASP-2-Wannier90 interface (optional) 68 | #CPP_OPTIONS += -DVASP2WANNIER90 69 | #WANNIER90_ROOT ?= /path/to/your/wannier90/installation 70 | #LLIBS += -L$(WANNIER90_ROOT)/lib -lwannier 71 | 72 | # For the fftlib library (experimental) 73 | FCL = mpiifort fftlib.o -qmkl 74 | CXX_FFTLIB = icpc -qopenmp -std=c++11 -DFFTLIB_USE_MKL -DFFTLIB_THREADSAFE 75 | INCS_FFTLIB = -I./include -I$(MKLROOT)/include/fftw 76 | LIBS += fftlib 77 | -------------------------------------------------------------------------------- /patch/vasp/makefile.include.x86_64.amdclang: -------------------------------------------------------------------------------- 1 | makefile.include.x86_64.clang -------------------------------------------------------------------------------- /patch/vasp/makefile.include.x86_64.icc: -------------------------------------------------------------------------------- 1 | # Default precompiler options 2 | CPP_OPTIONS = -DHOST=\"LinuxIFC\" \ 3 | -DMPI -DMPI_BLOCK=8000 -Duse_collective \ 4 | -DscaLAPACK \ 5 | -DCACHE_SIZE=4000 \ 6 | -Davoidalloc \ 7 | -Dvasp6 \ 8 | -Duse_bse_te \ 9 | -Dtbdyn \ 10 | -Dfock_dblbuf \ 11 | -D_OPENMP 12 | 13 | CPP = fpp -f_com=no -free -w0 $*$(FUFFIX) $*$(SUFFIX) $(CPP_OPTIONS) 14 | 15 | FC = mpiifort -qopenmp 16 | FCL = mpiifort 17 | 18 | FREE = -free -names lowercase 19 | 20 | FFLAGS = -assume byterecl -w 21 | 22 | OFLAG = -O3 23 | OFLAG_IN = $(OFLAG) 24 | DEBUG = -O0 25 | 26 | OBJECTS = fftmpiw.o fftmpi_map.o fftw3d.o fft3dlib.o 27 | OBJECTS_O1 += fftw3d.o fftmpi.o fftmpiw.o 28 | OBJECTS_O2 += fft3dlib.o 29 | 30 | # For what used to be vasp.5.lib 31 | CPP_LIB = $(CPP) 32 | FC_LIB = $(FC) 33 | CC_LIB = icc 34 | CFLAGS_LIB = -O 35 | FFLAGS_LIB = -O1 36 | FREE_LIB = $(FREE) 37 | 38 | OBJECTS_LIB = linpack_double.o 39 | 40 | # For the parser library 41 | CXX_PARS = icpc 42 | LLIBS = -lstdc++ 43 | 44 | ## 45 | ## Customize as of this point! Of course you may change the preceding 46 | ## part of this file as well if you like, but it should rarely be 47 | ## necessary ... 48 | ## 49 | 50 | # When compiling on the target machine itself, change this to the 51 | # relevant target when cross-compiling for another architecture 52 | FFLAGS += -xHOST -march=icelake-server -fma 53 | 54 | # Intel MKL (FFTW, BLAS, LAPACK, and scaLAPACK) 55 | # (Note: for Intel Parallel Studio's MKL use -mkl instead of -qmkl) 56 | FCL += -qmkl 57 | MKLROOT ?= /path/to/your/mkl/installation 58 | LLIBS += -L$(MKLROOT)/lib/intel64 -lmkl_scalapack_lp64 -lmkl_blacs_intelmpi_lp64 59 | INCS =-I$(MKLROOT)/include/fftw 60 | 61 | # HDF5-support (optional but strongly recommended) 62 | #CPP_OPTIONS+= -DVASP_HDF5 63 | #HDF5_ROOT ?= /path/to/your/hdf5/installation 64 | #LLIBS += -L$(HDF5_ROOT)/lib -lhdf5_fortran 65 | #INCS += -I$(HDF5_ROOT)/include 66 | 67 | # For the VASP-2-Wannier90 interface (optional) 68 | #CPP_OPTIONS += -DVASP2WANNIER90 69 | #WANNIER90_ROOT ?= /path/to/your/wannier90/installation 70 | #LLIBS += -L$(WANNIER90_ROOT)/lib -lwannier 71 | 72 | # For the fftlib library (experimental) 73 | FCL = mpiifort fftlib.o -qmkl 74 | CXX_FFTLIB = icpc -qopenmp -std=c++11 -DFFTLIB_USE_MKL -DFFTLIB_THREADSAFE 75 | INCS_FFTLIB = -I./include -I$(MKLROOT)/include/fftw 76 | LIBS += fftlib 77 | -------------------------------------------------------------------------------- /patch/wgrib2/wgrib2-aarch64-armclang.patch: -------------------------------------------------------------------------------- 1 | diff -urN grib2.orig/makefile grib2/makefile 2 | --- grib2.orig/makefile 2023-02-08 15:26:44.000000000 +0000 3 | +++ grib2/makefile 2023-03-08 05:09:43.980334346 +0000 4 | @@ -164,15 +164,15 @@ 5 | # if USE_NETCDF3=1, then USE_NETCDF4 must 0 6 | # 7 | # USE_NETCDF3=0 8 | -USE_NETCDF3=1 9 | +USE_NETCDF3=0 10 | # 11 | -USE_NETCDF4=0 12 | +#USE_NETCDF4=system 13 | # USE_NETCDF4=compile 14 | # USE_NETCDF4=system 15 | -#USE_NETCDF4=${NETCDF_INCLUDES}:${NETCDF_LIBRARIES} 16 | +USE_NETCDF4=${NETCDF_INCLUDES}:${NETCDF_LIBRARIES} 17 | # USE_HDF5 is only active if USE_NETCDF4 != 0 18 | #USE_HDF5=0 19 | -USE_HDF5=compile 20 | +USE_HDF5=${HDF5_INCLUDES}:${HDF5_LIBRARIES} 21 | #USE_HDF5=system 22 | #USE_HDF5=${HDF5_INCLUDES}:${HDF5_LIBRARIES} 23 | USE_REGEX=1 24 | @@ -541,7 +541,7 @@ 25 | hdf5CFLAGS+=-O2 26 | ifeq ($(need_ftn),1) 27 | wCPPFLAGS+=-DFLANG 28 | - wLDFLAGS+=-lflang -lflangrti -lpgmath 29 | + wLDFLAGS+=-lflang -lflangrti -armpl -lamath -lm -lastring 30 | wFFLAGS+=-c -O3 -ffast-math 31 | # wFFLAGS+=-march=znver3 32 | FTN_REAL8:="-r8" 33 | @@ -968,7 +968,7 @@ 34 | rm tmpj.tar 35 | 36 | ${jlib}: ${jasperdir} ${zlib} 37 | - cd ${jasperdir} && export CC=${CCjasper} && export CFLAGS=${PIC_option} && ./configure --without-x --disable-libjpeg --disable-opengl --prefix=${cwd} && ${MAKE} -j 1 check install 38 | + cd ${jasperdir} && export CC=${CCjasper} && export CFLAGS=${PIC_option} && ./configure --build=${BUILD} --without-x --disable-libjpeg --disable-opengl --prefix=${cwd} && ${MAKE} -j 1 check install 39 | 40 | ${openjpegdir}: 41 | cp ${ojsrc} tmpoj.tar.gz 42 | @@ -1038,7 +1038,7 @@ 43 | gunzip -f tmpproj4.tar.gz 44 | tar -xvf tmpproj4.tar 45 | rm tmpproj4.tar 46 | - cd ${proj4dir} && export CFLAGS="${wCPPFLAGS}" && ./configure --disable-shared --prefix=${cwd} && ${MAKE} -j 1 check install 47 | + cd ${proj4dir} && export CFLAGS="${wCPPFLAGS}" && ./configure --build=${BUILD} --disable-shared --prefix=${cwd} && ${MAKE} -j 1 check install 48 | 49 | ${netcdf3dir}: 50 | cp ${netcdf3src} tmpn.tar.gz 51 | -------------------------------------------------------------------------------- /patch/wgrib2/wgrib2-aarch64-armgcc.patch: -------------------------------------------------------------------------------- 1 | diff -urN grib2.orig/makefile grib2/makefile 2 | --- grib2.orig/makefile 2023-02-08 15:26:44.000000000 +0000 3 | +++ grib2/makefile 2023-03-08 05:09:43.980334346 +0000 4 | @@ -164,15 +164,15 @@ 5 | # if USE_NETCDF3=1, then USE_NETCDF4 must 0 6 | # 7 | # USE_NETCDF3=0 8 | -USE_NETCDF3=1 9 | +USE_NETCDF3=0 10 | # 11 | -USE_NETCDF4=0 12 | +#USE_NETCDF4=system 13 | # USE_NETCDF4=compile 14 | # USE_NETCDF4=system 15 | -#USE_NETCDF4=${NETCDF_INCLUDES}:${NETCDF_LIBRARIES} 16 | +USE_NETCDF4=${NETCDF_INCLUDES}:${NETCDF_LIBRARIES} 17 | # USE_HDF5 is only active if USE_NETCDF4 != 0 18 | #USE_HDF5=0 19 | -USE_HDF5=compile 20 | +USE_HDF5=${HDF5_INCLUDES}:${HDF5_LIBRARIES} 21 | #USE_HDF5=system 22 | #USE_HDF5=${HDF5_INCLUDES}:${HDF5_LIBRARIES} 23 | USE_REGEX=1 24 | @@ -541,7 +541,7 @@ 25 | hdf5CFLAGS+=-O2 26 | ifeq ($(need_ftn),1) 27 | wCPPFLAGS+=-DFLANG 28 | - wLDFLAGS+=-lflang -lflangrti -lpgmath 29 | + wLDFLAGS+=-lflang -lflangrti 30 | wFFLAGS+=-c -O3 -ffast-math 31 | # wFFLAGS+=-march=znver3 32 | FTN_REAL8:="-r8" 33 | @@ -968,7 +968,7 @@ 34 | rm tmpj.tar 35 | 36 | ${jlib}: ${jasperdir} ${zlib} 37 | - cd ${jasperdir} && export CC=${CCjasper} && export CFLAGS=${PIC_option} && ./configure --without-x --disable-libjpeg --disable-opengl --prefix=${cwd} && ${MAKE} -j 1 check install 38 | + cd ${jasperdir} && export CC=${CCjasper} && export CFLAGS=${PIC_option} && ./configure --build=${BUILD} --without-x --disable-libjpeg --disable-opengl --prefix=${cwd} && ${MAKE} -j 1 check install 39 | 40 | ${openjpegdir}: 41 | cp ${ojsrc} tmpoj.tar.gz 42 | @@ -1038,7 +1038,7 @@ 43 | gunzip -f tmpproj4.tar.gz 44 | tar -xvf tmpproj4.tar 45 | rm tmpproj4.tar 46 | - cd ${proj4dir} && export CFLAGS="${wCPPFLAGS}" && ./configure --disable-shared --prefix=${cwd} && ${MAKE} -j 1 check install 47 | + cd ${proj4dir} && export CFLAGS="${wCPPFLAGS}" && ./configure --build=${BUILD} --disable-shared --prefix=${cwd} && ${MAKE} -j 1 install 48 | 49 | ${netcdf3dir}: 50 | cp ${netcdf3src} tmpn.tar.gz 51 | -------------------------------------------------------------------------------- /patch/wgrib2/wgrib2-aarch64-gcc.patch: -------------------------------------------------------------------------------- 1 | diff -urN grib2.orig/makefile grib2/makefile 2 | --- grib2.orig/makefile 2023-02-08 15:26:44.000000000 +0000 3 | +++ grib2/makefile 2023-03-08 05:09:43.980334346 +0000 4 | @@ -164,15 +164,15 @@ 5 | # if USE_NETCDF3=1, then USE_NETCDF4 must 0 6 | # 7 | # USE_NETCDF3=0 8 | -USE_NETCDF3=1 9 | +USE_NETCDF3=0 10 | # 11 | -USE_NETCDF4=0 12 | +#USE_NETCDF4=system 13 | # USE_NETCDF4=compile 14 | # USE_NETCDF4=system 15 | -#USE_NETCDF4=${NETCDF_INCLUDES}:${NETCDF_LIBRARIES} 16 | +USE_NETCDF4=${NETCDF_INCLUDES}:${NETCDF_LIBRARIES} 17 | # USE_HDF5 is only active if USE_NETCDF4 != 0 18 | #USE_HDF5=0 19 | -USE_HDF5=compile 20 | +USE_HDF5=${HDF5_INCLUDES}:${HDF5_LIBRARIES} 21 | #USE_HDF5=system 22 | #USE_HDF5=${HDF5_INCLUDES}:${HDF5_LIBRARIES} 23 | USE_REGEX=1 24 | @@ -541,7 +541,7 @@ 25 | hdf5CFLAGS+=-O2 26 | ifeq ($(need_ftn),1) 27 | wCPPFLAGS+=-DFLANG 28 | - wLDFLAGS+=-lflang -lflangrti -lpgmath 29 | + wLDFLAGS+=-lflang -lflangrti 30 | wFFLAGS+=-c -O3 -ffast-math 31 | # wFFLAGS+=-march=znver3 32 | FTN_REAL8:="-r8" 33 | @@ -968,7 +968,7 @@ 34 | rm tmpj.tar 35 | 36 | ${jlib}: ${jasperdir} ${zlib} 37 | - cd ${jasperdir} && export CC=${CCjasper} && export CFLAGS=${PIC_option} && ./configure --without-x --disable-libjpeg --disable-opengl --prefix=${cwd} && ${MAKE} -j 1 check install 38 | + cd ${jasperdir} && export CC=${CCjasper} && export CFLAGS=${PIC_option} && ./configure --build=${BUILD} --without-x --disable-libjpeg --disable-opengl --prefix=${cwd} && ${MAKE} -j 1 check install 39 | 40 | ${openjpegdir}: 41 | cp ${ojsrc} tmpoj.tar.gz 42 | @@ -1038,7 +1038,7 @@ 43 | gunzip -f tmpproj4.tar.gz 44 | tar -xvf tmpproj4.tar 45 | rm tmpproj4.tar 46 | - cd ${proj4dir} && export CFLAGS="${wCPPFLAGS}" && ./configure --disable-shared --prefix=${cwd} && ${MAKE} -j 1 check install 47 | + cd ${proj4dir} && export CFLAGS="${wCPPFLAGS}" && ./configure --build=${BUILD} --disable-shared --prefix=${cwd} && ${MAKE} -j 1 install 48 | 49 | ${netcdf3dir}: 50 | cp ${netcdf3src} tmpn.tar.gz 51 | -------------------------------------------------------------------------------- /patch/wps/WPS-4.x-gfortran.patch: -------------------------------------------------------------------------------- 1 | diff --color -urN WPS-4.x.orig/configure WPS-4.x/configure 2 | --- WPS-4.x.orig/configure 2020-04-24 03:31:06.000000000 +0800 3 | +++ WPS-4.x/configure 2022-10-06 22:10:06.947284399 +0800 4 | @@ -431,3 +431,39 @@ 5 | 6 | fi 7 | fi 8 | + 9 | +# 10 | +# Check for newer GNU Fortran compilers that require the use of the following: 11 | +# -fallow-argument-mismatch 12 | +# 13 | +cat > gnu_flag_test.F90 << EOF 14 | +program gnu_flag_test 15 | +#ifdef __GNUC__ 16 | +#if __GNUC__ > 9 17 | +call exit(1) ! A GNU extension, but at this point we know this is a GNU compiler 18 | +#endif 19 | +#endif 20 | +end program gnu_flag_test 21 | +EOF 22 | + 23 | +# The above test program gives exit status 1 iff we are using the GNU Fortran 24 | +# compiler with a major version greater than 9 25 | + 26 | +FC=`grep ^SFC configure.wps | cut -d"=" -f2-` 27 | +FFLAGS=`grep ^FFLAGS configure.wps | cut -d"=" -f2-` 28 | +$FC ${FFLAGS} gnu_flag_test.F90 -o gnu_flag_test > /dev/null 2>&1 29 | +if [ -f ./gnu_flag_test ]; then 30 | + ./gnu_flag_test > /dev/null 2>&1 31 | + if [ $? -eq 1 ]; then 32 | + compat="-fallow-argument-mismatch -fallow-invalid-boz" 33 | + fi 34 | + rm gnu_flag_test 35 | +else 36 | + printf "*** Failed to compile the gnu_flag_test program!\n" 37 | + printf " This may be because the selected build option does not work correctly.\n" 38 | +fi 39 | +rm gnu_flag_test.F90 40 | + 41 | +sed "s/CONFIGURE_COMPAT_FLAGS/${compat}/" configure.wps > configure.wps.tmp 42 | +mv configure.wps.tmp configure.wps 43 | + 44 | -------------------------------------------------------------------------------- /patch/wps/WPS-4.x-x86_64-icc-intelmpi.patch: -------------------------------------------------------------------------------- 1 | --- WPS.orig/arch/preamble 2022-06-16 00:53:18.391528778 +0000 2 | +++ WPS/arch/preamble 2022-06-16 00:47:20.897496965 +0000 3 | @@ -15,7 +15,7 @@ 4 | 5 | SHELL = /bin/sh 6 | 7 | -NCARG_LIBS = -L$(NCARG_ROOT)/lib -lncarg -lncarg_gks -lncarg_c \ 8 | +NCARG_LIBS = -L$(NCARG_ROOT)/lib -L$(NCARG_ROOT)/lib64 -lncarg -lncarg_gks -lncarg_c \ 9 | -lX11 -lXext -lpng -lz -lcairo -lfontconfig -lpixman-1 \ 10 | -lfreetype -lexpat -lpthread -lbz2 -lXrender -lgfortran -lgcc 11 | 12 | @@ -45,7 +45,7 @@ 13 | -L$(WRF_DIR)/external/io_grib_share -lio_grib_share \ 14 | -L$(WRF_DIR)/external/io_int -lwrfio_int \ 15 | -L$(WRF_DIR)/external/io_netcdf -lwrfio_nf \ 16 | - -L$(NETCDF)/lib CONFIGURE_NETCDFF_LIB -lnetcdf 17 | + -L$(NETCDF)/lib -L$(NETCDF)/lib64 CONFIGURE_NETCDFF_LIB -lnetcdf -lnetcdff -liomp5 18 | 19 | #### Architecture specific settings #### 20 | -------------------------------------------------------------------------------- /patch/wps/WPS-4.z-x86_64-icc-intelmpi.patch: -------------------------------------------------------------------------------- 1 | diff -urN WPS-4.z.orig/arch/preamble WPS-4.z/arch/preamble 2 | --- WPS-4.z.orig/arch/preamble 2020-04-23 19:31:06.000000000 +0000 3 | +++ WPS-4.z/arch/preamble 2023-04-13 11:05:19.000000000 +0000 4 | @@ -15,7 +15,7 @@ 5 | 6 | SHELL = /bin/sh 7 | 8 | -NCARG_LIBS = -L$(NCARG_ROOT)/lib -lncarg -lncarg_gks -lncarg_c \ 9 | +NCARG_LIBS = -L$(NCARG_ROOT)/lib -L$(NCARG_ROOT)/lib64 -lncarg -lncarg_gks -lncarg_c \ 10 | -lX11 -lXext -lpng -lz -lcairo -lfontconfig -lpixman-1 \ 11 | -lfreetype -lexpat -lpthread -lbz2 -lXrender -lgfortran -lgcc 12 | 13 | @@ -45,7 +45,7 @@ 14 | -L$(WRF_DIR)/external/io_grib_share -lio_grib_share \ 15 | -L$(WRF_DIR)/external/io_int -lwrfio_int \ 16 | -L$(WRF_DIR)/external/io_netcdf -lwrfio_nf \ 17 | - -L$(NETCDF)/lib CONFIGURE_NETCDFF_LIB -lnetcdf 18 | + -L$(NETCDF)/lib -L$(NETCDF)/lib64 CONFIGURE_NETCDFF_LIB -lnetcdf -liomp5 19 | 20 | #### Architecture specific settings #### 21 | -------------------------------------------------------------------------------- /patch/wps/WPS-aarch64-armclang-mpich.patch: -------------------------------------------------------------------------------- 1 | WPS-aarch64-armclang-openmpi.patch -------------------------------------------------------------------------------- /patch/wps/WPS-aarch64-armclang-openmpi.patch: -------------------------------------------------------------------------------- 1 | diff -urN WPS.orig/arch/configure.defaults WPS/arch/configure.defaults 2 | --- WPS.orig/arch/configure.defaults 2022-06-16 00:35:48.302096822 +0000 3 | +++ WPS/arch/configure.defaults 2022-06-16 00:42:35.637500599 +0000 4 | @@ -193,6 +193,30 @@ 5 | RANLIB = ranlib 6 | 7 | ######################################################################################################################## 8 | +#ARCH Linux aarch64, flang # serial serial_NO_GRIB2 dmpar dmpar_NO_GRIB2 9 | +# 10 | +COMPRESSION_LIBS = CONFIGURE_COMP_L 11 | +COMPRESSION_INC = CONFIGURE_COMP_I 12 | +FDEFS = CONFIGURE_FDEFS 13 | +SFC = armflang 14 | +SCC = armclang 15 | +DM_FC = mpif90 -fopenmp 16 | +DM_CC = mpicc -fopenmp -Wno-error=incompatible-function-pointer-types -Wno-error=implicit-function-declaration -Wno-error=implicit-int 17 | +FC = CONFIGURE_FC 18 | +CC = CONFIGURE_CC 19 | +LD = $(FC) 20 | +FFLAGS = -ffree-form -O -fconvert=big-endian 21 | +F77FLAGS = -ffixed-form -O -fconvert=big-endian 22 | +FCCOMPAT = CONFIGURE_COMPAT_FLAGS 23 | +FCSUFFIX = 24 | +FNGFLAGS = $(FFLAGS) 25 | +LDFLAGS = 26 | +CFLAGS = 27 | +CPP = cpp -P -traditional 28 | +CPPFLAGS = -D_UNDERSCORE -DBYTESWAP -DLINUX -DIO_NETCDF -DBIT32 -DNO_SIGNAL CONFIGURE_MPI 29 | +RANLIB = armllvm-ranlib 30 | + 31 | +######################################################################################################################## 32 | #ARCH Linux x86_64, PGI compiler # serial serial_NO_GRIB2 dmpar dmpar_NO_GRIB2 33 | # 34 | COMPRESSION_LIBS = CONFIGURE_COMP_L 35 | --- WPS.orig/arch/preamble 2022-06-16 00:53:18.391528778 +0000 36 | +++ WPS/arch/preamble 2022-06-16 00:47:20.897496965 +0000 37 | @@ -15,7 +15,7 @@ 38 | 39 | SHELL = /bin/sh 40 | 41 | -NCARG_LIBS = -L$(NCARG_ROOT)/lib -lncarg -lncarg_gks -lncarg_c \ 42 | +NCARG_LIBS = -L$(NCARG_ROOT)/lib -L$(NCARG_ROOT)/lib64 -lncarg -lncarg_gks -lncarg_c \ 43 | -lX11 -lXext -lpng -lz -lcairo -lfontconfig -lpixman-1 \ 44 | -lfreetype -lexpat -lpthread -lbz2 -lXrender -lgfortran -lgcc 45 | 46 | @@ -45,7 +45,7 @@ 47 | -L$(WRF_DIR)/external/io_grib_share -lio_grib_share \ 48 | -L$(WRF_DIR)/external/io_int -lwrfio_int \ 49 | -L$(WRF_DIR)/external/io_netcdf -lwrfio_nf \ 50 | - -L$(NETCDF)/lib CONFIGURE_NETCDFF_LIB -lnetcdf 51 | + -L$(NETCDF)/lib -L$(NETCDF)/lib64 CONFIGURE_NETCDFF_LIB -lnetcdf -lnetcdff -lgomp 52 | 53 | #### Architecture specific settings #### 54 | -------------------------------------------------------------------------------- /patch/wps/WPS-aarch64-armgcc-mpich.patch: -------------------------------------------------------------------------------- 1 | WPS-aarch64-armgcc-openmpi.patch -------------------------------------------------------------------------------- /patch/wps/WPS-aarch64-armgcc-openmpi.patch: -------------------------------------------------------------------------------- 1 | WPS-aarch64-gcc-openmpi.patch -------------------------------------------------------------------------------- /patch/wps/WPS-aarch64-gcc-mpich.patch: -------------------------------------------------------------------------------- 1 | WPS-aarch64-gcc-openmpi.patch -------------------------------------------------------------------------------- /patch/wps/WPS-aarch64-gcc-openmpi.patch: -------------------------------------------------------------------------------- 1 | diff -urN WPS.orig/arch/configure.defaults WPS/arch/configure.defaults 2 | --- WPS.orig/arch/configure.defaults 2022-06-16 00:35:48.302096822 +0000 3 | +++ WPS/arch/configure.defaults 2022-06-16 00:42:35.637500599 +0000 4 | @@ -193,6 +193,30 @@ 5 | RANLIB = ranlib 6 | 7 | ######################################################################################################################## 8 | +#ARCH Linux aarch64, gfortran # serial serial_NO_GRIB2 dmpar dmpar_NO_GRIB2 9 | +# 10 | +COMPRESSION_LIBS = CONFIGURE_COMP_L 11 | +COMPRESSION_INC = CONFIGURE_COMP_I 12 | +FDEFS = CONFIGURE_FDEFS 13 | +SFC = gfortran 14 | +SCC = gcc 15 | +DM_FC = mpif90 16 | +DM_CC = mpicc 17 | +FC = CONFIGURE_FC 18 | +CC = CONFIGURE_CC 19 | +LD = $(FC) 20 | +FFLAGS = -ffree-form -O -fconvert=big-endian -frecord-marker=4 -fallow-argument-mismatch -fallow-invalid-boz 21 | +F77FLAGS = -ffixed-form -O -fconvert=big-endian -frecord-marker=4 -fallow-argument-mismatch -fallow-invalid-boz 22 | +FCCOMPAT = CONFIGURE_COMPAT_FLAGS 23 | +FCSUFFIX = 24 | +FNGFLAGS = $(FFLAGS) 25 | +LDFLAGS = 26 | +CFLAGS = 27 | +CPP = cpp -P -traditional 28 | +CPPFLAGS = -D_UNDERSCORE -DBYTESWAP -DLINUX -DIO_NETCDF -DBIT32 -DNO_SIGNAL CONFIGURE_MPI 29 | +RANLIB = ranlib 30 | + 31 | +######################################################################################################################## 32 | #ARCH Linux x86_64, PGI compiler # serial serial_NO_GRIB2 dmpar dmpar_NO_GRIB2 33 | # 34 | COMPRESSION_LIBS = CONFIGURE_COMP_L 35 | --- WPS.orig/arch/preamble 2022-06-16 00:53:18.391528778 +0000 36 | +++ WPS/arch/preamble 2022-06-16 00:47:20.897496965 +0000 37 | @@ -15,7 +15,7 @@ 38 | 39 | SHELL = /bin/sh 40 | 41 | -NCARG_LIBS = -L$(NCARG_ROOT)/lib -lncarg -lncarg_gks -lncarg_c \ 42 | +NCARG_LIBS = -L$(NCARG_ROOT)/lib -L$(NCARG_ROOT)/lib64 -lncarg -lncarg_gks -lncarg_c \ 43 | -lX11 -lXext -lpng -lz -lcairo -lfontconfig -lpixman-1 \ 44 | -lfreetype -lexpat -lpthread -lbz2 -lXrender -lgfortran -lgcc 45 | 46 | @@ -45,7 +45,7 @@ 47 | -L$(WRF_DIR)/external/io_grib_share -lio_grib_share \ 48 | -L$(WRF_DIR)/external/io_int -lwrfio_int \ 49 | -L$(WRF_DIR)/external/io_netcdf -lwrfio_nf \ 50 | - -L$(NETCDF)/lib CONFIGURE_NETCDFF_LIB -lnetcdf 51 | + -L$(NETCDF)/lib -L$(NETCDF)/lib64 CONFIGURE_NETCDFF_LIB -lnetcdf -lnetcdff -lgomp -lhdf5_hl -lhdf5 52 | 53 | #### Architecture specific settings #### 54 | -------------------------------------------------------------------------------- /patch/wps/WPS-mismatch-integer-iand.patch: -------------------------------------------------------------------------------- 1 | diff --color -urN WPS-4.x.orig/ungrib/src/ngl/g2/intmath.f WPS-4.x/ungrib/src/ngl/g2/intmath.f 2 | --- WPS-4.x.orig/ungrib/src/ngl/g2/intmath.f 2019-01-26 07:38:00.000000000 +0800 3 | +++ WPS-4.x/ungrib/src/ngl/g2/intmath.f 2022-10-06 23:06:23.206169845 +0800 4 | @@ -169,7 +169,9 @@ 5 | ilog2_2=0 6 | i=i_in 7 | if(i<=0) return 8 | - if(iand(i,i-1)/=0) then 9 | +! WPS modification for the XL compiler 10 | +! if(iand(i,i-1)/=0) then 11 | + if(iand(i,i-1_2)/=0) then 12 | !write(0,*) 'iand i-1' 13 | ilog2_2=1 14 | endif 15 | @@ -204,7 +206,9 @@ 16 | ilog2_1=0 17 | i=i_in 18 | if(i<=0) return 19 | - if(iand(i,i-1)/=0) then 20 | +! WPS modification for the XL compiler 21 | +! if(iand(i,i-1)/=0) then 22 | + if(iand(i,i-1_1)/=0) then 23 | !write(0,*) 'iand i-1' 24 | ilog2_1=1 25 | endif 26 | -------------------------------------------------------------------------------- /patch/wrf/WRF-3.w-aarch64-armclang-mpich.patch: -------------------------------------------------------------------------------- 1 | WRF-3.w-aarch64-armclang-openmpi.patch -------------------------------------------------------------------------------- /patch/wrf/WRF-3.w-aarch64-armclang-openmpi.patch: -------------------------------------------------------------------------------- 1 | diff -urN WRF-3.w.orig/arch/configure_new.defaults WRF-3.w/arch/configure_new.defaults 2 | --- WRF-3.w.orig/arch/configure_new.defaults 2015-06-26 21:59:10.000000000 +0000 3 | +++ WRF-3.w/arch/configure_new.defaults 2023-03-23 07:56:07.000000000 +0000 4 | @@ -42,6 +42,52 @@ 5 | #ranlib 6 | CC_TOOLS = cc 7 | 8 | + 9 | +########################################################### 10 | +#ARCH Linux i486 i586 i686 armv7l aarch64, armflang compiler with armclang #serial smpar dmpar dm+sm 11 | +# 12 | +DESCRIPTION = BSD ($SFC/$SCC) 13 | +DMPARALLEL = # 1 14 | +OMPCPP = # -D_OPENMP 15 | +OMP = # -fopenmp 16 | +OMPCC = # -fopenmp 17 | +SFC = armflang 18 | +SCC = armclang 19 | +CCOMP = armclang 20 | +DM_FC = mpif90 -f90=$(SFC) 21 | +DM_CC = mpicc -cc=$(SCC) -Wno-return-type 22 | +FC = CONFIGURE_FC 23 | +CC = CONFIGURE_CC 24 | +LD = $(FC) 25 | +RWORDSIZE = CONFIGURE_RWORDSIZE 26 | +PROMOTION = #-fdefault-real-8 27 | +ARCH_LOCAL = -DNONSTANDARD_SYSTEM_SUBR -DWRF_USE_CLM 28 | +CFLAGS_LOCAL = -w O3 -c -Wno-implicit-function-declaration -Wno-int-conversion -Wno-implicit-int # -DRSL0_ONLY -I$(ARMPL_INCLUDES_LP64_MP) 29 | +LDFLAGS_LOCAL = -fopenmp -armpl -lamath -lm -lastring 30 | +CPLUSPLUSLIB = 31 | +ESMF_LDFLAG = $(CPLUSPLUSLIB) 32 | +FCOPTIM = -Ofast -mcpu=native -funroll-loops 33 | +FCREDUCEDOPT = $(FCOPTIM) 34 | +FCNOOPT = -O0 35 | +FCDEBUG = # -g $(FCNOOPT) # -fbacktrace -ggdb -fcheck=bounds,do,mem,pointer -ffpe-trap=invalid,zero,overflow 36 | +FORMAT_FIXED = -ffixed-form 37 | +FORMAT_FREE = -ffree-form -ffree-line-length-none 38 | +FCSUFFIX = 39 | +FCCOMPAT = 40 | +BYTESWAPIO = -fconvert=big-endian -frecord-marker=4 41 | +FCBASEOPTS_NO_G = -mcpu=native -w $(FORMAT_FREE) $(BYTESWAPIO) 42 | +FCBASEOPTS = $(OMP) $(FCBASEOPTS_NO_G) $(FCDEBUG) 43 | +MODULE_SRCH_FLAG = 44 | +TRADFLAG = -traditional 45 | +CPP = cpp -P 46 | +AR = armllvm-ar 47 | +ARFLAGS = ru 48 | +M4 = m4 -B 14000 49 | +RANLIB = armllvm-ranlib 50 | +RLFLAGS = 51 | +CC_TOOLS = $(SCC) -Wno-implicit-function-declaration -Wno-int-conversion -Wno-implicit-int 52 | +NETCDFPAR_BUILD = CONFIGURE_NETCDFPAR_BUILD 53 | + 54 | ########################################################### 55 | #ARCH Linux i486 i586 i686, gfortran compiler with gcc #serial smpar dmpar dm+sm 56 | # 57 | -------------------------------------------------------------------------------- /patch/wrf/WRF-3.w-aarch64-armgcc-mpich.patch: -------------------------------------------------------------------------------- 1 | WRF-3.w-aarch64-armgcc-openmpi.patch -------------------------------------------------------------------------------- /patch/wrf/WRF-3.w-aarch64-armgcc-openmpi.patch: -------------------------------------------------------------------------------- 1 | diff -urN WRF-3.w.orig/arch/configure_new.defaults WRF-3.w/arch/configure_new.defaults 2 | --- WRF-3.w.orig/arch/configure_new.defaults 2015-06-27 05:59:10.000000000 +0800 3 | +++ WRF-3.w/arch/configure_new.defaults 2024-04-01 22:56:18.578828129 +0800 4 | @@ -43,7 +43,7 @@ 5 | CC_TOOLS = cc 6 | 7 | ########################################################### 8 | -#ARCH Linux i486 i586 i686, gfortran compiler with gcc #serial smpar dmpar dm+sm 9 | +#ARCH Linux armv7l aarch64, gnu OpenMPI #serial smpar dmpar dm+sm 10 | # 11 | DESCRIPTION = GNU ($SFC/$SCC) 12 | DMPARALLEL = # 1 13 | @@ -62,15 +62,15 @@ 14 | PROMOTION = #-fdefault-real-8 15 | ARCH_LOCAL = -DNONSTANDARD_SYSTEM_SUBR -DWRF_USE_CLM 16 | CFLAGS_LOCAL = -w -O3 -c 17 | -LDFLAGS_LOCAL = 18 | +LDFLAGS_LOCAL = -fopenmp -larmpl_lp64 -lamath -lm -lastring 19 | CPLUSPLUSLIB = 20 | ESMF_LDFLAG = $(CPLUSPLUSLIB) 21 | -FCOPTIM = -O2 -ftree-vectorize -funroll-loops 22 | +FCOPTIM = -Ofast -mcpu=native -ftree-vectorize -funroll-loops -fno-expensive-optimizations -fno-reciprocal-math -fsigned-zeros -fno-unsafe-math-optimizations 23 | FCREDUCEDOPT = $(FCOPTIM) 24 | FCNOOPT = -O0 25 | FCDEBUG = # -g $(FCNOOPT) # -fbacktrace -ggdb -fbounds-check -ffpe-trap=invalid,zero,overflow 26 | -FORMAT_FIXED = -ffixed-form 27 | -FORMAT_FREE = -ffree-form -ffree-line-length-none 28 | +FORMAT_FIXED = -ffixed-form -fallow-argument-mismatch -fallow-invalid-boz 29 | +FORMAT_FREE = -ffree-form -ffree-line-length-none -fallow-argument-mismatch -fallow-invalid-boz 30 | FCSUFFIX = 31 | BYTESWAPIO = -fconvert=big-endian -frecord-marker=4 32 | FCBASEOPTS_NO_G = -w $(FORMAT_FREE) $(BYTESWAPIO) 33 | -------------------------------------------------------------------------------- /patch/wrf/WRF-3.w-aarch64-gcc-mpich.patch: -------------------------------------------------------------------------------- 1 | WRF-3.w-aarch64-gcc-openmpi.patch -------------------------------------------------------------------------------- /patch/wrf/WRF-3.w-aarch64-gcc-openmpi.patch: -------------------------------------------------------------------------------- 1 | diff -urN WRF-3.w.orig/arch/configure_new.defaults WRF-3.w/arch/configure_new.defaults 2 | --- WRF-3.w.orig/arch/configure_new.defaults 2015-06-26 21:59:10.000000000 +0000 3 | +++ WRF-3.w/arch/configure_new.defaults 2023-03-17 12:40:20.000000000 +0000 4 | @@ -43,7 +43,7 @@ 5 | CC_TOOLS = cc 6 | 7 | ########################################################### 8 | -#ARCH Linux i486 i586 i686, gfortran compiler with gcc #serial smpar dmpar dm+sm 9 | +#ARCH Linux armv7l aarch64, gnu OpenMPI #serial smpar dmpar dm+sm 10 | # 11 | DESCRIPTION = GNU ($SFC/$SCC) 12 | DMPARALLEL = # 1 13 | @@ -65,12 +65,12 @@ 14 | LDFLAGS_LOCAL = 15 | CPLUSPLUSLIB = 16 | ESMF_LDFLAG = $(CPLUSPLUSLIB) 17 | -FCOPTIM = -O2 -ftree-vectorize -funroll-loops 18 | +FCOPTIM = -Ofast -mcpu=native -ftree-vectorize -funroll-loops -fallow-argument-mismatch -fallow-invalid-boz 19 | FCREDUCEDOPT = $(FCOPTIM) 20 | FCNOOPT = -O0 21 | FCDEBUG = # -g $(FCNOOPT) # -fbacktrace -ggdb -fbounds-check -ffpe-trap=invalid,zero,overflow 22 | -FORMAT_FIXED = -ffixed-form 23 | -FORMAT_FREE = -ffree-form -ffree-line-length-none 24 | +FORMAT_FIXED = -ffixed-form 25 | +FORMAT_FREE = -ffree-form -ffree-line-length-none -fallow-argument-mismatch -fallow-invalid-boz 26 | FCSUFFIX = 27 | BYTESWAPIO = -fconvert=big-endian -frecord-marker=4 28 | FCBASEOPTS_NO_G = -w $(FORMAT_FREE) $(BYTESWAPIO) 29 | -------------------------------------------------------------------------------- /patch/wrf/WRF-3.w-x86_64-icc-intelmpi.patch: -------------------------------------------------------------------------------- 1 | diff -urN WRF-3.w.orig/arch/configure_new.defaults WRF-3.w/arch/configure_new.defaults 2 | --- WRF-3.w.orig/arch/configure_new.defaults 2015-06-26 21:59:10.000000000 +0000 3 | +++ WRF-3.w/arch/configure_new.defaults 2023-04-13 00:04:21.000000000 +0000 4 | @@ -290,21 +290,21 @@ 5 | DESCRIPTION = INTEL ($SFC/$SCC) 6 | DMPARALLEL = # 1 7 | OMPCPP = # -D_OPENMP 8 | -OMP = # -openmp -fpp -auto 9 | -OMPCC = # -openmp -fpp -auto 10 | +OMP = # -qopenmp -fpp -auto 11 | +OMPCC = # -qopenmp -fpp -auto 12 | SFC = ifort 13 | SCC = icc 14 | CCOMP = icc 15 | -DM_FC = mpif90 -f90=$(SFC) 16 | -DM_CC = mpicc -cc=$(SCC) 17 | +DM_FC = mpiifort 18 | +DM_CC = mpiicc 19 | FC = CONFIGURE_FC 20 | CC = CONFIGURE_CC 21 | LD = $(FC) 22 | RWORDSIZE = CONFIGURE_RWORDSIZE 23 | PROMOTION = -real-size `expr 8 \* $(RWORDSIZE)` -i4 24 | ARCH_LOCAL = -DNONSTANDARD_SYSTEM_FUNC -DWRF_USE_CLM 25 | -CFLAGS_LOCAL = -w -O3 -ip #-xHost -fp-model fast=2 -no-prec-div -no-prec-sqrt -ftz -no-multibyte-chars 26 | -LDFLAGS_LOCAL = -ip #-xHost -fp-model fast=2 -no-prec-div -no-prec-sqrt -ftz -align all -fno-alias -fno-common 27 | +CFLAGS_LOCAL = -w -O3 -ip -xHost -fp-model fast=2 -no-prec-div -no-prec-sqrt -ftz -no-multibyte-chars 28 | +LDFLAGS_LOCAL = -ip -xHost -fp-model fast=2 -no-prec-div -no-prec-sqrt -ftz -align all -fno-alias -fno-common 29 | CPLUSPLUSLIB = 30 | ESMF_LDFLAG = $(CPLUSPLUSLIB) 31 | FCOPTIM = -O3 32 | @@ -315,7 +315,7 @@ 33 | FORMAT_FREE = -FR 34 | FCSUFFIX = 35 | BYTESWAPIO = -convert big_endian 36 | -FCBASEOPTS_NO_G = -ip -fp-model precise -w -ftz -align all -fno-alias $(FORMAT_FREE) $(BYTESWAPIO) #-xHost -fp-model fast=2 -no-heap-arrays -no-prec-div -no-prec-sqrt -fno-common 37 | +FCBASEOPTS_NO_G = -ip -fp-model fast=2 -w -ftz -align all -fno-alias $(FORMAT_FREE) $(BYTESWAPIO) #-xHost -fp-model fast=2 -no-heap-arrays -no-prec-div -no-prec-sqrt -fno-common 38 | FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG) 39 | MODULE_SRCH_FLAG = 40 | TRADFLAG = -traditional 41 | -------------------------------------------------------------------------------- /patch/wrf/WRF-3.x-aarch64-armclang-mpich.patch: -------------------------------------------------------------------------------- 1 | WRF-3.x-aarch64-armclang-openmpi.patch -------------------------------------------------------------------------------- /patch/wrf/WRF-3.x-aarch64-armgcc-mpich.patch: -------------------------------------------------------------------------------- 1 | WRF-3.x-aarch64-armgcc-openmpi.patch -------------------------------------------------------------------------------- /patch/wrf/WRF-3.x-aarch64-gcc-mpich.patch: -------------------------------------------------------------------------------- 1 | WRF-3.x-aarch64-gcc-openmpi.patch -------------------------------------------------------------------------------- /patch/wrf/WRF-3.x-x86_64-clang-mpich.patch: -------------------------------------------------------------------------------- 1 | WRF-3.x-x86_64-clang-openmpi.patch -------------------------------------------------------------------------------- /patch/wrf/WRF-3.x-x86_64-clang-openmpi.patch: -------------------------------------------------------------------------------- 1 | diff -urN WRF-3.x.orig/arch/configure_new.defaults WRF-3.x/arch/configure_new.defaults 2 | --- WRF-3.x.orig/arch/configure_new.defaults 2017-08-17 01:21:45.000000000 +0000 3 | +++ WRF-3.x/arch/configure_new.defaults 2022-09-30 22:24:11.729864978 +0000 4 | @@ -756,18 +756,18 @@ 5 | CC_TOOLS = $(SCC) 6 | 7 | ########################################################### 8 | -#ARCH Linux x86_64 ppc64le, gfortran compiler with gcc #serial smpar dmpar dm+sm 9 | +#ARCH Linux x86_64 ppc64le, gfortran compiler with clang #serial smpar dmpar dm+sm 10 | # 11 | -DESCRIPTION = GNU ($SFC/$SCC) 12 | +DESCRIPTION = BSD ($SFC/$SCC) 13 | DMPARALLEL = # 1 14 | OMPCPP = # -D_OPENMP 15 | OMP = # -fopenmp 16 | OMPCC = # -fopenmp 17 | -SFC = gfortran 18 | -SCC = gcc 19 | -CCOMP = gcc 20 | +SFC = flang 21 | +SCC = clang 22 | +CCOMP = clang 23 | DM_FC = mpif90 -f90=$(SFC) 24 | -DM_CC = mpicc -cc=$(SCC) 25 | +DM_CC = mpicc -DMPI2_SUPPORT 26 | FC = CONFIGURE_FC 27 | CC = CONFIGURE_CC 28 | LD = $(FC) 29 | @@ -791,10 +791,10 @@ 30 | MODULE_SRCH_FLAG = 31 | TRADFLAG = CONFIGURE_TRADFLAG 32 | CPP = /lib/cpp CONFIGURE_CPPFLAGS 33 | -AR = ar 34 | +AR = llvm-ar 35 | ARFLAGS = ru 36 | M4 = m4 -G 37 | -RANLIB = ranlib 38 | +RANLIB = llvm-ranlib 39 | RLFLAGS = 40 | CC_TOOLS = $(SCC) 41 | 42 | -------------------------------------------------------------------------------- /patch/wrf/WRF-3.x-x86_64-gcc-mpich.patch: -------------------------------------------------------------------------------- 1 | WRF-3.x-x86_64-gcc-openmpi.patch -------------------------------------------------------------------------------- /patch/wrf/WRF-3.x-x86_64-gcc-openmpi.patch: -------------------------------------------------------------------------------- 1 | diff -urN WRF-3.x.orig/arch/configure_new.defaults WRF-3.x/arch/configure_new.defaults 2 | --- WRF-3.x.orig/arch/configure_new.defaults 2017-08-17 01:21:45.000000000 +0000 3 | +++ WRF-3.x/arch/configure_new.defaults 2022-09-30 06:29:04.964189265 +0000 4 | @@ -767,7 +767,7 @@ 5 | SCC = gcc 6 | CCOMP = gcc 7 | DM_FC = mpif90 -f90=$(SFC) 8 | -DM_CC = mpicc -cc=$(SCC) 9 | +DM_CC = mpicc -DMPI2_SUPPORT 10 | FC = CONFIGURE_FC 11 | CC = CONFIGURE_CC 12 | LD = $(FC) 13 | @@ -782,8 +782,8 @@ 14 | FCREDUCEDOPT = $(FCOPTIM) 15 | FCNOOPT = -O0 16 | FCDEBUG = # -g $(FCNOOPT) # -ggdb -fbacktrace -fcheck=bounds,do,mem,pointer -ffpe-trap=invalid,zero,overflow 17 | -FORMAT_FIXED = -ffixed-form 18 | -FORMAT_FREE = -ffree-form -ffree-line-length-none 19 | +FORMAT_FIXED = -ffixed-form -fallow-argument-mismatch -fallow-invalid-boz 20 | +FORMAT_FREE = -ffree-form -ffree-line-length-none -fallow-argument-mismatch -fallow-invalid-boz 21 | FCSUFFIX = 22 | BYTESWAPIO = -fconvert=big-endian -frecord-marker=4 23 | FCBASEOPTS_NO_G = -w $(FORMAT_FREE) $(BYTESWAPIO) 24 | -------------------------------------------------------------------------------- /patch/wrf/WRF-3.x-x86_64-icc-intelmpi.patch: -------------------------------------------------------------------------------- 1 | diff -urN WRF-3.x.orig/arch/configure_new.defaults WRF-3.x/arch/configure_new.defaults 2 | --- WRF-3.x.orig/arch/configure_new.defaults 2017-08-17 09:21:45.000000000 +0800 3 | +++ WRF-3.x/arch/configure_new.defaults 2023-04-12 15:44:15.589139157 +0800 4 | @@ -296,21 +296,21 @@ 5 | DESCRIPTION = INTEL ($SFC/$SCC) 6 | DMPARALLEL = # 1 7 | OMPCPP = # -D_OPENMP 8 | -OMP = # -openmp -fpp -auto 9 | -OMPCC = # -openmp -fpp -auto 10 | +OMP = # -qopenmp -fpp -auto 11 | +OMPCC = # -qopenmp -fpp -auto 12 | SFC = ifort 13 | SCC = icc 14 | CCOMP = icc 15 | -DM_FC = mpif90 -f90=$(SFC) 16 | -DM_CC = mpicc -cc=$(SCC) 17 | +DM_FC = mpiifort 18 | +DM_CC = mpiicc 19 | FC = CONFIGURE_FC 20 | CC = CONFIGURE_CC 21 | LD = $(FC) 22 | RWORDSIZE = CONFIGURE_RWORDSIZE 23 | PROMOTION = -real-size `expr 8 \* $(RWORDSIZE)` -i4 24 | ARCH_LOCAL = -DNONSTANDARD_SYSTEM_FUNC -DWRF_USE_CLM 25 | -CFLAGS_LOCAL = -w -O3 -ip #-xHost -fp-model fast=2 -no-prec-div -no-prec-sqrt -ftz -no-multibyte-chars 26 | -LDFLAGS_LOCAL = -ip #-xHost -fp-model fast=2 -no-prec-div -no-prec-sqrt -ftz -align all -fno-alias -fno-common 27 | +CFLAGS_LOCAL = -w -O3 -ip -xHost -fp-model fast=2 -no-prec-div -no-prec-sqrt -ftz -no-multibyte-chars 28 | +LDFLAGS_LOCAL = -ip -xHost -fp-model fast=2 -no-prec-div -no-prec-sqrt -ftz -align all -fno-alias -fno-common 29 | CPLUSPLUSLIB = 30 | ESMF_LDFLAG = $(CPLUSPLUSLIB) 31 | FCOPTIM = -O3 32 | @@ -322,7 +322,7 @@ 33 | FCSUFFIX = 34 | BYTESWAPIO = -convert big_endian 35 | RECORDLENGTH = -assume byterecl 36 | -FCBASEOPTS_NO_G = -ip -fp-model precise -w -ftz -align all -fno-alias $(FORMAT_FREE) $(BYTESWAPIO) #-xHost -fp-model fast=2 -no-heap-arrays -no-prec-div -no-prec-sqrt -fno-common 37 | +FCBASEOPTS_NO_G = -ip -fp-model fast=2 -w -ftz -align all -fno-alias $(FORMAT_FREE) $(BYTESWAPIO) #-xHost -fp-model fast=2 -no-heap-arrays -no-prec-div -no-prec-sqrt -fno-common 38 | FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG) 39 | MODULE_SRCH_FLAG = 40 | TRADFLAG = CONFIGURE_TRADFLAG 41 | -------------------------------------------------------------------------------- /patch/wrf/WRF-3.x-x86_64-icc-mpich.patch: -------------------------------------------------------------------------------- 1 | WRF-3.x-x86_64-icc-openmpi.patch -------------------------------------------------------------------------------- /patch/wrf/WRF-3.x-x86_64-icc-openmpi.patch: -------------------------------------------------------------------------------- 1 | diff -urN WRF-3.x.orig/arch/configure_new.defaults WRF-3.x/arch/configure_new.defaults 2 | --- WRF-3.x.orig/arch/configure_new.defaults 2017-08-17 01:21:45.000000000 +0000 3 | +++ WRF-3.x/arch/configure_new.defaults 2022-09-19 02:43:42.249538289 +0000 4 | @@ -296,8 +296,8 @@ 5 | DESCRIPTION = INTEL ($SFC/$SCC) 6 | DMPARALLEL = # 1 7 | OMPCPP = # -D_OPENMP 8 | -OMP = # -openmp -fpp -auto 9 | -OMPCC = # -openmp -fpp -auto 10 | +OMP = # -qopenmp -fpp -auto 11 | +OMPCC = # -qopenmp -fpp -auto 12 | SFC = ifort 13 | SCC = icc 14 | CCOMP = icc 15 | -------------------------------------------------------------------------------- /patch/wrf/WRF-4.x-aarch64-armclang-mpich.patch: -------------------------------------------------------------------------------- 1 | WRF-4.x-aarch64-armclang-openmpi.patch -------------------------------------------------------------------------------- /patch/wrf/WRF-4.x-aarch64-armgcc-mpich.patch: -------------------------------------------------------------------------------- 1 | WRF-4.x-aarch64-armgcc-openmpi.patch -------------------------------------------------------------------------------- /patch/wrf/WRF-4.x-aarch64-gcc-mpich.patch: -------------------------------------------------------------------------------- 1 | WRF-4.x-aarch64-gcc-openmpi.patch -------------------------------------------------------------------------------- /patch/wrf/WRF-4.x-x86_64-amdclang-mpich.patch: -------------------------------------------------------------------------------- 1 | WRF-4.x-x86_64-amdclang-openmpi.patch -------------------------------------------------------------------------------- /patch/wrf/WRF-4.x-x86_64-clang-mpich.patch: -------------------------------------------------------------------------------- 1 | WRF-4.x-x86_64-clang-openmpi.patch -------------------------------------------------------------------------------- /patch/wrf/WRF-4.x-x86_64-clang-openmpi.patch: -------------------------------------------------------------------------------- 1 | diff -urN WRF-4.x.orig/arch/configure.defaults WRF-4.x/arch/configure.defaults 2 | --- WRF-4.x.orig/arch/configure.defaults 2021-01-15 17:21:58.000000000 +0000 3 | +++ WRF-4.x/arch/configure.defaults 2022-11-14 23:50:46.658836696 +0000 4 | @@ -757,18 +757,18 @@ 5 | CC_TOOLS = $(SCC) 6 | 7 | ########################################################### 8 | -#ARCH Linux x86_64 ppc64le, gfortran compiler with gcc #serial smpar dmpar dm+sm 9 | +#ARCH Linux x86_64 ppc64le, flang compiler with clang #serial smpar dmpar dm+sm 10 | # 11 | -DESCRIPTION = GNU ($SFC/$SCC) 12 | +DESCRIPTION = BSD ($SFC/$SCC) 13 | DMPARALLEL = # 1 14 | OMPCPP = # -D_OPENMP 15 | OMP = # -fopenmp 16 | OMPCC = # -fopenmp 17 | -SFC = gfortran 18 | -SCC = gcc 19 | -CCOMP = gcc 20 | +SFC = flang 21 | +SCC = clang 22 | +CCOMP = clang 23 | DM_FC = mpif90 -f90=$(SFC) 24 | -DM_CC = mpicc -cc=$(SCC) 25 | +DM_CC = mpicc -DMPI2_SUPPORT 26 | FC = CONFIGURE_FC 27 | CC = CONFIGURE_CC 28 | LD = $(FC) 29 | @@ -793,10 +793,10 @@ 30 | MODULE_SRCH_FLAG = 31 | TRADFLAG = CONFIGURE_TRADFLAG 32 | CPP = /lib/cpp CONFIGURE_CPPFLAGS 33 | -AR = ar 34 | +AR = llvm-ar 35 | ARFLAGS = ru 36 | M4 = m4 -G 37 | -RANLIB = ranlib 38 | +RANLIB = llvm-ranlib 39 | RLFLAGS = 40 | CC_TOOLS = $(SCC) 41 | 42 | diff -urN WRF-4.x.orig/configure WRF-4.x/configure 43 | --- WRF-4.x.orig/configure 2021-01-15 17:21:58.000000000 +0000 44 | +++ WRF-4.x/configure 2022-11-14 23:49:51.673961645 +0000 45 | @@ -686,7 +686,7 @@ 46 | foo=foo_$$ 47 | 48 | grep '^SFC' configure.wrf | grep -i 'gfortran' > /dev/null 49 | - if [ $? ] 50 | + if [ $? -eq 0 ] 51 | then 52 | 53 | cat > ${foo}.F << EOF 54 | -------------------------------------------------------------------------------- /patch/wrf/WRF-4.x-x86_64-gcc-mpich.patch: -------------------------------------------------------------------------------- 1 | WRF-4.x-x86_64-gcc-openmpi.patch -------------------------------------------------------------------------------- /patch/wrf/WRF-4.x-x86_64-gcc-openmpi.patch: -------------------------------------------------------------------------------- 1 | diff -urN WRF-4.x.orig/arch/configure.defaults WRF-4.x/arch/configure.defaults 2 | --- WRF-4.x.orig/arch/configure.defaults 2017-08-17 01:21:45.000000000 +0000 3 | +++ WRF-4.x/arch/configure.defaults 2022-09-30 06:29:04.964189265 +0000 4 | @@ -767,7 +767,7 @@ 5 | SCC = gcc 6 | CCOMP = gcc 7 | DM_FC = mpif90 -f90=$(SFC) 8 | -DM_CC = mpicc -cc=$(SCC) 9 | +DM_CC = mpicc -DMPI2_SUPPORT 10 | FC = CONFIGURE_FC 11 | CC = CONFIGURE_CC 12 | LD = $(FC) 13 | @@ -782,8 +782,8 @@ 14 | FCREDUCEDOPT = $(FCOPTIM) 15 | FCNOOPT = -O0 16 | FCDEBUG = # -g $(FCNOOPT) # -ggdb -fbacktrace -fcheck=bounds,do,mem,pointer -ffpe-trap=invalid,zero,overflow 17 | -FORMAT_FIXED = -ffixed-form 18 | -FORMAT_FREE = -ffree-form -ffree-line-length-none 19 | +FORMAT_FIXED = -ffixed-form -fallow-argument-mismatch -fallow-invalid-boz 20 | +FORMAT_FREE = -ffree-form -ffree-line-length-none -fallow-argument-mismatch -fallow-invalid-boz 21 | FCSUFFIX = 22 | BYTESWAPIO = -fconvert=big-endian -frecord-marker=4 23 | FCBASEOPTS_NO_G = -w $(FORMAT_FREE) $(BYTESWAPIO) 24 | -------------------------------------------------------------------------------- /patch/wrf/WRF-4.x-x86_64-icc-intelmpi.patch: -------------------------------------------------------------------------------- 1 | diff -urN WRF-4.x.orig/arch/configure.defaults WRF-4.x/arch/configure.defaults 2 | --- WRF-4.x.orig/arch/configure.defaults 2018-11-10 07:55:46.000000000 +0800 3 | +++ WRF-4.x/arch/configure.defaults 2023-04-12 15:55:44.978310270 +0800 4 | @@ -296,21 +296,21 @@ 5 | DESCRIPTION = INTEL ($SFC/$SCC) 6 | DMPARALLEL = # 1 7 | OMPCPP = # -D_OPENMP 8 | -OMP = # -openmp -fpp -auto 9 | -OMPCC = # -openmp -fpp -auto 10 | +OMP = # -qopenmp -fpp -auto 11 | +OMPCC = # -qopenmp -fpp -auto 12 | SFC = ifort 13 | SCC = icc 14 | CCOMP = icc 15 | -DM_FC = mpif90 -f90=$(SFC) 16 | -DM_CC = mpicc -cc=$(SCC) 17 | +DM_FC = mpiifort 18 | +DM_CC = mpiicc 19 | FC = CONFIGURE_FC 20 | CC = CONFIGURE_CC 21 | LD = $(FC) 22 | RWORDSIZE = CONFIGURE_RWORDSIZE 23 | PROMOTION = -real-size `expr 8 \* $(RWORDSIZE)` -i4 24 | ARCH_LOCAL = -DNONSTANDARD_SYSTEM_FUNC -DWRF_USE_CLM 25 | -CFLAGS_LOCAL = -w -O3 -ip #-xHost -fp-model fast=2 -no-prec-div -no-prec-sqrt -ftz -no-multibyte-chars 26 | -LDFLAGS_LOCAL = -ip #-xHost -fp-model fast=2 -no-prec-div -no-prec-sqrt -ftz -align all -fno-alias -fno-common 27 | +CFLAGS_LOCAL = -w -O3 -ip -xHost -fp-model fast=2 -no-prec-div -no-prec-sqrt -ftz -no-multibyte-chars 28 | +LDFLAGS_LOCAL = -ip -xHost -fp-model fast=2 -no-prec-div -no-prec-sqrt -ftz -align all -fno-alias -fno-common 29 | CPLUSPLUSLIB = 30 | ESMF_LDFLAG = $(CPLUSPLUSLIB) 31 | FCOPTIM = -O3 32 | @@ -322,7 +322,7 @@ 33 | FCSUFFIX = 34 | BYTESWAPIO = -convert big_endian 35 | RECORDLENGTH = -assume byterecl 36 | -FCBASEOPTS_NO_G = -ip -fp-model precise -w -ftz -align all -fno-alias $(FORMAT_FREE) $(BYTESWAPIO) #-xHost -fp-model fast=2 -no-heap-arrays -no-prec-div -no-prec-sqrt -fno-common 37 | +FCBASEOPTS_NO_G = -ip -fp-model fast=2 -w -ftz -align all -fno-alias $(FORMAT_FREE) $(BYTESWAPIO) #-xHost -fp-model fast=2 -no-heap-arrays -no-prec-div -no-prec-sqrt -fno-common 38 | FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG) 39 | MODULE_SRCH_FLAG = 40 | TRADFLAG = CONFIGURE_TRADFLAG 41 | -------------------------------------------------------------------------------- /patch/wrf/WRF-4.x-x86_64-icc-mpich.patch: -------------------------------------------------------------------------------- 1 | WRF-4.x-x86_64-icc-openmpi.patch -------------------------------------------------------------------------------- /patch/wrf/WRF-4.x-x86_64-icc-openmpi.patch: -------------------------------------------------------------------------------- 1 | diff -urN WRF-4.x.orig/arch/configure.defaults WRF-4.x/arch/configure.defaults 2 | --- WRF-4.x.orig/arch/configure.defaults 2017-08-17 01:21:45.000000000 +0000 3 | +++ WRF-4.x/arch/configure.defaults 2022-09-19 02:43:42.249538289 +0000 4 | @@ -296,8 +296,8 @@ 5 | DESCRIPTION = INTEL ($SFC/$SCC) 6 | DMPARALLEL = # 1 7 | OMPCPP = # -D_OPENMP 8 | -OMP = # -openmp -fpp -auto 9 | -OMPCC = # -openmp -fpp -auto 10 | +OMP = # -qopenmp -fpp -auto 11 | +OMPCC = # -qopenmp -fpp -auto 12 | SFC = ifort 13 | SCC = icc 14 | CCOMP = icc 15 | -------------------------------------------------------------------------------- /patch/wrf/WRF-4.z+-aarch64-armclang-mpich.patch: -------------------------------------------------------------------------------- 1 | WRF-4.z+-aarch64-armclang-openmpi.patch -------------------------------------------------------------------------------- /patch/wrf/WRF-4.z-aarch64-armclang-mpich.patch: -------------------------------------------------------------------------------- 1 | WRF-4.z-aarch64-armclang-openmpi.patch -------------------------------------------------------------------------------- /patch/wrf/WRF-4.z-aarch64-armclang-openmpi.patch: -------------------------------------------------------------------------------- 1 | diff -urN WRF-4.z.orig/arch/configure.defaults WRF-4.z/arch/configure.defaults 2 | --- WRF-4.z.orig/arch/configure.defaults 2021-01-15 17:21:58.000000000 +0000 3 | +++ WRF-4.z/arch/configure.defaults 2024-01-19 16:24:00.494119940 +0000 4 | @@ -44,29 +44,29 @@ 5 | CC_TOOLS = cc 6 | 7 | ########################################################### 8 | -#ARCH Linux i486 i586 i686 armv7l aarch64, gfortran compiler with gcc #serial smpar dmpar dm+sm 9 | +#ARCH Linux i486 i586 i686 armv7l aarch64, armflang compiler with clang #serial smpar dmpar dm+sm 10 | # 11 | -DESCRIPTION = GNU ($SFC/$SCC) 12 | +DESCRIPTION = BSD ($SFC/$SCC) 13 | DMPARALLEL = # 1 14 | OMPCPP = # -D_OPENMP 15 | OMP = # -fopenmp 16 | OMPCC = # -fopenmp 17 | -SFC = gfortran 18 | -SCC = gcc 19 | -CCOMP = gcc 20 | +SFC = armflang 21 | +SCC = armclang 22 | +CCOMP = armclang 23 | DM_FC = mpif90 -f90=$(SFC) 24 | -DM_CC = mpicc -cc=$(SCC) 25 | +DM_CC = mpicc -DMPI2_SUPPORT 26 | FC = CONFIGURE_FC 27 | CC = CONFIGURE_CC 28 | LD = $(FC) 29 | RWORDSIZE = CONFIGURE_RWORDSIZE 30 | PROMOTION = #-fdefault-real-8 31 | ARCH_LOCAL = -DNONSTANDARD_SYSTEM_SUBR -DWRF_USE_CLM 32 | -CFLAGS_LOCAL = -w -O3 -c # -DRSL0_ONLY 33 | -LDFLAGS_LOCAL = 34 | +CFLAGS_LOCAL = -w -O3 -c -Wno-implicit-function-declaration -Wno-int-conversion -Wno-implicit-int # -DRSL0_ONLY 35 | +LDFLAGS_LOCAL = -fopenmp -armpl -lamath -lm -lastring 36 | CPLUSPLUSLIB = 37 | ESMF_LDFLAG = $(CPLUSPLUSLIB) 38 | -FCOPTIM = -O2 -ftree-vectorize -funroll-loops 39 | +FCOPTIM = -Ofast -mcpu=native -funroll-loops 40 | FCREDUCEDOPT = $(FCOPTIM) 41 | FCNOOPT = -O0 42 | FCDEBUG = # -g $(FCNOOPT) # -fbacktrace -ggdb -fcheck=bounds,do,mem,pointer -ffpe-trap=invalid,zero,overflow 43 | @@ -85,7 +85,7 @@ 44 | M4 = m4 -B 14000 45 | RANLIB = ranlib 46 | RLFLAGS = 47 | -CC_TOOLS = $(SCC) 48 | +CC_TOOLS = $(SCC) -Wno-implicit-function-declaration -Wno-int-conversion -Wno-implicit-int 49 | 50 | ########################################################### 51 | #ARCH Linux i486 i586 i686, g95 compiler with gcc #serial dmpar 52 | diff -urN WRF-4.z.orig/configure WRF-4.z/configure 53 | --- WRF-4.z.orig/configure 2021-01-15 17:21:58.000000000 +0000 54 | +++ WRF-4.z/configure 2024-01-19 16:23:32.024494975 +0000 55 | @@ -686,7 +686,7 @@ 56 | foo=foo_$$ 57 | 58 | grep '^SFC' configure.wrf | grep -i 'gfortran' > /dev/null 59 | - if [ $? ] 60 | + if [ $? -eq 0 ] 61 | then 62 | 63 | cat > ${foo}.F << EOF 64 | -------------------------------------------------------------------------------- /patch/wrf/WRF-4.z-aarch64-armgcc-mpich.patch: -------------------------------------------------------------------------------- 1 | WRF-4.z-aarch64-armgcc-openmpi.patch -------------------------------------------------------------------------------- /patch/wrf/WRF-4.z-aarch64-armgcc-openmpi.patch: -------------------------------------------------------------------------------- 1 | diff -urN WRF-4.z.orig/arch/configure.defaults WRF-4.z/arch/configure.defaults 2 | --- WRF-4.z.orig/arch/configure.defaults 2021-01-16 01:21:58.000000000 +0800 3 | +++ WRF-4.z/arch/configure.defaults 2024-04-01 22:45:18.497913627 +0800 4 | @@ -63,10 +63,10 @@ 5 | PROMOTION = #-fdefault-real-8 6 | ARCH_LOCAL = -DNONSTANDARD_SYSTEM_SUBR -DWRF_USE_CLM 7 | CFLAGS_LOCAL = -w -O3 -c # -DRSL0_ONLY 8 | -LDFLAGS_LOCAL = 9 | +LDFLAGS_LOCAL = -fopenmp -larmpl_lp64 -lamath -lm -lastring 10 | CPLUSPLUSLIB = 11 | ESMF_LDFLAG = $(CPLUSPLUSLIB) 12 | -FCOPTIM = -O2 -ftree-vectorize -funroll-loops 13 | +FCOPTIM = -Ofast -mcpu=native -ftree-vectorize -funroll-loops -fno-expensive-optimizations -fno-reciprocal-math -fsigned-zeros -fno-unsafe-math-optimizations 14 | FCREDUCEDOPT = $(FCOPTIM) 15 | FCNOOPT = -O0 16 | FCDEBUG = # -g $(FCNOOPT) # -fbacktrace -ggdb -fcheck=bounds,do,mem,pointer -ffpe-trap=invalid,zero,overflow 17 | -------------------------------------------------------------------------------- /patch/wrf/WRF-4.z-aarch64-gcc-mpich.patch: -------------------------------------------------------------------------------- 1 | WRF-4.z-aarch64-gcc-openmpi.patch -------------------------------------------------------------------------------- /patch/wrf/WRF-4.z-aarch64-gcc-openmpi.patch: -------------------------------------------------------------------------------- 1 | diff -urN WRF-4.z.orig/arch/configure.defaults WRF-4.z/arch/configure.defaults 2 | --- WRF-4.z.orig/arch/configure.defaults 2022-08-25 22:42:53.000000000 +0000 3 | +++ WRF-4.z/arch/configure.defaults 2022-11-25 13:00:36.000000000 +0000 4 | @@ -67,7 +67,7 @@ 5 | LDFLAGS_LOCAL = 6 | CPLUSPLUSLIB = 7 | ESMF_LDFLAG = $(CPLUSPLUSLIB) 8 | -FCOPTIM = -O2 -ftree-vectorize -funroll-loops 9 | +FCOPTIM = -Ofast -mcpu=native -ftree-vectorize -funroll-loops 10 | FCREDUCEDOPT = $(FCOPTIM) 11 | FCNOOPT = -O0 12 | FCDEBUG = # -g $(FCNOOPT) # -fbacktrace -ggdb -fcheck=bounds,do,mem,pointer -ffpe-trap=invalid,zero,overflow 13 | @@ -80,7 +80,7 @@ 14 | FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG) 15 | MODULE_SRCH_FLAG = 16 | TRADFLAG = CONFIGURE_TRADFLAG 17 | -CPP = /lib/cpp CONFIGURE_CPPFLAGS 18 | +CPP = cpp CONFIGURE_CPPFLAGS 19 | AR = ar 20 | ARFLAGS = ru 21 | M4 = m4 -B 14000 22 | @@ -2057,7 +2057,7 @@ 23 | FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG) 24 | MODULE_SRCH_FLAG = 25 | TRADFLAG = CONFIGURE_TRADFLAG 26 | -CPP = /lib/cpp CONFIGURE_CPPFLAGS 27 | +CPP = cpp CONFIGURE_CPPFLAGS 28 | AR = ar 29 | ARFLAGS = ru 30 | M4 = m4 -G 31 | -------------------------------------------------------------------------------- /patch/wrf/WRF-4.z-x86_64-amdclang-mpich.patch: -------------------------------------------------------------------------------- 1 | WRF-4.z-x86_64-amdclang-openmpi.patch -------------------------------------------------------------------------------- /patch/wrf/WRF-4.z-x86_64-icc-intelmpi.patch: -------------------------------------------------------------------------------- 1 | diff -urN WRF-4.z.orig/arch/configure.defaults WRF-4.z/arch/configure.defaults 2 | --- WRF-4.z.orig/arch/configure.defaults 2021-01-16 01:21:58.000000000 +0800 3 | +++ WRF-4.z/arch/configure.defaults 2023-04-12 15:50:09.584498196 +0800 4 | @@ -302,16 +302,16 @@ 5 | SFC = ifort 6 | SCC = icc 7 | CCOMP = icc 8 | -DM_FC = mpif90 -f90=$(SFC) 9 | -DM_CC = mpicc -cc=$(SCC) 10 | +DM_FC = mpiifort 11 | +DM_CC = mpiicc 12 | FC = CONFIGURE_FC 13 | CC = CONFIGURE_CC 14 | LD = $(FC) 15 | RWORDSIZE = CONFIGURE_RWORDSIZE 16 | PROMOTION = -real-size `expr 8 \* $(RWORDSIZE)` -i4 17 | ARCH_LOCAL = -DNONSTANDARD_SYSTEM_FUNC -DWRF_USE_CLM 18 | -CFLAGS_LOCAL = -w -O3 -ip #-xHost -fp-model fast=2 -no-prec-div -no-prec-sqrt -ftz -no-multibyte-chars # -DRSL0_ONLY 19 | -LDFLAGS_LOCAL = -ip #-xHost -fp-model fast=2 -no-prec-div -no-prec-sqrt -ftz -align all -fno-alias -fno-common 20 | +CFLAGS_LOCAL = -w -O3 -ip -xHost -fp-model fast=2 -no-prec-div -no-prec-sqrt -ftz -no-multibyte-chars # -DRSL0_ONLY 21 | +LDFLAGS_LOCAL = -ip -xHost -fp-model fast=2 -no-prec-div -no-prec-sqrt -ftz -align all -fno-alias -fno-common 22 | CPLUSPLUSLIB = 23 | ESMF_LDFLAG = $(CPLUSPLUSLIB) 24 | FCOPTIM = -O3 25 | @@ -323,7 +323,7 @@ 26 | FCSUFFIX = 27 | BYTESWAPIO = -convert big_endian 28 | RECORDLENGTH = -assume byterecl 29 | -FCBASEOPTS_NO_G = -ip -fp-model precise -w -ftz -align all -fno-alias $(FORMAT_FREE) $(BYTESWAPIO) #-xHost -fp-model fast=2 -no-heap-arrays -no-prec-div -no-prec-sqrt -fno-common 30 | +FCBASEOPTS_NO_G = -ip -fp-model fast=2 -w -ftz -align all -fno-alias $(FORMAT_FREE) $(BYTESWAPIO) #-xHost -fp-model fast=2 -no-heap-arrays -no-prec-div -no-prec-sqrt -fno-common 31 | FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG) 32 | MODULE_SRCH_FLAG = 33 | TRADFLAG = CONFIGURE_TRADFLAG 34 | -------------------------------------------------------------------------------- /patch/wrf/WRF-da-rad-diags.patch: -------------------------------------------------------------------------------- 1 | diff -urN WRF-4.x.orig/var/da/da_monitor/da_rad_diags.f90 WRF-4.x/var/da/da_monitor/da_rad_diags.f90 2 | --- WRF-4.x.orig/var/da/da_monitor/da_rad_diags.f90 2021-01-15 17:21:58.000000000 +0000 3 | +++ WRF-4.x/var/da/da_monitor/da_rad_diags.f90 2024-05-11 05:34:13.000000000 +0000 4 | @@ -22,12 +22,6 @@ 5 | ! 6 | ! namelist variables 7 | ! 8 | - namelist /record1/ nproc, instid, file_prefix, start_date, end_date, cycle_period 9 | - ! nproc: number of processsors used when writing out inv files 10 | - ! instid, eg dmsp-16-ssmis 11 | - ! file_prefix, inv or oma 12 | - ! start_date, end_date, eg 2006100100, 2006102800 13 | - ! cycle_period (hours) between dates, eg 6 or 12 14 | integer, parameter :: maxnum = 20, maxlvl = 100 15 | integer :: nml_unit = 87 16 | integer :: nproc, nlev, ilev, ich 17 | @@ -35,6 +29,12 @@ 18 | character(len=20), dimension(maxnum) :: instid 19 | character(len=6) :: file_prefix 20 | character(len=10) :: start_date, end_date 21 | + namelist /record1/ nproc, instid, file_prefix, start_date, end_date, cycle_period 22 | + ! nproc: number of processsors used when writing out inv files 23 | + ! instid, eg dmsp-16-ssmis 24 | + ! file_prefix, inv or oma 25 | + ! start_date, end_date, eg 2006100100, 2006102800 26 | + ! cycle_period (hours) between dates, eg 6 or 12 27 | ! 28 | ! netcdf variables 29 | ! 30 | -------------------------------------------------------------------------------- /patch/wrf/WRF-git-x86_64-clang-mpich.patch: -------------------------------------------------------------------------------- 1 | WRF-4.x-x86_64-clang-mpich.patch -------------------------------------------------------------------------------- /patch/wrf/WRF-git-x86_64-clang-openmpi.patch: -------------------------------------------------------------------------------- 1 | WRF-4.x-x86_64-clang-openmpi.patch -------------------------------------------------------------------------------- /patch/wrf/WRF-tirpc.patch: -------------------------------------------------------------------------------- 1 | diff --color -urN WRF-3.x.orig/configure WRF-3.x/configure 2 | --- WRF-3.x.orig/configure 2017-08-17 09:21:45.000000000 +0800 3 | +++ WRF-3.x/configure 2022-09-22 01:38:09.515652650 +0800 4 | @@ -1093,6 +1093,18 @@ 5 | echo "*****************************************************************************" 6 | fi 7 | 8 | +# testing for location of rpc/types.h file, used in landuse 9 | +# issue https://forum.mmm.ucar.edu/threads/resolved-problem-compiling-wrfv4-0-on-fedora-28-landread-error.61/ 10 | +sed -e '/^CFLAGS /s/=/& -DLANDREAD_STUB/' configure.wrf > configure.wrf.edit 11 | +mv configure.wrf.edit configure.wrf 12 | +echo newer location of RPC 13 | +echo "************************** W A R N I N G ************************************" 14 | +echo " " 15 | +echo "The moving nest option is not available due to missing rpc/types.h file." 16 | +echo "Copy landread.c.dist to landread.c in share directory to bypass compile error." 17 | +echo " " 18 | +echo "*****************************************************************************" 19 | + 20 | # testing for netcdf4 IO features 21 | if [ -n "$NETCDF4" ] ; then 22 | if [ $NETCDF4 -eq 1 ] ; then 23 | -------------------------------------------------------------------------------- /scripts/mpi_settings.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Copyright (C) 2022 by Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 | # SPDX-License-Identifier: MIT 4 | 5 | HPC_MPI_DEBUG=${HPC_MPI_DEBUG:-0} 6 | 7 | hpc_enable_rdma() 8 | { 9 | #export FI_EFA_USE_DEVICE_RDMA=1 10 | #export OMPI_MCA_pml=ob1 11 | #export OMPI_MCA_btl=tcp,vader,self 12 | #export OMPI_MCA_pml=ob1 13 | #export OMPI_MCA_btl=tcp,vader,self 14 | 15 | case ${HPC_MPI} in 16 | "intelmpi") 17 | export I_MPI_FABRICS=ofi 18 | export I_MPI_OFI_PROVIDER=${1} 19 | #export I_MPI_FABRICS="shm:ofi" 20 | ;; 21 | "openmpi"|"nvidiampi") 22 | # more details see: ompi_info 23 | export OMPI_ALLOW_RUN_AS_ROOT=1 24 | export OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1 25 | export OMPI_MCA_mtl=ofi 26 | export OMPI_MCA_pml=cm 27 | export OMPI_MCA_mtl_ofi_provider_include=${1} 28 | ;; 29 | "mpich") 30 | export FI_PROVIDER=${1} 31 | ;; 32 | "mvapich") 33 | export FI_PROVIDER=${1} 34 | ;; 35 | *) 36 | echo "Unsupported MPI" 37 | ;; 38 | esac 39 | } 40 | 41 | hpc_set_mpi() 42 | { 43 | case ${HPC_MPI} in 44 | "intelmpi") 45 | return 46 | #export I_MPI_FABRICS=ofi 47 | #export I_MPI_OFI_PROVIDER=tcp 48 | ;; 49 | "openmpi"|"nvidiampi") 50 | # more details see: ompi_info 51 | export OMPI_ALLOW_RUN_AS_ROOT=1 52 | export OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1 53 | export OMPI_MCA_btl=tcp,vader,self 54 | export OMPI_MCA_pml=ob1 55 | ;; 56 | "mpich") 57 | export FI_PROVIDER=tcp 58 | ;; 59 | "mvapich") 60 | export FI_PROVIDER=tcp 61 | ;; 62 | *) 63 | echo "Unsupported MPI" 64 | ;; 65 | esac 66 | } 67 | 68 | #Report bindings 69 | # Intel MPI: -print-rank-map 70 | # MVAPICH2: MV2_SHOW_CPU_BINDING=1 71 | # OpenMPI: --report-bindings 72 | hpc_enable_mpi_debug() 73 | { 74 | case ${HPC_MPI} in 75 | "intelmpi") 76 | export I_MPI_DEBUG=5 77 | export MPI_SHOW_BIND_OPTS="-print-rank-map" 78 | ;; 79 | "openmpi"|"nvidiampi") 80 | export MPI_SHOW_BIND_OPTS="--report-bindings" 81 | export OMPI_MCA_pml_base_verbose=10 82 | export OMPI_MCA_mtl_base_verbose=10 83 | export OMPI_MCA_btl_base_verbose=10 84 | ;; 85 | "mpich") 86 | # more details, see README.envvar 87 | export MPIR_CVAR_DEBUG_SUMMARY=1 88 | export HYDRA_TOPO_DEBUG=1 89 | ;; 90 | "mvapich") 91 | export MV2_PSM_DEBUG=1 92 | export MV2_SHOW_CPU_BINDING=1 93 | ;; 94 | *) 95 | echo "Unsupported MPI" 96 | ;; 97 | esac 98 | } 99 | 100 | # RDMA Detector 101 | if (fi_info -p efa > /dev/null 2>&1) 102 | then 103 | hpc_enable_rdma efa 104 | elif (fi_info -p verbs > /dev/null 2>&1) 105 | then 106 | hpc_enable_rdma verbs 107 | else 108 | hpc_set_mpi 109 | fi 110 | 111 | if [ ${HPC_MPI_DEBUG} -eq 1 ] 112 | then 113 | hpc_enable_mpi_debug 114 | fi 115 | -------------------------------------------------------------------------------- /scripts/openfoam_env.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Copyright # Copyright (C) 2022 by Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 | # SPDX-License-Identifier: MIT 4 | 5 | OPENFOAM_VERSION=${OPENFOAM_VERSION:-2212} 6 | 7 | case ${HPC_COMPILER} in 8 | "amdclang") 9 | WM_COMPILER=Amd 10 | ;; 11 | "armclang") 12 | WM_COMPILER=Arm 13 | ;; 14 | "armgcc"|"gcc") 15 | WM_COMPILER=Gcc 16 | ;; 17 | "clang") 18 | WM_COMPILER=Clang 19 | ;; 20 | "nvc") 21 | WM_COMPILER=Nvidia 22 | ;; 23 | "icc") 24 | WM_COMPILER=Icc 25 | ;; 26 | "icx") 27 | WM_COMPILER=Icx 28 | ;; 29 | *) 30 | exit 1 31 | ;; 32 | esac 33 | 34 | 35 | case ${HPC_MPI} in 36 | "intelmpi") 37 | export MPI_ROOT=${I_MPI_ROOT} 38 | export MPI_ARCH_FLAGS="-DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX" 39 | export WM_MPLIB="INTELMPI" 40 | ;; 41 | "mpich"|"mvapich"|"openmpi") 42 | export MPI_ROOT=${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI} 43 | export MPI_ARCH_FLAGS="-DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX" 44 | export MPI_ARCH_INC="-isystem ${MPI_ROOT}/include" 45 | if [ "${HPC_MPI}" == "openmpi" ] 46 | then 47 | export WM_MPLIB="SYSTEMOPENMPI" 48 | export MPI_ARCH_LIBS="-L${MPI_ROOT}/lib -lmpi" 49 | else 50 | export WM_MPLIB="SYSTEMMPI" 51 | export MPI_ARCH_LIBS="-L${MPI_ROOT}/lib -lmpi -lrt" 52 | fi 53 | ;; 54 | *) 55 | echo "unknown or unsupported MPI" 56 | exit 1 57 | ;; 58 | esac 59 | 60 | . "${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI}/OpenFOAM/OpenFOAM-${OPENFOAM_VERSION}/etc/bashrc" WM_COMPILER=${WM_COMPILER} WM_MPLIB=${WM_MPLIB} WM_COMPILE_OPTION=OptHB 61 | 62 | -------------------------------------------------------------------------------- /scripts/submit.sbatch_no_efa: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | #SBATCH --wait-all-nodes=1 4 | #SBATCH --ntasks-per-node=64 5 | #SBATCH --cpus-per-task=1 6 | #SBATCH --ntasks-per-core=1 7 | #SBATCH --export=ALL 8 | #SBATCH --exclusive 9 | #SBATCH -o /fsx/slurm.out 10 | 11 | #--------------------------- customized Job env ----------------------------- 12 | #SBATCH --nodes=2 13 | #SBATCH --partition=wrfc6gn 14 | 15 | #export WRF_VERSION=4.2.2 16 | #export JOB_DIR=/fsx/spooler/xxxxxx 17 | 18 | #export WRF_VERSION=4.2.2 19 | #export JOB_DIR=/fsx/spooler/conus_2.5km_v4 20 | 21 | export WRF_VERSION=3.9.1 22 | export JOB_DIR=/fsx/spooler/run 23 | 24 | #export WRF_VERSION=3.9.1 25 | #export JOB_DIR=/fsx/spooler/wrf_sample_3.9 26 | #---------------------------------------------------------------------------- 27 | 28 | #ENV VARIABLES# 29 | 30 | #------------------------------- Run-time env ------------------------------- 31 | # compiler & MPI selection 32 | # compiler table: 33 | # --------------- 34 | # 0 VENDOR's compiler, Intel=icc, AMD=armclang, ARM=armgcc 35 | # 1 GNU/GCC compiler 36 | # 2 GNU/CLANG compiler 37 | # 3 INTEL/ICC compiler 38 | # 4 INTEL/ICX compiler 39 | # 5 AMD/CLANG compiler 40 | # 6 ARM/GCC compiler 41 | # 7 ARM/CLANG compiler 42 | # 43 | # 44 | # MPI table: 45 | # ---------- 46 | # 0 openmpi 47 | # 1 mpich 48 | # 2 intelmpi 49 | # 50 | # usage: env.sh 51 | # C M 52 | # env.sh 0 0 ## select vendor's native compilers with openmpi 53 | # env.sh 0 1 ## select vendor's native compilers with mpich 54 | # env.sh 0 2 ## select vendor's native compilers with intelmpi 55 | # env.sh 1 0 ## select GNU/GCC compilers with openmpi 56 | # env.sh ... 57 | 58 | source /fsx/scripts/env.sh 0 0 59 | #---------------------------------------------------------------------------- 60 | 61 | ulimit -s unlimited 62 | #Report bindings 63 | # Intel MPI: -print-rank-map 64 | # MVAPICH2: MV2_SHOW_CPU_BINDING=1 65 | # OpenMPI: --report-bindings 66 | 67 | if [ "${HPC_MPI}" == "intelmpi" ] 68 | then 69 | SHOW_BIND_OPTS="-print-rank-map" 70 | elif ["${HPC_MPI}" == "openmpi" ] 71 | then 72 | SHOW_BIND_OPTS="--report-bindings" 73 | fi 74 | 75 | echo "Running WRF on $(date)" 76 | cd ${JOB_DIR} 77 | ln -sf /fsx/wrf-${WARCH}/${WRF_COMPILER}/${HPC_MPI}/WRF-${WRF_VERSION}/main/wrf.exe . 78 | 79 | echo "$(date +"%Y%m%d-%H:%M:%S")[$(date "+%s"]: StartJob - $(basename ${JOB_DIR}) - ${WRF_COMPILER} - ${HPC_MPI}" >> wrf_$(arch).times 80 | #mpirun ${SHOW_BIND_OPTS} ./wrf.exe >> mpirun_${WARCH}_${WRF_COMPILER}_${HPC_MPI}_debug.log 2>&1 81 | mpirun --mca pml cm --mca mtl ofi --mca pml_base_verbose 10 --mca mtl_base_verbose 10 ./wrf.exe >> mpirun_${WARCH}_${WRF_COMPILER}_${HPC_MPI}_debug.log 2>&1 82 | #mpirun --mca pml cm --mca mtl ofi ${SHOW_BIND_OPTS} ./wrf.exe > mpirun_${WARCH}_${WRF_COMPILER}_${HPC_MPI}.log 2>&1 83 | echo nstasks=$SLURM_NTASKS 84 | echo "$(date +"%Y%m%d-%H:%M:%S"): JobEnd - $(basename ${JOB_DIR}) - ${WRF_COMPILER} - ${HPC_MPI}" >> wrf_$(arch).times 85 | -------------------------------------------------------------------------------- /scripts/submit_b-eff.sbatch: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Copyright # Copyright (C) 2022 by Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 | # SPDX-License-Identifier: MIT 4 | 5 | #SBATCH --wait-all-nodes=1 6 | #SBATCH --ntasks-per-node=1 7 | #SBATCH --cpus-per-task=1 8 | #SBATCH --ntasks-per-core=1 9 | #SBATCH --export=ALL 10 | #SBATCH --exclusive 11 | #SBATCH -o /fsx/log/b_eff.out 12 | 13 | #--------------------------- customized Job env ----------------------------- 14 | #SBATCH --nodes=2 15 | #SBATCH --partition=c6gnpg 16 | 17 | export B_EFF_VERSION=latest 18 | 19 | #---------------------------------------------------------------------------- 20 | 21 | #ENV VARIABLES# 22 | 23 | #------------------------------- Run-time env ------------------------------- 24 | # compiler & MPI selection 25 | # compiler table: 26 | # --------------- 27 | # 0 VENDOR's compiler, Intel=icc, AMD=armclang, ARM=armgcc 28 | # 1 GNU/GCC compiler 29 | # 2 GNU/CLANG compiler 30 | # 3 INTEL/ICC compiler 31 | # 4 INTEL/ICX compiler 32 | # 5 AMD/CLANG compiler 33 | # 6 ARM/GCC compiler 34 | # 7 ARM/CLANG compiler 35 | # 36 | # 37 | # MPI table: 38 | # ---------- 39 | # 0 openmpi 40 | # 1 mpich 41 | # 2 intelmpi 42 | # 3 mvapich 43 | # 44 | # usage: env.sh 45 | # C M 46 | # env.sh 0 0 ## select vendor's native compilers with openmpi 47 | # env.sh 0 1 ## select vendor's native compilers with mpich 48 | # env.sh 0 2 ## select vendor's native compilers with intelmpi 49 | # env.sh 0 3 ## select vendor's native compilers with mvapich 50 | # env.sh 1 0 ## select GNU/GCC compilers with openmpi 51 | # env.sh ... 52 | 53 | PREFIX=/fsx 54 | source ${PREFIX}/scripts/env.sh 1 0 55 | #---------------------------------------------------------------------------- 56 | LOGDIR=${PREFIX}/log 57 | B_EFF_LOG=${LOGDIR}/mpirun_${SARCH}_${HPC_COMPILER}_${HPC_MPI}_b_eff-${B_EFF_VERSION}.log 58 | mkdir -p ${LOGDIR} 59 | 60 | JOBDIR=${PREFIX}/spooler/b-eff 61 | cd ${JOBDIR} 62 | ln -sfn ${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI}/b_eff-${B_EFF_VERSION}/b_eff . 63 | 64 | ulimit -s unlimited 65 | 66 | HPC_MPI_DEBUG=1 67 | # load MPI settings 68 | source ${PREFIX}/scripts/mpi_settings.sh 69 | 70 | echo "Running b_eff on $(date)" 71 | 72 | START_DATE=$(date) 73 | echo "zzz *** ${START_DATE} *** - JobStart - b_eff - ${HPC_COMPILER} - ${HPC_MPI}" >> ${B_EFF_LOG} 2>&1 74 | 75 | #export OMPI_MCA_coll_tuned_use_dynamic_rules=1 76 | ##export OMPI_MCA_coll_tuned_bcast_algorithm=1 77 | mpirun ${MPI_SHOW_BIND_OPTS} ./b_eff >> ${B_EFF_LOG} 2>&1 78 | 79 | END_DATE=$(date) 80 | echo "zzz *** ${END_DATE} *** - JobEnd - b_eff - ${HPC_COMPILER} - ${HPC_MPI}" >> ${B_EFF_LOG} 2>&1 81 | 82 | JOB_FINISH_TIME=$(($(date -d "${END_DATE}" +%s)-$(date -d "${START_DATE}" +%s))) 83 | echo "zzz *** $(date) *** - Job b_eff took ${JOB_FINISH_TIME} seconds($(echo "scale=5;${JOB_FINISH_TIME}/3600" | bc) hours)." >> ${B_EFF_LOG} 2>&1 84 | -------------------------------------------------------------------------------- /scripts/submit_b-eff_template.sbatch: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Copyright # Copyright (C) 2022 by Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 | # SPDX-License-Identifier: MIT 4 | 5 | #SBATCH --wait-all-nodes=1 6 | #SBATCH --ntasks-per-node=1 7 | #SBATCH --cpus-per-task=1 8 | #SBATCH --ntasks-per-core=1 9 | #SBATCH --export=ALL 10 | #SBATCH --exclusive 11 | #SBATCH -o XXPREFIXXX/log/b_eff.out 12 | 13 | #--------------------------- customized Job env ----------------------------- 14 | #SBATCH --nodes=2 15 | #SBATCH --partition=c6gnpg 16 | 17 | export B_EFF_VERSION=latest 18 | 19 | #---------------------------------------------------------------------------- 20 | 21 | #ENV VARIABLES# 22 | 23 | #------------------------------- Run-time env ------------------------------- 24 | # compiler & MPI selection 25 | # compiler table: 26 | # --------------- 27 | # 0 VENDOR's compiler, Intel=icc, AMD=armclang, ARM=armgcc 28 | # 1 GNU/GCC compiler 29 | # 2 GNU/CLANG compiler 30 | # 3 INTEL/ICC compiler 31 | # 4 INTEL/ICX compiler 32 | # 5 AMD/CLANG compiler 33 | # 6 ARM/GCC compiler 34 | # 7 ARM/CLANG compiler 35 | # 36 | # 37 | # MPI table: 38 | # ---------- 39 | # 0 openmpi 40 | # 1 mpich 41 | # 2 intelmpi 42 | # 3 mvapich 43 | # 44 | # usage: env.sh 45 | # C M 46 | # env.sh 0 0 ## select vendor's native compilers with openmpi 47 | # env.sh 0 1 ## select vendor's native compilers with mpich 48 | # env.sh 0 2 ## select vendor's native compilers with intelmpi 49 | # env.sh 0 3 ## select vendor's native compilers with mvapich 50 | # env.sh 1 0 ## select GNU/GCC compilers with openmpi 51 | # env.sh ... 52 | 53 | PREFIX=XXPREFIXXX 54 | source ${PREFIX}/scripts/env.sh 1 0 55 | #---------------------------------------------------------------------------- 56 | LOGDIR=${PREFIX}/log 57 | B_EFF_LOG=${LOGDIR}/mpirun_${SARCH}_${HPC_COMPILER}_${HPC_MPI}_b_eff-${B_EFF_VERSION}.log 58 | mkdir -p ${LOGDIR} 59 | 60 | JOBDIR=${PREFIX}/spooler/b-eff 61 | cd ${JOBDIR} 62 | ln -sfn ${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI}/b_eff-${B_EFF_VERSION}/b_eff . 63 | 64 | ulimit -s unlimited 65 | 66 | HPC_MPI_DEBUG=1 67 | # load MPI settings 68 | source ${PREFIX}/scripts/mpi_settings.sh 69 | 70 | echo "Running b_eff on $(date)" 71 | 72 | START_DATE=$(date) 73 | echo "zzz *** ${START_DATE} *** - JobStart - b_eff - ${HPC_COMPILER} - ${HPC_MPI}" >> ${B_EFF_LOG} 2>&1 74 | 75 | #export OMPI_MCA_coll_tuned_use_dynamic_rules=1 76 | ##export OMPI_MCA_coll_tuned_bcast_algorithm=1 77 | mpirun ${MPI_SHOW_BIND_OPTS} ./b_eff >> ${B_EFF_LOG} 2>&1 78 | 79 | END_DATE=$(date) 80 | echo "zzz *** ${END_DATE} *** - JobEnd - b_eff - ${HPC_COMPILER} - ${HPC_MPI}" >> ${B_EFF_LOG} 2>&1 81 | 82 | JOB_FINISH_TIME=$(($(date -d "${END_DATE}" +%s)-$(date -d "${START_DATE}" +%s))) 83 | echo "zzz *** $(date) *** - Job b_eff took ${JOB_FINISH_TIME} seconds($(echo "scale=5;${JOB_FINISH_TIME}/3600" | bc) hours)." >> ${B_EFF_LOG} 2>&1 84 | -------------------------------------------------------------------------------- /scripts/submit_bfs.sbatch: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Copyright # Copyright (C) 2023 by Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 | # SPDX-License-Identifier: MIT 4 | 5 | #SBATCH --wait-all-nodes=1 6 | #SBATCH --ntasks-per-node=64 7 | #SBATCH --cpus-per-task=1 8 | #SBATCH --ntasks-per-core=1 9 | #SBATCH --export=ALL 10 | #SBATCH --exclusive 11 | #SBATCH -o /fsx/log/bfs.out 12 | 13 | #--------------------------- customized Job env ----------------------------- 14 | #SBATCH --nodes=2 15 | #SBATCH --partition=c6g 16 | 17 | export BFS_VERSION=3.0.1 18 | 19 | #---------------------------------------------------------------------------- 20 | 21 | #ENV VARIABLES# 22 | 23 | #------------------------------- Run-time env ------------------------------- 24 | # compiler & MPI selection 25 | # compiler table: 26 | # --------------- 27 | # 0 VENDOR's compiler, Intel=icc, AMD=armclang, ARM=armgcc 28 | # 1 GNU/GCC compiler 29 | # 2 GNU/CLANG compiler 30 | # 3 INTEL/ICC compiler 31 | # 4 INTEL/ICX compiler 32 | # 5 AMD/CLANG compiler 33 | # 6 ARM/GCC compiler 34 | # 7 ARM/CLANG compiler 35 | # 36 | # 37 | # MPI table: 38 | # ---------- 39 | # 0 openmpi 40 | # 1 mpich 41 | # 2 intelmpi 42 | # 3 mvapich 43 | # 44 | # usage: env.sh 45 | # C M 46 | # env.sh 0 0 ## select vendor's native compilers with openmpi 47 | # env.sh 0 1 ## select vendor's native compilers with mpich 48 | # env.sh 0 2 ## select vendor's native compilers with intelmpi 49 | # env.sh 0 3 ## select vendor's native compilers with mvapich 50 | # env.sh 1 0 ## select GNU/GCC compilers with openmpi 51 | # env.sh ... 52 | 53 | PREFIX=/fsx 54 | source ${PREFIX}/scripts/env.sh 1 0 55 | #---------------------------------------------------------------------------- 56 | LOGDIR=${PREFIX}/log 57 | BFS_LOG=${LOGDIR}/mpirun_${SARCH}_${HPC_COMPILER}_${HPC_MPI}_bfs-${BFS_VERSION}.log 58 | mkdir -p ${LOGDIR} 59 | 60 | ulimit -s unlimited 61 | 62 | HPC_MPI_DEBUG=1 63 | # load MPI settings 64 | source ${PREFIX}/scripts/mpi_settings.sh 65 | 66 | echo "Running bfs on $(date)" 67 | 68 | # greatly speed up BFS running 69 | export SKIP_VALIDATION=1 70 | 71 | # save graph file - ref: https://github.com/graph500/graph500 72 | # TMPFILE= and also REUSEFILE=1 to keep the file. 73 | # REUSEFILE=1 74 | # TMPFILE=/fsx/spooler/bfs/graph29-2 75 | 76 | START_DATE=$(date) 77 | echo "zzz *** ${START_DATE} *** - JobStart - bfs - ${HPC_COMPILER} - ${HPC_MPI}" >> ${BFS_LOG} 2>&1 78 | 79 | #export OMPI_MCA_coll_tuned_use_dynamic_rules=1 80 | ##export OMPI_MCA_coll_tuned_bcast_algorithm=1 81 | mpirun ${MPI_SHOW_BIND_OPTS} graph500_reference_bfs 29 >> ${BFS_LOG} 2>&1 82 | 83 | END_DATE=$(date) 84 | echo "zzz *** ${END_DATE} *** - JobEnd - bfs - ${HPC_COMPILER} - ${HPC_MPI}" >> ${BFS_LOG} 2>&1 85 | 86 | JOB_FINISH_TIME=$(($(date -d "${END_DATE}" +%s)-$(date -d "${START_DATE}" +%s))) 87 | echo "zzz *** $(date) *** - Job bfs took ${JOB_FINISH_TIME} seconds($(echo "scale=5;${JOB_FINISH_TIME}/3600" | bc) hours)." >> ${BFS_LOG} 2>&1 88 | -------------------------------------------------------------------------------- /scripts/submit_gpcnet.sbatch: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Copyright # Copyright (C) 2022 by Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 | # SPDX-License-Identifier: MIT 4 | 5 | #SBATCH --wait-all-nodes=1 6 | #SBATCH --ntasks-per-node=64 7 | #SBATCH --cpus-per-task=1 8 | #SBATCH --ntasks-per-core=1 9 | #SBATCH --export=ALL 10 | #SBATCH --exclusive 11 | #SBATCH -o /fsx/log/gpcnet.out 12 | 13 | #--------------------------- customized Job env ----------------------------- 14 | #SBATCH --nodes=10 15 | #SBATCH --partition=c7gnpg 16 | 17 | export GPCNET_VERSION=git 18 | 19 | #---------------------------------------------------------------------------- 20 | 21 | #ENV VARIABLES# 22 | 23 | #------------------------------- Run-time env ------------------------------- 24 | # compiler & MPI selection 25 | # compiler table: 26 | # --------------- 27 | # 0 VENDOR's compiler, Intel=icc, AMD=armclang, ARM=armgcc 28 | # 1 GNU/GCC compiler 29 | # 2 GNU/CLANG compiler 30 | # 3 INTEL/ICC compiler 31 | # 4 INTEL/ICX compiler 32 | # 5 AMD/CLANG compiler 33 | # 6 ARM/GCC compiler 34 | # 7 ARM/CLANG compiler 35 | # 36 | # 37 | # MPI table: 38 | # ---------- 39 | # 0 openmpi 40 | # 1 mpich 41 | # 2 intelmpi 42 | # 3 mvapich 43 | # 44 | # usage: env.sh 45 | # C M 46 | # env.sh 0 0 ## select vendor's native compilers with openmpi 47 | # env.sh 0 1 ## select vendor's native compilers with mpich 48 | # env.sh 0 2 ## select vendor's native compilers with intelmpi 49 | # env.sh 0 3 ## select vendor's native compilers with mvapich 50 | # env.sh 1 0 ## select GNU/GCC compilers with openmpi 51 | # env.sh ... 52 | 53 | PREFIX=/fsx 54 | source ${PREFIX}/scripts/env.sh 1 0 55 | #---------------------------------------------------------------------------- 56 | LOGDIR=${PREFIX}/log 57 | GPCNET_LOG=${LOGDIR}/mpirun_${SARCH}_${HPC_COMPILER}_${HPC_MPI}_gpcnet-${GPCNET_VERSION}.log 58 | mkdir -p ${LOGDIR} 59 | 60 | ulimit -s unlimited 61 | 62 | HPC_MPI_DEBUG=1 63 | # load MPI settings 64 | source ${PREFIX}/scripts/mpi_settings.sh 65 | 66 | echo "Running gpcnet on $(date)" 67 | 68 | START_DATE=$(date) 69 | echo "zzz *** ${START_DATE} *** - JobStart - gpcnet - ${HPC_COMPILER} - ${HPC_MPI}" >> ${GPCNET_LOG} 2>&1 70 | 71 | #export OMPI_MCA_coll_tuned_use_dynamic_rules=1 72 | ##export OMPI_MCA_coll_tuned_bcast_algorithm=1 73 | mpirun ${MPI_SHOW_BIND_OPTS} ${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI}/GPCNET-${GPCNET_VERSION}/network_test >> ${GPCNET_LOG} 2>&1 74 | mpirun ${MPI_SHOW_BIND_OPTS} ${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI}/GPCNET-${GPCNET_VERSION}/network_load_test >> ${GPCNET_LOG} 2>&1 75 | 76 | END_DATE=$(date) 77 | echo "zzz *** ${END_DATE} *** - JobEnd - gpcnet - ${HPC_COMPILER} - ${HPC_MPI}" >> ${GPCNET_LOG} 2>&1 78 | 79 | JOB_FINISH_TIME=$(($(date -d "${END_DATE}" +%s)-$(date -d "${START_DATE}" +%s))) 80 | echo "zzz *** $(date) *** - Job gpcnet took ${JOB_FINISH_TIME} seconds($(echo "scale=5;${JOB_FINISH_TIME}/3600" | bc) hours)." >> ${GPCNET_LOG} 2>&1 81 | -------------------------------------------------------------------------------- /scripts/submit_gpcnet_template.sbatch: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Copyright # Copyright (C) 2022 by Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 | # SPDX-License-Identifier: MIT 4 | 5 | #SBATCH --wait-all-nodes=1 6 | #SBATCH --ntasks-per-node=64 7 | #SBATCH --cpus-per-task=1 8 | #SBATCH --ntasks-per-core=1 9 | #SBATCH --export=ALL 10 | #SBATCH --exclusive 11 | #SBATCH -o XXPREFIXXX/log/gpcnet.out 12 | 13 | #--------------------------- customized Job env ----------------------------- 14 | #SBATCH --nodes=10 15 | #SBATCH --partition=c7gnpg 16 | 17 | export GPCNET_VERSION=git 18 | 19 | #---------------------------------------------------------------------------- 20 | 21 | #ENV VARIABLES# 22 | 23 | #------------------------------- Run-time env ------------------------------- 24 | # compiler & MPI selection 25 | # compiler table: 26 | # --------------- 27 | # 0 VENDOR's compiler, Intel=icc, AMD=armclang, ARM=armgcc 28 | # 1 GNU/GCC compiler 29 | # 2 GNU/CLANG compiler 30 | # 3 INTEL/ICC compiler 31 | # 4 INTEL/ICX compiler 32 | # 5 AMD/CLANG compiler 33 | # 6 ARM/GCC compiler 34 | # 7 ARM/CLANG compiler 35 | # 36 | # 37 | # MPI table: 38 | # ---------- 39 | # 0 openmpi 40 | # 1 mpich 41 | # 2 intelmpi 42 | # 3 mvapich 43 | # 44 | # usage: env.sh 45 | # C M 46 | # env.sh 0 0 ## select vendor's native compilers with openmpi 47 | # env.sh 0 1 ## select vendor's native compilers with mpich 48 | # env.sh 0 2 ## select vendor's native compilers with intelmpi 49 | # env.sh 0 3 ## select vendor's native compilers with mvapich 50 | # env.sh 1 0 ## select GNU/GCC compilers with openmpi 51 | # env.sh ... 52 | 53 | PREFIX=XXPREFIXXX 54 | source ${PREFIX}/scripts/env.sh 1 0 55 | #---------------------------------------------------------------------------- 56 | LOGDIR=${PREFIX}/log 57 | GPCNET_LOG=${LOGDIR}/mpirun_${SARCH}_${HPC_COMPILER}_${HPC_MPI}_gpcnet-${GPCNET_VERSION}.log 58 | mkdir -p ${LOGDIR} 59 | 60 | ulimit -s unlimited 61 | 62 | HPC_MPI_DEBUG=1 63 | # load MPI settings 64 | source ${PREFIX}/scripts/mpi_settings.sh 65 | 66 | echo "Running gpcnet on $(date)" 67 | 68 | START_DATE=$(date) 69 | echo "zzz *** ${START_DATE} *** - JobStart - gpcnet - ${HPC_COMPILER} - ${HPC_MPI}" >> ${GPCNET_LOG} 2>&1 70 | 71 | #export OMPI_MCA_coll_tuned_use_dynamic_rules=1 72 | ##export OMPI_MCA_coll_tuned_bcast_algorithm=1 73 | mpirun ${MPI_SHOW_BIND_OPTS} ${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI}/GPCNET-${GPCNET_VERSION}/network_test >> ${GPCNET_LOG} 2>&1 74 | mpirun ${MPI_SHOW_BIND_OPTS} ${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI}/GPCNET-${GPCNET_VERSION}/network_load_test >> ${GPCNET_LOG} 2>&1 75 | 76 | END_DATE=$(date) 77 | echo "zzz *** ${END_DATE} *** - JobEnd - gpcnet - ${HPC_COMPILER} - ${HPC_MPI}" >> ${GPCNET_LOG} 2>&1 78 | 79 | JOB_FINISH_TIME=$(($(date -d "${END_DATE}" +%s)-$(date -d "${START_DATE}" +%s))) 80 | echo "zzz *** $(date) *** - Job gpcnet took ${JOB_FINISH_TIME} seconds($(echo "scale=5;${JOB_FINISH_TIME}/3600" | bc) hours)." >> ${GPCNET_LOG} 2>&1 81 | -------------------------------------------------------------------------------- /scripts/submit_gromacs.sbatch: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Copyright # Copyright (C) 2022 by Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 | # SPDX-License-Identifier: MIT 4 | 5 | #SBATCH --wait-all-nodes=1 6 | #SBATCH --ntasks-per-node=64 7 | #SBATCH --cpus-per-task=1 8 | #SBATCH --ntasks-per-core=1 9 | #SBATCH --export=ALL 10 | #SBATCH --exclusive 11 | #SBATCH -o /fsx/log/gromacs.out 12 | 13 | #--------------------------- customized Job env ----------------------------- 14 | #SBATCH --nodes=2 15 | #SBATCH --partition=c6i 16 | 17 | PREFIX=/fsx 18 | 19 | export GROMACS_VERSION=2022.4 20 | export JOB_DIR=${PREFIX}/spooler/gromacs 21 | export JOB_INPUT="test_aws.tpr" 22 | #---------------------------------------------------------------------------- 23 | 24 | #ENV VARIABLES# 25 | 26 | #------------------------------- Run-time env ------------------------------- 27 | # compiler & MPI selection 28 | # compiler table: 29 | # --------------- 30 | # 0 VENDOR's compiler, Intel=icc, AMD=armclang, ARM=armgcc 31 | # 1 GNU/GCC compiler 32 | # 2 GNU/CLANG compiler 33 | # 3 INTEL/ICC compiler 34 | # 4 INTEL/ICX compiler 35 | # 5 AMD/CLANG compiler 36 | # 6 ARM/GCC compiler 37 | # 7 ARM/CLANG compiler 38 | # 39 | # 40 | # MPI table: 41 | # ---------- 42 | # 0 openmpi 43 | # 1 mpich 44 | # 2 intelmpi 45 | # 3 mvapich 46 | # 47 | # usage: env.sh 48 | # C M 49 | # env.sh 0 0 ## select vendor's native compilers with openmpi 50 | # env.sh 0 1 ## select vendor's native compilers with mpich 51 | # env.sh 0 2 ## select vendor's native compilers with intelmpi 52 | # env.sh 0 3 ## select vendor's native compilers with mvapich 53 | # env.sh 1 0 ## select GNU/GCC compilers with openmpi 54 | # env.sh ... 55 | 56 | source ${PREFIX}/scripts/env.sh 1 0 57 | #---------------------------------------------------------------------------- 58 | LOGDIR=${PREFIX}/log 59 | GROMACS_LOG=${LOGDIR}/mpirun_${SARCH}_${HPC_COMPILER}_${HPC_MPI}_gromacs-${GROMACS_VERSION}.log 60 | mkdir -p ${LOGDIR} 61 | 62 | NTOMP=2 63 | NSTEPS=20000 64 | 65 | ulimit -s unlimited 66 | #export MKL_NUM_THREADS=1 67 | #export OMP_NUM_THREADS=1 68 | 69 | HPC_MPI_DEBUG=1 70 | # load MPI settings 71 | source ${PREFIX}/scripts/mpi_settings.sh 72 | 73 | echo "Running GROMACS on $(date)" 74 | cd ${JOB_DIR} 75 | 76 | START_DATE=$(date) 77 | echo "zzz *** ${START_DATE} *** - JobStart - $(basename ${JOB_DIR}) - ${HPC_COMPILER} - ${HPC_MPI}" >> ${GROMACS_LOG} 2>&1 78 | 79 | mpirun ${MPI_SHOW_BIND_OPTS} gmx_mpi mdrun -nsteps ${NSTEPS} -ntomp ${NTOMP} -s ${JOB_INPUT} >> ${GROMACS_LOG} 2>&1 80 | 81 | END_DATE=$(date) 82 | echo "zzz *** ${END_DATE} *** - JobEnd - $(basename ${JOB_DIR}) - ${HPC_COMPILER} - ${HPC_MPI}" >> ${GROMACS_LOG} 2>&1 83 | 84 | JOB_FINISH_TIME=$(($(date -d "${END_DATE}" +%s)-$(date -d "${START_DATE}" +%s))) 85 | echo "zzz *** $(date) *** - Job ${JOB_DIR} took ${JOB_FINISH_TIME} seconds($(echo "scale=5;${JOB_FINISH_TIME}/3600" | bc) hours)." >> ${GROMACS_LOG} 2>&1 86 | -------------------------------------------------------------------------------- /scripts/submit_gromacs_template.sbatch: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Copyright # Copyright (C) 2022 by Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 | # SPDX-License-Identifier: MIT 4 | 5 | #SBATCH --wait-all-nodes=1 6 | #SBATCH --ntasks-per-node=64 7 | #SBATCH --cpus-per-task=1 8 | #SBATCH --ntasks-per-core=1 9 | #SBATCH --export=ALL 10 | #SBATCH --exclusive 11 | #SBATCH -o XXPREFIXXX/log/gromacs.out 12 | 13 | #--------------------------- customized Job env ----------------------------- 14 | #SBATCH --nodes=2 15 | #SBATCH --partition=c6i 16 | 17 | PREFIX=XXPREFIXXX 18 | 19 | export GROMACS_VERSION=2022.4 20 | export JOB_DIR=${PREFIX}/spooler/gromacs 21 | export JOB_INPUT="test_aws.tpr" 22 | #---------------------------------------------------------------------------- 23 | 24 | #ENV VARIABLES# 25 | 26 | #------------------------------- Run-time env ------------------------------- 27 | # compiler & MPI selection 28 | # compiler table: 29 | # --------------- 30 | # 0 VENDOR's compiler, Intel=icc, AMD=armclang, ARM=armgcc 31 | # 1 GNU/GCC compiler 32 | # 2 GNU/CLANG compiler 33 | # 3 INTEL/ICC compiler 34 | # 4 INTEL/ICX compiler 35 | # 5 AMD/CLANG compiler 36 | # 6 ARM/GCC compiler 37 | # 7 ARM/CLANG compiler 38 | # 39 | # 40 | # MPI table: 41 | # ---------- 42 | # 0 openmpi 43 | # 1 mpich 44 | # 2 intelmpi 45 | # 3 mvapich 46 | # 47 | # usage: env.sh 48 | # C M 49 | # env.sh 0 0 ## select vendor's native compilers with openmpi 50 | # env.sh 0 1 ## select vendor's native compilers with mpich 51 | # env.sh 0 2 ## select vendor's native compilers with intelmpi 52 | # env.sh 0 3 ## select vendor's native compilers with mvapich 53 | # env.sh 1 0 ## select GNU/GCC compilers with openmpi 54 | # env.sh ... 55 | 56 | source ${PREFIX}/scripts/env.sh 1 0 57 | #---------------------------------------------------------------------------- 58 | LOGDIR=${PREFIX}/log 59 | GROMACS_LOG=${LOGDIR}/mpirun_${SARCH}_${HPC_COMPILER}_${HPC_MPI}_gromacs-${GROMACS_VERSION}.log 60 | mkdir -p ${LOGDIR} 61 | 62 | NTOMP=2 63 | NSTEPS=20000 64 | 65 | ulimit -s unlimited 66 | #export MKL_NUM_THREADS=1 67 | #export OMP_NUM_THREADS=1 68 | 69 | HPC_MPI_DEBUG=1 70 | # load MPI settings 71 | source ${PREFIX}/scripts/mpi_settings.sh 72 | 73 | echo "Running GROMACS on $(date)" 74 | cd ${JOB_DIR} 75 | 76 | START_DATE=$(date) 77 | echo "zzz *** ${START_DATE} *** - JobStart - $(basename ${JOB_DIR}) - ${HPC_COMPILER} - ${HPC_MPI}" >> ${GROMACS_LOG} 2>&1 78 | 79 | mpirun ${MPI_SHOW_BIND_OPTS} gmx_mpi mdrun -nsteps ${NSTEPS} -ntomp ${NTOMP} -s ${JOB_INPUT} >> ${GROMACS_LOG} 2>&1 80 | 81 | END_DATE=$(date) 82 | echo "zzz *** ${END_DATE} *** - JobEnd - $(basename ${JOB_DIR}) - ${HPC_COMPILER} - ${HPC_MPI}" >> ${GROMACS_LOG} 2>&1 83 | 84 | JOB_FINISH_TIME=$(($(date -d "${END_DATE}" +%s)-$(date -d "${START_DATE}" +%s))) 85 | echo "zzz *** $(date) *** - Job ${JOB_DIR} took ${JOB_FINISH_TIME} seconds($(echo "scale=5;${JOB_FINISH_TIME}/3600" | bc) hours)." >> ${GROMACS_LOG} 2>&1 86 | -------------------------------------------------------------------------------- /scripts/submit_imb.sbatch: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Copyright # Copyright (C) 2022 by Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 | # SPDX-License-Identifier: MIT 4 | 5 | #SBATCH --wait-all-nodes=1 6 | #SBATCH --ntasks-per-node=1 7 | #SBATCH --cpus-per-task=1 8 | #SBATCH --ntasks-per-core=1 9 | #SBATCH --export=ALL 10 | #SBATCH --exclusive 11 | #SBATCH -o /fsx/log/imb.out 12 | 13 | #--------------------------- customized Job env ----------------------------- 14 | #SBATCH --nodes=2 15 | #SBATCH --partition=c6g 16 | 17 | export IMB_VERSION=2021.3 18 | 19 | #---------------------------------------------------------------------------- 20 | 21 | #ENV VARIABLES# 22 | 23 | #------------------------------- Run-time env ------------------------------- 24 | # compiler & MPI selection 25 | # compiler table: 26 | # --------------- 27 | # 0 VENDOR's compiler, Intel=icc, AMD=armclang, ARM=armgcc 28 | # 1 GNU/GCC compiler 29 | # 2 GNU/CLANG compiler 30 | # 3 INTEL/ICC compiler 31 | # 4 INTEL/ICX compiler 32 | # 5 AMD/CLANG compiler 33 | # 6 ARM/GCC compiler 34 | # 7 ARM/CLANG compiler 35 | # 36 | # 37 | # MPI table: 38 | # ---------- 39 | # 0 openmpi 40 | # 1 mpich 41 | # 2 intelmpi 42 | # 3 mvapich 43 | # 44 | # usage: env.sh 45 | # C M 46 | # env.sh 0 0 ## select vendor's native compilers with openmpi 47 | # env.sh 0 1 ## select vendor's native compilers with mpich 48 | # env.sh 0 2 ## select vendor's native compilers with intelmpi 49 | # env.sh 0 3 ## select vendor's native compilers with mvapich 50 | # env.sh 1 0 ## select GNU/GCC compilers with openmpi 51 | # env.sh ... 52 | 53 | PREFIX=/fsx 54 | source ${PREFIX}/scripts/env.sh 1 0 55 | #---------------------------------------------------------------------------- 56 | LOGDIR=${PREFIX}/log 57 | IMB_LOG=${LOGDIR}/mpirun_${SARCH}_${HPC_COMPILER}_${HPC_MPI}_imb-${IMB_VERSION}.log 58 | mkdir -p ${LOGDIR} 59 | 60 | ulimit -s unlimited 61 | 62 | HPC_MPI_DEBUG=1 63 | # load MPI settings 64 | source ${PREFIX}/scripts/mpi_settings.sh 65 | 66 | echo "Running imb on $(date)" 67 | 68 | START_DATE=$(date) 69 | echo "zzz *** ${START_DATE} *** - JobStart - imb - ${HPC_COMPILER} - ${HPC_MPI}" >> ${IMB_LOG} 2>&1 70 | 71 | #export OMPI_MCA_coll_tuned_use_dynamic_rules=1 72 | ##export OMPI_MCA_coll_tuned_bcast_algorithm=1 73 | mpirun ${MPI_SHOW_BIND_OPTS} ${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI}/mpi-benchmarks-IMB-v${IMB_VERSION}/IMB-MPI1 pingpong >> ${IMB_LOG} 2>&1 74 | 75 | END_DATE=$(date) 76 | echo "zzz *** ${END_DATE} *** - JobEnd - imb - ${HPC_COMPILER} - ${HPC_MPI}" >> ${IMB_LOG} 2>&1 77 | 78 | JOB_FINISH_TIME=$(($(date -d "${END_DATE}" +%s)-$(date -d "${START_DATE}" +%s))) 79 | echo "zzz *** $(date) *** - Job imb took ${JOB_FINISH_TIME} seconds($(echo "scale=5;${JOB_FINISH_TIME}/3600" | bc) hours)." >> ${IMB_LOG} 2>&1 80 | -------------------------------------------------------------------------------- /scripts/submit_imb_template.sbatch: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Copyright # Copyright (C) 2022 by Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 | # SPDX-License-Identifier: MIT 4 | 5 | #SBATCH --wait-all-nodes=1 6 | #SBATCH --ntasks-per-node=1 7 | #SBATCH --cpus-per-task=1 8 | #SBATCH --ntasks-per-core=1 9 | #SBATCH --export=ALL 10 | #SBATCH --exclusive 11 | #SBATCH -o XXPREFIXXX/log/imb.out 12 | 13 | #--------------------------- customized Job env ----------------------------- 14 | #SBATCH --nodes=2 15 | #SBATCH --partition=c6g 16 | 17 | export IMB_VERSION=2021.3 18 | 19 | #---------------------------------------------------------------------------- 20 | 21 | #ENV VARIABLES# 22 | 23 | #------------------------------- Run-time env ------------------------------- 24 | # compiler & MPI selection 25 | # compiler table: 26 | # --------------- 27 | # 0 VENDOR's compiler, Intel=icc, AMD=armclang, ARM=armgcc 28 | # 1 GNU/GCC compiler 29 | # 2 GNU/CLANG compiler 30 | # 3 INTEL/ICC compiler 31 | # 4 INTEL/ICX compiler 32 | # 5 AMD/CLANG compiler 33 | # 6 ARM/GCC compiler 34 | # 7 ARM/CLANG compiler 35 | # 36 | # 37 | # MPI table: 38 | # ---------- 39 | # 0 openmpi 40 | # 1 mpich 41 | # 2 intelmpi 42 | # 3 mvapich 43 | # 44 | # usage: env.sh 45 | # C M 46 | # env.sh 0 0 ## select vendor's native compilers with openmpi 47 | # env.sh 0 1 ## select vendor's native compilers with mpich 48 | # env.sh 0 2 ## select vendor's native compilers with intelmpi 49 | # env.sh 0 3 ## select vendor's native compilers with mvapich 50 | # env.sh 1 0 ## select GNU/GCC compilers with openmpi 51 | # env.sh ... 52 | 53 | PREFIX=XXPREFIXXX 54 | source ${PREFIX}/scripts/env.sh 1 0 55 | #---------------------------------------------------------------------------- 56 | LOGDIR=${PREFIX}/log 57 | IMB_LOG=${LOGDIR}/mpirun_${SARCH}_${HPC_COMPILER}_${HPC_MPI}_imb-${IMB_VERSION}.log 58 | mkdir -p ${LOGDIR} 59 | 60 | ulimit -s unlimited 61 | 62 | HPC_MPI_DEBUG=1 63 | # load MPI settings 64 | source ${PREFIX}/scripts/mpi_settings.sh 65 | 66 | echo "Running imb on $(date)" 67 | 68 | START_DATE=$(date) 69 | echo "zzz *** ${START_DATE} *** - JobStart - imb - ${HPC_COMPILER} - ${HPC_MPI}" >> ${IMB_LOG} 2>&1 70 | 71 | #export OMPI_MCA_coll_tuned_use_dynamic_rules=1 72 | ##export OMPI_MCA_coll_tuned_bcast_algorithm=1 73 | mpirun ${MPI_SHOW_BIND_OPTS} ${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI}/mpi-benchmarks-IMB-v${IMB_VERSION}/IMB-MPI1 pingpong >> ${IMB_LOG} 2>&1 74 | 75 | END_DATE=$(date) 76 | echo "zzz *** ${END_DATE} *** - JobEnd - imb - ${HPC_COMPILER} - ${HPC_MPI}" >> ${IMB_LOG} 2>&1 77 | 78 | JOB_FINISH_TIME=$(($(date -d "${END_DATE}" +%s)-$(date -d "${START_DATE}" +%s))) 79 | echo "zzz *** $(date) *** - Job imb took ${JOB_FINISH_TIME} seconds($(echo "scale=5;${JOB_FINISH_TIME}/3600" | bc) hours)." >> ${IMB_LOG} 2>&1 80 | -------------------------------------------------------------------------------- /scripts/submit_ior.sbatch: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Copyright # Copyright (C) 2022 by Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 | # SPDX-License-Identifier: MIT 4 | 5 | #SBATCH --wait-all-nodes=1 6 | #SBATCH --ntasks-per-node=4 7 | #SBATCH --cpus-per-task=1 8 | #SBATCH --ntasks-per-core=1 9 | #SBATCH --constraint=c7g 10 | #SBATCH --export=ALL 11 | #SBATCH --exclusive 12 | #SBATCH -o /fsx/log/ior.out 13 | 14 | #--------------------------- customized Job env ----------------------------- 15 | #SBATCH --nodes=2 16 | #SBATCH --partition=gxlarge 17 | 18 | export IOR_VERSION=4.0.0rc1 19 | 20 | #---------------------------------------------------------------------------- 21 | 22 | #ENV VARIABLES# 23 | 24 | #------------------------------- Run-time env ------------------------------- 25 | # compiler & MPI selection 26 | # compiler table: 27 | # --------------- 28 | # 0 VENDOR's compiler, Intel=icc, AMD=armclang, ARM=armgcc 29 | # 1 GNU/GCC compiler 30 | # 2 GNU/CLANG compiler 31 | # 3 INTEL/ICC compiler 32 | # 4 INTEL/ICX compiler 33 | # 5 AMD/CLANG compiler 34 | # 6 ARM/GCC compiler 35 | # 7 ARM/CLANG compiler 36 | # 37 | # 38 | # MPI table: 39 | # ---------- 40 | # 0 openmpi 41 | # 1 mpich 42 | # 2 intelmpi 43 | # 3 mvapich 44 | # 45 | # usage: env.sh 46 | # C M 47 | # env.sh 0 0 ## select vendor's native compilers with openmpi 48 | # env.sh 0 1 ## select vendor's native compilers with mpich 49 | # env.sh 0 2 ## select vendor's native compilers with intelmpi 50 | # env.sh 0 3 ## select vendor's native compilers with mvapich 51 | # env.sh 1 0 ## select GNU/GCC compilers with openmpi 52 | # env.sh ... 53 | 54 | PREFIX=/fsx 55 | source ${PREFIX}/scripts/env.sh 6 0 56 | #---------------------------------------------------------------------------- 57 | LOGDIR=${PREFIX}/log 58 | IOR_LOG=${LOGDIR}/mpirun_${SARCH}_${HPC_COMPILER}_${HPC_MPI}_ior-${IOR_VERSION}.log 59 | 60 | mkdir -p ${LOGDIR} 61 | 62 | JOBDIR=${PREFIX}/spooler/ior 63 | mkdir -p ${JOBDIR} 64 | cd ${JOBDIR} 65 | 66 | ulimit -s unlimited 67 | #export MKL_NUM_THREADS=1 68 | export OMP_NUM_THREADS=1 69 | 70 | HPC_MPI_DEBUG=1 71 | # load MPI settings 72 | source ${PREFIX}/scripts/mpi_settings.sh 73 | 74 | echo "Running ior on $(date)" 75 | 76 | START_DATE=$(date) 77 | echo "zzz *** ${START_DATE} *** - JobStart - ior - ${HPC_COMPILER} - ${HPC_MPI}" >> ${IOR_LOG} 2>&1 78 | 79 | #export OMPI_MCA_coll_tuned_use_dynamic_rules=1 80 | ##export OMPI_MCA_coll_tuned_bcast_algorithm=1 81 | mpirun ${MPI_SHOW_BIND_OPTS} ior --posix.odirect -t 1m -b 16m -s 200 -F >> ${IOR_LOG} 2>&1 82 | 83 | END_DATE=$(date) 84 | echo "zzz *** ${END_DATE} *** - JobEnd - ior - ${HPC_COMPILER} - ${HPC_MPI}" >> ${IOR_LOG} 2>&1 85 | 86 | JOB_FINISH_TIME=$(($(date -d "${END_DATE}" +%s)-$(date -d "${START_DATE}" +%s))) 87 | echo "zzz *** $(date) *** - Job ior took ${JOB_FINISH_TIME} seconds($(echo "scale=5;${JOB_FINISH_TIME}/3600" | bc) hours)." >> ${IOR_LOG} 2>&1 88 | -------------------------------------------------------------------------------- /scripts/submit_ior_template.sbatch: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Copyright # Copyright (C) 2022 by Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 | # SPDX-License-Identifier: MIT 4 | 5 | #SBATCH --wait-all-nodes=1 6 | #SBATCH --ntasks-per-node=4 7 | #SBATCH --cpus-per-task=1 8 | #SBATCH --ntasks-per-core=1 9 | #SBATCH --constraint=c7g 10 | #SBATCH --export=ALL 11 | #SBATCH --exclusive 12 | #SBATCH -o XXPREFIXXX/log/ior.out 13 | 14 | #--------------------------- customized Job env ----------------------------- 15 | #SBATCH --nodes=2 16 | #SBATCH --partition=gxlarge 17 | 18 | export IOR_VERSION=4.0.0rc1 19 | 20 | #---------------------------------------------------------------------------- 21 | 22 | #ENV VARIABLES# 23 | 24 | #------------------------------- Run-time env ------------------------------- 25 | # compiler & MPI selection 26 | # compiler table: 27 | # --------------- 28 | # 0 VENDOR's compiler, Intel=icc, AMD=armclang, ARM=armgcc 29 | # 1 GNU/GCC compiler 30 | # 2 GNU/CLANG compiler 31 | # 3 INTEL/ICC compiler 32 | # 4 INTEL/ICX compiler 33 | # 5 AMD/CLANG compiler 34 | # 6 ARM/GCC compiler 35 | # 7 ARM/CLANG compiler 36 | # 37 | # 38 | # MPI table: 39 | # ---------- 40 | # 0 openmpi 41 | # 1 mpich 42 | # 2 intelmpi 43 | # 3 mvapich 44 | # 45 | # usage: env.sh 46 | # C M 47 | # env.sh 0 0 ## select vendor's native compilers with openmpi 48 | # env.sh 0 1 ## select vendor's native compilers with mpich 49 | # env.sh 0 2 ## select vendor's native compilers with intelmpi 50 | # env.sh 0 3 ## select vendor's native compilers with mvapich 51 | # env.sh 1 0 ## select GNU/GCC compilers with openmpi 52 | # env.sh ... 53 | 54 | PREFIX=XXPREFIXXX 55 | source ${PREFIX}/scripts/env.sh 6 0 56 | #---------------------------------------------------------------------------- 57 | LOGDIR=${PREFIX}/log 58 | IOR_LOG=${LOGDIR}/mpirun_${SARCH}_${HPC_COMPILER}_${HPC_MPI}_ior-${IOR_VERSION}.log 59 | 60 | mkdir -p ${LOGDIR} 61 | 62 | JOBDIR=${PREFIX}/spooler/ior 63 | mkdir -p ${JOBDIR} 64 | cd ${JOBDIR} 65 | 66 | ulimit -s unlimited 67 | #export MKL_NUM_THREADS=1 68 | export OMP_NUM_THREADS=1 69 | 70 | HPC_MPI_DEBUG=1 71 | # load MPI settings 72 | source ${PREFIX}/scripts/mpi_settings.sh 73 | 74 | echo "Running ior on $(date)" 75 | 76 | START_DATE=$(date) 77 | echo "zzz *** ${START_DATE} *** - JobStart - ior - ${HPC_COMPILER} - ${HPC_MPI}" >> ${IOR_LOG} 2>&1 78 | 79 | #export OMPI_MCA_coll_tuned_use_dynamic_rules=1 80 | ##export OMPI_MCA_coll_tuned_bcast_algorithm=1 81 | mpirun ${MPI_SHOW_BIND_OPTS} ior --posix.odirect -t 1m -b 16m -s 200 -F >> ${IOR_LOG} 2>&1 82 | 83 | END_DATE=$(date) 84 | echo "zzz *** ${END_DATE} *** - JobEnd - ior - ${HPC_COMPILER} - ${HPC_MPI}" >> ${IOR_LOG} 2>&1 85 | 86 | JOB_FINISH_TIME=$(($(date -d "${END_DATE}" +%s)-$(date -d "${START_DATE}" +%s))) 87 | echo "zzz *** $(date) *** - Job ior took ${JOB_FINISH_TIME} seconds($(echo "scale=5;${JOB_FINISH_TIME}/3600" | bc) hours)." >> ${IOR_LOG} 2>&1 88 | -------------------------------------------------------------------------------- /scripts/submit_lammps.sbatch: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Copyright # Copyright (C) 2022 by Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 | # SPDX-License-Identifier: MIT 4 | 5 | #SBATCH --wait-all-nodes=1 6 | #SBATCH --ntasks-per-node=64 7 | #SBATCH --cpus-per-task=1 8 | #SBATCH --ntasks-per-core=1 9 | #SBATCH --export=ALL 10 | #SBATCH --exclusive 11 | #SBATCH -o /fsx/log/lammps.out 12 | 13 | #--------------------------- customized Job env ----------------------------- 14 | #SBATCH --nodes=2 15 | #SBATCH --partition=c6ipg 16 | 17 | export LAMMPS_VERSION=git 18 | 19 | #---------------------------------------------------------------------------- 20 | 21 | #ENV VARIABLES# 22 | 23 | #------------------------------- Run-time env ------------------------------- 24 | # compiler & MPI selection 25 | # compiler table: 26 | # --------------- 27 | # 0 VENDOR's compiler, Intel=icc, AMD=armclang, ARM=armgcc 28 | # 1 GNU/GCC compiler 29 | # 2 GNU/CLANG compiler 30 | # 3 INTEL/ICC compiler 31 | # 4 INTEL/ICX compiler 32 | # 5 AMD/CLANG compiler 33 | # 6 ARM/GCC compiler 34 | # 7 ARM/CLANG compiler 35 | # 36 | # 37 | # MPI table: 38 | # ---------- 39 | # 0 openmpi 40 | # 1 mpich 41 | # 2 intelmpi 42 | # 3 mvapich 43 | # 44 | # usage: env.sh 45 | # C M 46 | # env.sh 0 0 ## select vendor's native compilers with openmpi 47 | # env.sh 0 1 ## select vendor's native compilers with mpich 48 | # env.sh 0 2 ## select vendor's native compilers with intelmpi 49 | # env.sh 0 3 ## select vendor's native compilers with mvapich 50 | # env.sh 1 0 ## select GNU/GCC compilers with openmpi 51 | # env.sh ... 52 | 53 | PREFIX=/fsx 54 | source ${PREFIX}/scripts/env.sh 3 2 55 | #---------------------------------------------------------------------------- 56 | LOGDIR=${PREFIX}/log 57 | LAMMPS_LOG=${LOGDIR}/mpirun_${SARCH}_${HPC_COMPILER}_${HPC_MPI}_lammps-${LAMMPS_VERSION}.log 58 | 59 | mkdir -p ${LOGDIR} 60 | 61 | JOBDIR=${PREFIX}/spooler/lammps 62 | mkdir -p ${JOBDIR} 63 | cd ${JOBDIR} 64 | 65 | ulimit -s unlimited 66 | #export MKL_NUM_THREADS=1 67 | export OMP_NUM_THREADS=1 68 | 69 | HPC_MPI_DEBUG=1 70 | # load MPI settings 71 | source ${PREFIX}/scripts/mpi_settings.sh 72 | 73 | echo "Running lammps on $(date)" 74 | 75 | START_DATE=$(date) 76 | echo "zzz *** ${START_DATE} *** - JobStart - lammps - ${HPC_COMPILER} - ${HPC_MPI}" >> ${LAMMPS_LOG} 2>&1 77 | 78 | #export OMPI_MCA_coll_tuned_use_dynamic_rules=1 79 | ##export OMPI_MCA_coll_tuned_bcast_algorithm=1 80 | #srun ${MPI_SHOW_BIND_OPTS} --mpi=pmi2 lammps -in cu.in >> ${LAMMPS_LOG} 2>&1 81 | mpirun ${MPI_SHOW_BIND_OPTS} lmp -in cu.in >> ${LAMMPS_LOG} 2>&1 82 | 83 | END_DATE=$(date) 84 | echo "zzz *** ${END_DATE} *** - JobEnd - lammps - ${HPC_COMPILER} - ${HPC_MPI}" >> ${LAMMPS_LOG} 2>&1 85 | 86 | JOB_FINISH_TIME=$(($(date -d "${END_DATE}" +%s)-$(date -d "${START_DATE}" +%s))) 87 | echo "zzz *** $(date) *** - Job lammps took ${JOB_FINISH_TIME} seconds($(echo "scale=5;${JOB_FINISH_TIME}/3600" | bc) hours)." >> ${LAMMPS_LOG} 2>&1 88 | -------------------------------------------------------------------------------- /scripts/submit_lammps_template.sbatch: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Copyright # Copyright (C) 2022 by Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 | # SPDX-License-Identifier: MIT 4 | 5 | #SBATCH --wait-all-nodes=1 6 | #SBATCH --ntasks-per-node=64 7 | #SBATCH --cpus-per-task=1 8 | #SBATCH --ntasks-per-core=1 9 | #SBATCH --export=ALL 10 | #SBATCH --exclusive 11 | #SBATCH -o XXPREFIXXX/log/lammps.out 12 | 13 | #--------------------------- customized Job env ----------------------------- 14 | #SBATCH --nodes=2 15 | #SBATCH --partition=c6ipg 16 | 17 | export LAMMPS_VERSION=git 18 | 19 | #---------------------------------------------------------------------------- 20 | 21 | #ENV VARIABLES# 22 | 23 | #------------------------------- Run-time env ------------------------------- 24 | # compiler & MPI selection 25 | # compiler table: 26 | # --------------- 27 | # 0 VENDOR's compiler, Intel=icc, AMD=armclang, ARM=armgcc 28 | # 1 GNU/GCC compiler 29 | # 2 GNU/CLANG compiler 30 | # 3 INTEL/ICC compiler 31 | # 4 INTEL/ICX compiler 32 | # 5 AMD/CLANG compiler 33 | # 6 ARM/GCC compiler 34 | # 7 ARM/CLANG compiler 35 | # 36 | # 37 | # MPI table: 38 | # ---------- 39 | # 0 openmpi 40 | # 1 mpich 41 | # 2 intelmpi 42 | # 3 mvapich 43 | # 44 | # usage: env.sh 45 | # C M 46 | # env.sh 0 0 ## select vendor's native compilers with openmpi 47 | # env.sh 0 1 ## select vendor's native compilers with mpich 48 | # env.sh 0 2 ## select vendor's native compilers with intelmpi 49 | # env.sh 0 3 ## select vendor's native compilers with mvapich 50 | # env.sh 1 0 ## select GNU/GCC compilers with openmpi 51 | # env.sh ... 52 | 53 | PREFIX=XXPREFIXXX 54 | source ${PREFIX}/scripts/env.sh 3 2 55 | #---------------------------------------------------------------------------- 56 | LOGDIR=${PREFIX}/log 57 | LAMMPS_LOG=${LOGDIR}/mpirun_${SARCH}_${HPC_COMPILER}_${HPC_MPI}_lammps-${LAMMPS_VERSION}.log 58 | 59 | mkdir -p ${LOGDIR} 60 | 61 | JOBDIR=${PREFIX}/spooler/lammps 62 | mkdir -p ${JOBDIR} 63 | cd ${JOBDIR} 64 | 65 | ulimit -s unlimited 66 | #export MKL_NUM_THREADS=1 67 | export OMP_NUM_THREADS=1 68 | 69 | HPC_MPI_DEBUG=1 70 | # load MPI settings 71 | source ${PREFIX}/scripts/mpi_settings.sh 72 | 73 | echo "Running lammps on $(date)" 74 | 75 | START_DATE=$(date) 76 | echo "zzz *** ${START_DATE} *** - JobStart - lammps - ${HPC_COMPILER} - ${HPC_MPI}" >> ${LAMMPS_LOG} 2>&1 77 | 78 | #export OMPI_MCA_coll_tuned_use_dynamic_rules=1 79 | ##export OMPI_MCA_coll_tuned_bcast_algorithm=1 80 | #srun ${MPI_SHOW_BIND_OPTS} --mpi=pmi2 lammps -in cu.in >> ${LAMMPS_LOG} 2>&1 81 | mpirun ${MPI_SHOW_BIND_OPTS} lmp -in cu.in >> ${LAMMPS_LOG} 2>&1 82 | 83 | END_DATE=$(date) 84 | echo "zzz *** ${END_DATE} *** - JobEnd - lammps - ${HPC_COMPILER} - ${HPC_MPI}" >> ${LAMMPS_LOG} 2>&1 85 | 86 | JOB_FINISH_TIME=$(($(date -d "${END_DATE}" +%s)-$(date -d "${START_DATE}" +%s))) 87 | echo "zzz *** $(date) *** - Job lammps took ${JOB_FINISH_TIME} seconds($(echo "scale=5;${JOB_FINISH_TIME}/3600" | bc) hours)." >> ${LAMMPS_LOG} 2>&1 88 | -------------------------------------------------------------------------------- /scripts/submit_vasp.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | PREFIX=/fsx 5 | export VASP_VERSION=6.3.0 6 | export JOB_DIR=${PREFIX}/spooler/${JOB_ID:-06-opt_blind6_22_exp} 7 | #export JOB_DIR=${PREFIX}/spooler/07-opt_blind6_26_exp 8 | #export JOB_DIR=${PREFIX}/spooler/08-opt_blind6_234_exp 9 | 10 | #---------------------------------------------------------------------------- 11 | 12 | #ENV VARIABLES# 13 | 14 | #------------------------------- Run-time env ------------------------------- 15 | # compiler table: 16 | # --------------- 17 | # 0 VENDOR's compiler, Intel=icc, AMD=armclang, ARM=armgcc 18 | # 1 GNU/GCC compiler 19 | # 2 GNU/CLANG compiler 20 | # 3 INTEL/ICC compiler 21 | # 4 INTEL/ICX compiler 22 | # 5 AMD/CLANG compiler 23 | # 6 ARM/GCC compiler 24 | # 7 ARM/CLANG compiler 25 | # 26 | # 27 | # MPI table: 28 | # ---------- 29 | # 0 openmpi 30 | # 1 mpich 31 | # 2 intelmpi 32 | # 3 mvapich 33 | # 34 | # usage: env.sh 35 | # C M 36 | # env.sh 0 0 ## select vendor's native compilers with openmpi 37 | # env.sh 0 1 ## select vendor's native compilers with mpich 38 | # env.sh 0 2 ## select vendor's native compilers with intelmpi 39 | # env.sh 0 2 ## select vendor's native compilers with mvapich 40 | # env.sh 1 0 ## select GNU/GCC compilers with openmpi 41 | # env.sh ... 42 | 43 | source ${PREFIX}/scripts/env.sh 0 0 44 | 45 | #---------------------------------------------------------------------------- 46 | LOGDIR=${PREFIX}/log 47 | VASP_LOG=${LOGDIR}/mpirun_${SARCH}_${HPC_COMPILER}_${HPC_MPI}_vasp-${VASP_VERSION}.log 48 | mkdir -p ${LOGDIR} 49 | 50 | ulimit -s unlimited 51 | export MKL_NUM_THREADS=1 52 | export OMP_NUM_THREADS=1 53 | #export OMP_PLACES=cores 54 | #export OMP_PROC_BIND=close 55 | 56 | HPC_MPI_DEBUG=1 57 | # load MPI settings 58 | source ${PREFIX}/scripts/mpi_settings.sh 59 | 60 | echo "Running VASP on $(date)" 61 | cd ${JOB_DIR} 62 | NPROCS=$(cat /sys/devices/system/cpu/cpu*/topology/thread_siblings_list | cut -d, -f1 | sort -u | wc -l) 63 | 64 | START_DATE=$(date) 65 | echo "zzz *** ${START_DATE} *** - JobStart - $(basename ${JOB_DIR}) - ${HPC_COMPILER} - ${HPC_MPI}" >> ${VASP_LOG} 2>&1 66 | 67 | mpirun -np ${NPROCS} --bind-to hwthread --map-by core ${MPI_SHOW_BIND_OPTS} ${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI}/vasp.${VASP_VERSION}/bin/vasp_std >> ${VASP_LOG} 2>&1 68 | 69 | END_DATE=$(date) 70 | echo "zzz *** ${END_DATE} *** - JobEnd - $(basename ${JOB_DIR}) - ${HPC_COMPILER} - ${HPC_MPI}" >> ${VASP_LOG} 2>&1 71 | 72 | JOB_FINISH_TIME=$(($(date -d "${END_DATE}" +%s)-$(date -d "${START_DATE}" +%s))) 73 | echo "zzz *** $(date) *** - Job ${JOB_DIR} took ${JOB_FINISH_TIME} seconds($(echo "scale=5;${JOB_FINISH_TIME}/3600" | bc) hours)." >> ${VASP_LOG} 2>&1 74 | -------------------------------------------------------------------------------- /scripts/submit_vasp_template.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | PREFIX=XXPREFIXXX 5 | export VASP_VERSION=6.3.0 6 | export JOB_DIR=${PREFIX}/spooler/${JOB_ID:-06-opt_blind6_22_exp} 7 | #export JOB_DIR=${PREFIX}/spooler/07-opt_blind6_26_exp 8 | #export JOB_DIR=${PREFIX}/spooler/08-opt_blind6_234_exp 9 | 10 | #---------------------------------------------------------------------------- 11 | 12 | #ENV VARIABLES# 13 | 14 | #------------------------------- Run-time env ------------------------------- 15 | # compiler table: 16 | # --------------- 17 | # 0 VENDOR's compiler, Intel=icc, AMD=armclang, ARM=armgcc 18 | # 1 GNU/GCC compiler 19 | # 2 GNU/CLANG compiler 20 | # 3 INTEL/ICC compiler 21 | # 4 INTEL/ICX compiler 22 | # 5 AMD/CLANG compiler 23 | # 6 ARM/GCC compiler 24 | # 7 ARM/CLANG compiler 25 | # 26 | # 27 | # MPI table: 28 | # ---------- 29 | # 0 openmpi 30 | # 1 mpich 31 | # 2 intelmpi 32 | # 3 mvapich 33 | # 34 | # usage: env.sh 35 | # C M 36 | # env.sh 0 0 ## select vendor's native compilers with openmpi 37 | # env.sh 0 1 ## select vendor's native compilers with mpich 38 | # env.sh 0 2 ## select vendor's native compilers with intelmpi 39 | # env.sh 0 3 ## select vendor's native compilers with mvapich 40 | # env.sh 1 0 ## select GNU/GCC compilers with openmpi 41 | # env.sh ... 42 | 43 | source ${PREFIX}/scripts/env.sh 0 0 44 | 45 | #---------------------------------------------------------------------------- 46 | LOGDIR=${PREFIX}/log 47 | VASP_LOG=${LOGDIR}/mpirun_${SARCH}_${HPC_COMPILER}_${HPC_MPI}_vasp-${VASP_VERSION}.log 48 | mkdir -p ${LOGDIR} 49 | 50 | ulimit -s unlimited 51 | export MKL_NUM_THREADS=1 52 | export OMP_NUM_THREADS=1 53 | #export OMP_PLACES=cores 54 | #export OMP_PROC_BIND=close 55 | 56 | HPC_MPI_DEBUG=1 57 | # load MPI settings 58 | source ${PREFIX}/scripts/mpi_settings.sh 59 | 60 | echo "Running VASP on $(date)" 61 | cd ${JOB_DIR} 62 | NPROCS=$(cat /sys/devices/system/cpu/cpu*/topology/thread_siblings_list | cut -d, -f1 | sort -u | wc -l) 63 | 64 | START_DATE=$(date) 65 | echo "zzz *** ${START_DATE} *** - JobStart - $(basename ${JOB_DIR}) - ${HPC_COMPILER} - ${HPC_MPI}" >> ${VASP_LOG} 2>&1 66 | 67 | mpirun -np ${NPROCS} --bind-to hwthread --map-by core ${MPI_SHOW_BIND_OPTS} ${HPC_PREFIX}/${HPC_COMPILER}/${HPC_MPI}/vasp.${VASP_VERSION}/bin/vasp_std >> ${VASP_LOG} 2>&1 68 | 69 | END_DATE=$(date) 70 | echo "zzz *** ${END_DATE} *** - JobEnd - $(basename ${JOB_DIR}) - ${HPC_COMPILER} - ${HPC_MPI}" >> ${VASP_LOG} 2>&1 71 | 72 | JOB_FINISH_TIME=$(($(date -d "${END_DATE}" +%s)-$(date -d "${START_DATE}" +%s))) 73 | echo "zzz *** $(date) *** - Job ${JOB_DIR} took ${JOB_FINISH_TIME} seconds($(echo "scale=5;${JOB_FINISH_TIME}/3600" | bc) hours)." >> ${VASP_LOG} 2>&1 74 | --------------------------------------------------------------------------------