Skip to content
Snippets Groups Projects
Commit 59c55ba3 authored by Lars Bilke's avatar Lars Bilke
Browse files

Merge branch 'fix-mkl' into 'main'

Fix mkl and petsc

Closes #12

See merge request !5
parents 41efb983 c01a18a4
No related branches found
No related tags found
1 merge request!5Fix mkl and petsc
...@@ -37,6 +37,22 @@ dev images: ...@@ -37,6 +37,22 @@ dev images:
- poetry run ogscm compiler.py ogs.py -B --ogs off --cpu-target $CPU_TARGET - poetry run ogscm compiler.py ogs.py -B --ogs off --cpu-target $CPU_TARGET
- poetry run ogscm compiler.py ogs.py ogs_jupyter.py -B -R --build_args ' --progress=plain' --cvode --ccache --cpmcache --mfront --cpu-target $CPU_TARGET --cmake_args ' -DOGS_CPU_ARCHITECTURE=OFF -DOGS_BUILD_TESTING=OFF -DOGS_BUILD_PROCESSES=SteadyStateDiffusion' --runtime_base_image 'registry.opengeosys.org/ogs/ogs/jupyter/base-notebook-ubuntu:22.04_3.10' - poetry run ogscm compiler.py ogs.py ogs_jupyter.py -B -R --build_args ' --progress=plain' --cvode --ccache --cpmcache --mfront --cpu-target $CPU_TARGET --cmake_args ' -DOGS_CPU_ARCHITECTURE=OFF -DOGS_BUILD_TESTING=OFF -DOGS_BUILD_PROCESSES=SteadyStateDiffusion' --runtime_base_image 'registry.opengeosys.org/ogs/ogs/jupyter/base-notebook-ubuntu:22.04_3.10'
build ogs:
tags: ["envinf23", "shell"]
stage: build
rules:
- if: $CI_COMMIT_TAG
when: never
- if: $CI_PIPELINE_SOURCE == "web"
when: never
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
script:
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
- black --check ogscm
- poetry install
- poetry run ogscm compiler.py mpi.py ogs.py -B --ogs ogs/ogs@master --build_args ' --progress=plain' --cvode --ccache --cpmcache --mfront --mkl --cmake_args ' -DOGS_BUILD_PROCESSES=SteadyStateDiffusion'
- poetry run ogscm compiler.py mpi.py ogs.py -B --ogs ogs/ogs@master --build_args ' --progress=plain' --cvode --ccache --cpmcache --mfront --pm off --cmake_args ' -DOGS_BUILD_PROCESSES=SteadyStateDiffusion'
release: release:
stage: release stage: release
image: registry.gitlab.com/gitlab-org/release-cli:latest image: registry.gitlab.com/gitlab-org/release-cli:latest
......
...@@ -136,6 +136,8 @@ class ogs(bb_base, hpccm.templates.CMakeBuild, hpccm.templates.rm): ...@@ -136,6 +136,8 @@ class ogs(bb_base, hpccm.templates.CMakeBuild, hpccm.templates.rm):
) )
# Configure and build # Configure and build
if "-DOGS_USE_MKL=ON" in self.__cmake_args:
self.__commands.append(". /opt/intel/oneapi/setvars.sh")
self.__commands.append( self.__commands.append(
self.configure_step( self.configure_step(
directory="{}/src".format(self.__prefix), directory="{}/src".format(self.__prefix),
......
...@@ -13,7 +13,6 @@ from hpccm.building_blocks import ( ...@@ -13,7 +13,6 @@ from hpccm.building_blocks import (
generic_autotools, generic_autotools,
generic_cmake, generic_cmake,
hdf5, hdf5,
mkl,
packages, packages,
pip, pip,
) )
...@@ -332,9 +331,22 @@ versions_master = json.loads( ...@@ -332,9 +331,22 @@ versions_master = json.loads(
) )
if local_args.mkl: if local_args.mkl:
Stage0 += mkl(eula=True, mklvars=False) Stage0 += packages(ospackages=["ca-certificates", "gnupg", "wget"])
# For 32-bit mkl_link_tool: mkl_version = "2021.4.0"
Stage0 += packages(apt=["lib32stdc++6"], yum=["libstdc++.i686"]) Stage0 += 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"],
ospackages=[f"intel-oneapi-mkl-devel-{mkl_version}"],
)
Stage1 += 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"],
ospackages=[f"intel-oneapi-mkl-{mkl_version}"],
)
cmake_args.append("-DOGS_USE_MKL=ON") cmake_args.append("-DOGS_USE_MKL=ON")
if local_args.ogs != "clean": if local_args.ogs != "clean":
...@@ -497,20 +509,14 @@ if local_args.ogs != "clean": ...@@ -497,20 +509,14 @@ if local_args.ogs != "clean":
"--CXXFLAGS='-O3'", "--CXXFLAGS='-O3'",
"--FFLAGS='-O3'", "--FFLAGS='-O3'",
"--with-debugging=no", "--with-debugging=no",
"--download-f2cblaslapack=./f2cblaslapack-3.4.2.q4.tar.gz", "--download-f2cblaslapack=1",
] ]
# TODO: remove last line and wget in preconfigure when upgrading
# to PETSc > 3.18
petsc_configure_opts.extend(petsc_args) petsc_configure_opts.extend(petsc_args)
Stage0 += generic_autotools( Stage0 += generic_autotools(
configure_opts=petsc_configure_opts, configure_opts=petsc_configure_opts,
devel_environment={"CMAKE_PREFIX_PATH": "/usr/local/petsc"}, devel_environment={"CMAKE_PREFIX_PATH": "/usr/local/petsc"},
directory=f"petsc-{petsc_version}", directory=f"petsc-{petsc_version}",
ldconfig=True, ldconfig=True,
preconfigure=[
"wget http://ftp.mcs.anl.gov/pub/petsc/externalpackages/f2cblaslapack-3.4.2.q4.tar.gz",
"sed -i -- 's/python/python3/g' configure",
],
prefix="/usr/local/petsc", prefix="/usr/local/petsc",
toolchain=toolchain, toolchain=toolchain,
url=f"http://ftp.mcs.anl.gov/pub/petsc/release-snapshots/petsc-lite-{petsc_version}.tar.gz", url=f"http://ftp.mcs.anl.gov/pub/petsc/release-snapshots/petsc-lite-{petsc_version}.tar.gz",
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment