From 19207b246ff364be4f0e9d49c43bb59da3371e2c Mon Sep 17 00:00:00 2001 From: Mark Abraham Date: Wed, 7 Oct 2020 13:51:06 +0000 Subject: [PATCH] Update to oneAPI beta09 --- admin/containers/buildall.sh | 4 +- .../containers/scripted_gmx_docker_builds.py | 7 ++- admin/containers/utility.py | 6 ++- admin/gitlab-ci/global.gitlab-ci.yml | 1 + admin/gitlab-ci/gromacs.gitlab-ci.yml | 46 +++++++++---------- src/testutils/testoptions.h | 2 +- 6 files changed, 37 insertions(+), 29 deletions(-) mode change 100644 => 100755 admin/containers/scripted_gmx_docker_builds.py diff --git a/admin/containers/buildall.sh b/admin/containers/buildall.sh index b9e20e8505..1d2daad833 100644 --- a/admin/containers/buildall.sh +++ b/admin/containers/buildall.sh @@ -42,9 +42,9 @@ tag="gromacs/cmake-3.13.0-llvm-9-amdopencl-openmpi-master" tags[${#tags[@]}]=$tag python3 $SCRIPT --cmake 3.13.0 --llvm 9 --opencl amd --mpi openmpi --ubuntu 18.04 | docker build -t $tag - -tag="gromacs/cmake-3.17.2-oneapi-2021.1-beta08-master" +tag="gromacs/cmake-3.17.2-oneapi-2021.1-beta09-master" tags[${#tags[@]}]=$tag -python3 $SCRIPT --cmake 3.17.2 --oneapi 2021.1-beta08 | docker build -t $tag - +python3 $SCRIPT --cmake 3.17.2 --oneapi 2021.1-beta09 | docker build -t $tag - tag="gromacs/ci-docs-llvm-master" tags[${#tags[@]}]=$tag diff --git a/admin/containers/scripted_gmx_docker_builds.py b/admin/containers/scripted_gmx_docker_builds.py old mode 100644 new mode 100755 index af4aad09da..a7b155ac01 --- a/admin/containers/scripted_gmx_docker_builds.py +++ b/admin/containers/scripted_gmx_docker_builds.py @@ -343,13 +343,18 @@ def add_oneapi_compiler_build_stage(input_args, output_stages: typing.Mapping[st oneapi_stage = hpccm.Stage() oneapi_stage += hpccm.primitives.baseimage(image=base_image_tag(input_args), _as='oneapi-build') + version = str(input_args.oneapi) + # Add required components for the next stage (both for hpccm and Intel's setvars.sh script) oneapi_stage += hpccm.building_blocks.packages(ospackages=['wget', 'gnupg2', 'ca-certificates', 'lsb-release']) oneapi_stage += hpccm.building_blocks.packages( apt_keys=['https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB'], apt_repositories=['deb https://apt.repos.intel.com/oneapi all main'], # Add minimal packages (not the whole HPC toolkit!) - ospackages=['intel-oneapi-dpcpp-compiler', 'intel-oneapi-icc', 'intel-oneapi-mkl', 'intel-oneapi-mkl-devel'] + ospackages=['intel-oneapi-dpcpp-cpp-compiler-pro-{}'.format(version), + 'intel-oneapi-openmp-{}'.format(version), + 'intel-oneapi-mkl-{}'.format(version), + 'intel-oneapi-mkl-devel-{}'.format(version)] ) # Ensure that all bash shells on the final container will have access to oneAPI oneapi_stage += hpccm.primitives.shell( diff --git a/admin/containers/utility.py b/admin/containers/utility.py index edd65dfac5..5223e886f0 100644 --- a/admin/containers/utility.py +++ b/admin/containers/utility.py @@ -72,8 +72,10 @@ compiler_group.add_argument('--icc', type=int, nargs='?', const=19, default=None 'Some checking is implemented to avoid incompatible combinations') # TODO currently the installation merely gets the latest beta version of oneAPI, # not a specific version. GROMACS probably doesn't need to address that until -# oneAPI makes an official release. -compiler_group.add_argument('--oneapi', type=str, nargs='?', const="2021.1-beta08", default=None, +# oneAPI makes an official release. Also, the resulting container is a mix +# of packages with different betaXY version numbers, which hopefully works and +# is what Intel intends... +compiler_group.add_argument('--oneapi', type=str, nargs='?', const="2021.1-beta09", default=None, help='Select Intel oneAPI package version.') linux_group = parser.add_mutually_exclusive_group() diff --git a/admin/gitlab-ci/global.gitlab-ci.yml b/admin/gitlab-ci/global.gitlab-ci.yml index 49056b4959..c3a4bf30f7 100644 --- a/admin/gitlab-ci/global.gitlab-ci.yml +++ b/admin/gitlab-ci/global.gitlab-ci.yml @@ -82,6 +82,7 @@ # setvar.sh script - set +e - source /opt/intel/oneapi/setvars.sh + - set -e - mkdir -p ccache - export CCACHE_BASEDIR=${PWD} - export CCACHE_DIR=${PWD}/ccache diff --git a/admin/gitlab-ci/gromacs.gitlab-ci.yml b/admin/gitlab-ci/gromacs.gitlab-ci.yml index 04b41d7a0a..b96b584497 100644 --- a/admin/gitlab-ci/gromacs.gitlab-ci.yml +++ b/admin/gitlab-ci/gromacs.gitlab-ci.yml @@ -302,13 +302,13 @@ gromacs:clang-ASAN:configure: COMPILER_MAJOR_VERSION: 8 CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=ASAN" -gromacs:oneapi-2021.1-beta08-opencl:configure: +gromacs:oneapi-2021.1-beta09-opencl:configure: extends: - .gromacs:base:configure - .use-oneapi:base - .use-opencl - .rules:merge-requests - image: gromacs/cmake-3.17.2-oneapi-2021.1-beta08-master + image: gromacs/cmake-3.17.2-oneapi-2021.1-beta09-master variables: COMPILER_MAJOR_VERSION: 2021 @@ -387,13 +387,13 @@ gromacs:clang-8-cuda-10.1:release:configure: RELEASE_BUILD_DIR: release-builds-clang CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=RelWithAssert" -gromacs:oneapi-2021.1-beta08-opencl:release:configure: +gromacs:oneapi-2021.1-beta09-opencl:release:configure: extends: - .gromacs:base:release:configure - .use-oneapi:base - .use-opencl - .rules:nightly-only-for-release - image: gromacs/cmake-3.17.2-oneapi-2021.1-beta08-master + image: gromacs/cmake-3.17.2-oneapi-2021.1-beta09-master variables: COMPILER_MAJOR_VERSION: 2021 RELEASE_BUILD_DIR: release-builds-oneapi @@ -529,16 +529,16 @@ gromacs:clang-8:build: needs: - job: gromacs:clang-8:configure -gromacs:oneapi-2021.1-beta08-opencl:build: +gromacs:oneapi-2021.1-beta09-opencl:build: extends: - .variables:default - .gromacs:base:build - .use-ccache - .use-oneapi:base - .rules:merge-requests - image: gromacs/cmake-3.17.2-oneapi-2021.1-beta08-master + image: gromacs/cmake-3.17.2-oneapi-2021.1-beta09-master needs: - - job: gromacs:oneapi-2021.1-beta08-opencl:configure + - job: gromacs:oneapi-2021.1-beta09-opencl:configure gromacs:clang-9-mpi:build: extends: @@ -607,7 +607,7 @@ gromacs:clang-8-cuda-10.1:release:build: needs: - job: gromacs:clang-8-cuda-10.1:release:configure -gromacs:oneapi-2021.1-beta08-opencl:release:build: +gromacs:oneapi-2021.1-beta09-opencl:release:build: extends: - .variables:default - .gromacs:base:build @@ -619,9 +619,9 @@ gromacs:oneapi-2021.1-beta08-opencl:release:build: variables: BUILD_DIR: release-builds-oneapi COMPILER_MAJOR_VERSION: 2021 - image: gromacs/cmake-3.17.2-oneapi-2021.1-beta08-master + image: gromacs/cmake-3.17.2-oneapi-2021.1-beta09-master needs: - - job: gromacs:oneapi-2021.1-beta08-opencl:release:configure + - job: gromacs:oneapi-2021.1-beta09-opencl:release:configure # Jobs running during test stage @@ -785,14 +785,14 @@ gromacs:clang-UBSAN:test: needs: - job: gromacs:clang-UBSAN:build -gromacs:oneapi-2021.1-beta08-opencl:test: +gromacs:oneapi-2021.1-beta09-opencl:test: extends: - .gromacs:base:test - .use-oneapi:base - .rules:merge-requests - image: gromacs/cmake-3.17.2-oneapi-2021.1-beta08-master + image: gromacs/cmake-3.17.2-oneapi-2021.1-beta09-master needs: - - job: gromacs:oneapi-2021.1-beta08-opencl:build + - job: gromacs:oneapi-2021.1-beta09-opencl:build gromacs:clang-9-mpi:test: extends: @@ -938,14 +938,14 @@ gromacs:clang-9:regressiontest: - job: gromacs:clang-9-mpi:build - job: regressiontests:prepare -gromacs:oneapi-2021.1-beta08-opencl:regressiontest: +gromacs:oneapi-2021.1-beta09-opencl:regressiontest: extends: - .gromacs:base:regressiontest - .use-oneapi:base - .rules:merge-requests - image: gromacs/cmake-3.17.2-oneapi-2021.1-beta08-master + image: gromacs/cmake-3.17.2-oneapi-2021.1-beta09-master needs: - - job: gromacs:oneapi-2021.1-beta08-opencl:build + - job: gromacs:oneapi-2021.1-beta09-opencl:build - job: regressiontests:prepare gromacs:gcc-8-cuda-11.0:release:test: @@ -1009,18 +1009,18 @@ gromacs:clang-8-cuda-10.1:release:test: - job: gromacs:clang-8-cuda-10.1:release:configure - job: gromacs:clang-8-cuda-10.1:release:build -gromacs:oneapi-2021.1-beta08-opencl:release:test: +gromacs:oneapi-2021.1-beta09-opencl:release:test: extends: - .gromacs:base:test - .use-oneapi:base - .rules:nightly-only-for-release stage: release-tests - image: gromacs/cmake-3.17.2-oneapi-2021.1-beta08-master + image: gromacs/cmake-3.17.2-oneapi-2021.1-beta09-master variables: BUILD_DIR: release-builds-oneapi needs: - - job: gromacs:oneapi-2021.1-beta08-opencl:release:configure - - job: gromacs:oneapi-2021.1-beta08-opencl:release:build + - job: gromacs:oneapi-2021.1-beta09-opencl:release:configure + - job: gromacs:oneapi-2021.1-beta09-opencl:release:build gromacs:gcc-7:release:regressiontest: extends: @@ -1074,18 +1074,18 @@ gromacs:clang-8-cuda-10.1:release:regressiontest: - job: gromacs:clang-8-cuda-10.1:release:build - job: regressiontests:package -gromacs:oneapi-2021.1-beta08-opencl:release:regressiontest: +gromacs:oneapi-2021.1-beta09-opencl:release:regressiontest: extends: - .gromacs:base:regressiontest - .use-oneapi:base - .rules:nightly-only-for-release stage: release-tests - image: gromacs/cmake-3.17.2-oneapi-2021.1-beta08-master + image: gromacs/cmake-3.17.2-oneapi-2021.1-beta09-master variables: BUILD_DIR: release-builds-oneapi REGRESSIONTEST_PME_RANK_NUMBER: 0 REGRESSIONTEST_TOTAL_RANK_NUMBER: 2 REGRESSIONTEST_OMP_RANK_NUMBER: 1 needs: - - job: gromacs:oneapi-2021.1-beta08-opencl:release:build + - job: gromacs:oneapi-2021.1-beta09-opencl:release:build - job: regressiontests:package diff --git a/src/testutils/testoptions.h b/src/testutils/testoptions.h index 328c9a7f31..6b71215731 100644 --- a/src/testutils/testoptions.h +++ b/src/testutils/testoptions.h @@ -168,7 +168,7 @@ void initTestOptions(IOptionsContainer* options); { \ public: \ name() { ::gmx::test::registerTestOptions(#name, this); } \ - virtual void initOptions(::gmx::IOptionsContainer*(options)); \ + void initOptions(::gmx::IOptionsContainer*(options)) override; \ }; \ \ static gmx_unused name s_##name##Instance; \ -- 2.22.0