Update to oneAPI beta09
authorMark Abraham <mark.j.abraham@gmail.com>
Wed, 7 Oct 2020 13:51:06 +0000 (13:51 +0000)
committerMark Abraham <mark.j.abraham@gmail.com>
Wed, 7 Oct 2020 13:51:06 +0000 (13:51 +0000)
admin/containers/buildall.sh
admin/containers/scripted_gmx_docker_builds.py [changed mode: 0644->0755]
admin/containers/utility.py
admin/gitlab-ci/global.gitlab-ci.yml
admin/gitlab-ci/gromacs.gitlab-ci.yml
src/testutils/testoptions.h

index b9e20e8505bb754334e57b9eaeb5fec44e1ac9c3..1d2daad833eb52ebff8f4053e4ba1e8df7055bd5 100644 (file)
@@ -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
old mode 100644 (file)
new mode 100755 (executable)
index af4aad0..a7b155a
@@ -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(
index edd65dfac5130b8192faeb6b0a84764be5b51c9c..5223e886f068698ffe0c72db43b855d7bf8a5429 100644 (file)
@@ -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()
index 49056b495926395a77fdc6ffbd485d8b9aeb6923..c3a4bf30f71abc0aa6ee7f71d59cb73e8739b7d4 100644 (file)
@@ -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
index 04b41d7a0ae04842aa67ae410f381070272faabc..b96b584497238209a858792c2378ab2d13c9408b 100644 (file)
@@ -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
index 328c9a7f310bbe3fab0bdabfd88e59ae22254065..6b712157312adbdf2f743f58f1fe6f15228297ac 100644 (file)
@@ -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;                                                                         \