Compare commits

...

8 Commits

Author SHA1 Message Date
Buldram
755a4054b2 zuo: add v1.12 (#49678) 2025-03-27 08:45:35 -07:00
Seth R. Johnson
040d747a86 g4tendl: avoid closing braket that breaks lmod (#49721) 2025-03-27 09:44:16 -06:00
Jon Rood
9440894173 hdf5: add version 1.14.6. (#49704) 2025-03-27 08:40:10 -07:00
Alex Tyler Chapman
4e42e3c2ec update gslib package to include version 1.0.9 (#49710) 2025-03-27 08:38:44 -07:00
Wouter Deconinck
662bf113e2 ensmallen: depends on c (#49719) 2025-03-27 08:36:24 -07:00
Wouter Deconinck
7e11fd62e2 geant4: add v11.3.1 (#49700) 2025-03-27 16:08:57 +01:00
Massimiliano Culpo
a6c22f2690 Update documentation after compiler as deps (#49715) 2025-03-27 11:19:35 +01:00
Massimiliano Culpo
4894668ece Remove "classic" Intel packages (#45188) 2025-03-27 10:13:33 +01:00
78 changed files with 378 additions and 3162 deletions

View File

@@ -63,7 +63,6 @@ on these ideas for each distinct build system that Spack supports:
build_systems/cudapackage
build_systems/custompackage
build_systems/inteloneapipackage
build_systems/intelpackage
build_systems/rocmpackage
build_systems/sourceforgepackage

View File

@@ -33,9 +33,6 @@ For more information on a specific package, do::
spack info --all <package-name>
Intel no longer releases new versions of Parallel Studio, which can be
used in Spack via the :ref:`intelpackage`. All of its components can
now be found in oneAPI.
Examples
========
@@ -50,34 +47,8 @@ Install the oneAPI compilers::
spack install intel-oneapi-compilers
Add the compilers to your ``compilers.yaml`` so spack can use them::
spack compiler add `spack location -i intel-oneapi-compilers`/compiler/latest/bin
Verify that the compilers are available::
spack compiler list
Note that 2024 and later releases do not include ``icc``. Before 2024,
the package layout was different::
spack compiler add `spack location -i intel-oneapi-compilers`/compiler/latest/linux/bin/intel64
spack compiler add `spack location -i intel-oneapi-compilers`/compiler/latest/linux/bin
The ``intel-oneapi-compilers`` package includes 2 families of
compilers:
* ``intel``: ``icc``, ``icpc``, ``ifort``. Intel's *classic*
compilers. 2024 and later releases contain ``ifort``, but not
``icc`` and ``icpc``.
* ``oneapi``: ``icx``, ``icpx``, ``ifx``. Intel's new generation of
compilers based on LLVM.
To build the ``patchelf`` Spack package with ``icc``, do::
spack install patchelf%intel
To build with with ``icx``, do ::
To build the ``patchelf`` Spack package with ``icx``, do::
spack install patchelf%oneapi
@@ -92,15 +63,6 @@ Install the oneAPI compilers::
spack install intel-oneapi-compilers
Add the compilers to your ``compilers.yaml`` so Spack can use them::
spack compiler add `spack location -i intel-oneapi-compilers`/compiler/latest/bin
spack compiler add `spack location -i intel-oneapi-compilers`/compiler/latest/bin
Verify that the compilers are available::
spack compiler list
Clone `spack-configs <https://github.com/spack/spack-configs>`_ repo and activate Intel oneAPI CPU environment::
git clone https://github.com/spack/spack-configs
@@ -149,7 +111,7 @@ Compilers
---------
To use the compilers, add some information about the installation to
``compilers.yaml``. For most users, it is sufficient to do::
``packages.yaml``. For most users, it is sufficient to do::
spack compiler add /opt/intel/oneapi/compiler/latest/bin
@@ -157,7 +119,7 @@ Adapt the paths above if you did not install the tools in the default
location. After adding the compilers, using them is the same
as if you had installed the ``intel-oneapi-compilers`` package.
Another option is to manually add the configuration to
``compilers.yaml`` as described in :ref:`Compiler configuration
``packages.yaml`` as described in :ref:`Compiler configuration
<compiler-config>`.
Before 2024, the directory structure was different::
@@ -200,15 +162,5 @@ You can also use Spack-installed libraries. For example::
Will update your environment CPATH, LIBRARY_PATH, and other
environment variables for building an application with oneMKL.
More information
================
This section describes basic use of oneAPI, especially if it has
changed compared to Parallel Studio. See :ref:`intelpackage` for more
information on :ref:`intel-virtual-packages`,
:ref:`intel-unrelated-packages`,
:ref:`intel-integrating-external-libraries`, and
:ref:`using-mkl-tips`.
.. _`Intel installers`: https://software.intel.com/content/www/us/en/develop/documentation/installation-guide-for-intel-oneapi-toolkits-linux/top.html

File diff suppressed because it is too large Load Diff

View File

@@ -12,8 +12,7 @@ The ``ROCmPackage`` is not a build system but a helper package. Like ``CudaPacka
it provides standard variants, dependencies, and conflicts to facilitate building
packages using GPUs though for AMD in this case.
You can find the source for this package (and suggestions for setting up your
``compilers.yaml`` and ``packages.yaml`` files) at
You can find the source for this package (and suggestions for setting up your ``packages.yaml`` file) at
`<https://github.com/spack/spack/blob/develop/lib/spack/spack/build_systems/rocm.py>`__.
^^^^^^^^

View File

@@ -11,7 +11,7 @@ Configuration Files
Spack has many configuration files. Here is a quick list of them, in
case you want to skip directly to specific docs:
* :ref:`compilers.yaml <compiler-config>`
* :ref:`packages.yaml <compiler-config>`
* :ref:`concretizer.yaml <concretizer-options>`
* :ref:`config.yaml <config-yaml>`
* :ref:`include.yaml <include-yaml>`
@@ -95,7 +95,7 @@ are six configuration scopes. From lowest to highest:
precedence over all other scopes.
Each configuration directory may contain several configuration files,
such as ``config.yaml``, ``compilers.yaml``, or ``mirrors.yaml``. When
such as ``config.yaml``, ``packages.yaml``, or ``mirrors.yaml``. When
configurations conflict, settings from higher-precedence scopes override
lower-precedence settings.

View File

@@ -686,7 +686,7 @@ the environment.
spack:
include:
- environment/relative/path/to/config.yaml
- https://github.com/path/to/raw/config/compilers.yaml
- https://github.com/path/to/raw/config/packages.yaml
- /absolute/path/to/packages.yaml
- path: /path/to/$os/$target/environment
optional: true

View File

@@ -254,12 +254,11 @@ directory.
Compiler configuration
----------------------
Spack has the ability to build packages with multiple compilers and
compiler versions. Compilers can be made available to Spack by
specifying them manually in ``compilers.yaml`` or ``packages.yaml``,
or automatically by running ``spack compiler find``, but for
convenience Spack will automatically detect compilers the first time
it needs them.
Spack has the ability to build packages with multiple compilers and compiler versions.
Compilers can be made available to Spack by specifying them manually in ``packages.yaml``,
or automatically by running ``spack compiler find``.
For convenience, Spack will automatically detect compilers the first time it needs them,
if none is available.
.. _cmd-spack-compilers:
@@ -274,16 +273,11 @@ compilers`` or ``spack compiler list``:
$ spack compilers
==> Available compilers
-- gcc ---------------------------------------------------------
gcc@4.9.0 gcc@4.8.0 gcc@4.7.0 gcc@4.6.2 gcc@4.4.7
gcc@4.8.2 gcc@4.7.1 gcc@4.6.3 gcc@4.6.1 gcc@4.1.2
-- intel -------------------------------------------------------
intel@15.0.0 intel@14.0.0 intel@13.0.0 intel@12.1.0 intel@10.0
intel@14.0.3 intel@13.1.1 intel@12.1.5 intel@12.0.4 intel@9.1
intel@14.0.2 intel@13.1.0 intel@12.1.3 intel@11.1
intel@14.0.1 intel@13.0.1 intel@12.1.2 intel@10.1
-- clang -------------------------------------------------------
clang@3.4 clang@3.3 clang@3.2 clang@3.1
-- gcc ubuntu20.04-x86_64 ---------------------------------------
gcc@9.4.0 gcc@8.4.0 gcc@10.5.0
-- llvm ubuntu20.04-x86_64 --------------------------------------
llvm@12.0.0 llvm@11.0.0 llvm@10.0.0
Any of these compilers can be used to build Spack packages. More on
how this is done is in :ref:`sec-specs`.
@@ -302,16 +296,22 @@ An alias for ``spack compiler find``.
``spack compiler find``
^^^^^^^^^^^^^^^^^^^^^^^
Lists the compilers currently available to Spack. If you do not see
a compiler in this list, but you want to use it with Spack, you can
simply run ``spack compiler find`` with the path to where the
compiler is installed. For example:
If you do not see a compiler in the list shown by:
.. code-block:: console
$ spack compiler find /usr/local/tools/ic-13.0.079
==> Added 1 new compiler to ~/.spack/linux/compilers.yaml
intel@13.0.079
$ spack compiler list
but you want to use it with Spack, you can simply run ``spack compiler find`` with the
path to where the compiler is installed. For example:
.. code-block:: console
$ spack compiler find /opt/intel/oneapi/compiler/2025.1/bin/
==> Added 1 new compiler to /home/user/.spack/packages.yaml
intel-oneapi-compilers@2025.1.0
==> Compilers are defined in the following files:
/home/user/.spack/packages.yaml
Or you can run ``spack compiler find`` with no arguments to force
auto-detection. This is useful if you do not know where compilers are
@@ -322,7 +322,7 @@ installed, but you know that new compilers have been added to your
$ module load gcc/4.9.0
$ spack compiler find
==> Added 1 new compiler to ~/.spack/linux/compilers.yaml
==> Added 1 new compiler to /home/user/.spack/packages.yaml
gcc@4.9.0
This loads the environment module for gcc-4.9.0 to add it to
@@ -331,7 +331,7 @@ This loads the environment module for gcc-4.9.0 to add it to
.. note::
By default, spack does not fill in the ``modules:`` field in the
``compilers.yaml`` file. If you are using a compiler from a
``packages.yaml`` file. If you are using a compiler from a
module, then you should add this field manually.
See the section on :ref:`compilers-requiring-modules`.
@@ -341,91 +341,82 @@ This loads the environment module for gcc-4.9.0 to add it to
``spack compiler info``
^^^^^^^^^^^^^^^^^^^^^^^
If you want to see specifics on a particular compiler, you can run
``spack compiler info`` on it:
If you want to see additional information on some specific compilers, you can run ``spack compiler info`` on it:
.. code-block:: console
$ spack compiler info intel@15
intel@15.0.0:
paths:
cc = /usr/local/bin/icc-15.0.090
cxx = /usr/local/bin/icpc-15.0.090
f77 = /usr/local/bin/ifort-15.0.090
fc = /usr/local/bin/ifort-15.0.090
modules = []
operating_system = centos6
...
$ spack compiler info gcc
gcc@=8.4.0 languages='c,c++,fortran' arch=linux-ubuntu20.04-x86_64:
prefix: /usr
compilers:
c: /usr/bin/gcc-8
cxx: /usr/bin/g++-8
fortran: /usr/bin/gfortran-8
This shows which C, C++, and Fortran compilers were detected by Spack.
Notice also that we didn't have to be too specific about the
version. We just said ``intel@15``, and information about the only
matching Intel compiler was displayed.
gcc@=9.4.0 languages='c,c++,fortran' arch=linux-ubuntu20.04-x86_64:
prefix: /usr
compilers:
c: /usr/bin/gcc
cxx: /usr/bin/g++
fortran: /usr/bin/gfortran
gcc@=10.5.0 languages='c,c++,fortran' arch=linux-ubuntu20.04-x86_64:
prefix: /usr
compilers:
c: /usr/bin/gcc-10
cxx: /usr/bin/g++-10
fortran: /usr/bin/gfortran-10
This shows the details of the compilers that were detected by Spack.
Notice also that we didn't have to be too specific about the version. We just said ``gcc``, and we got information
about all the matching compilers.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Manual compiler configuration
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
If auto-detection fails, you can manually configure a compiler by
editing your ``~/.spack/<platform>/compilers.yaml`` file. You can do this by running
``spack config edit compilers``, which will open the file in
If auto-detection fails, you can manually configure a compiler by editing your ``~/.spack/packages.yaml`` file.
You can do this by running ``spack config edit packages``, which will open the file in
:ref:`your favorite editor <controlling-the-editor>`.
Each compiler configuration in the file looks like this:
Each compiler has an "external" entry in the file with some ``extra_attributes``:
.. code-block:: yaml
compilers:
- compiler:
modules: []
operating_system: centos6
paths:
cc: /usr/local/bin/icc-15.0.024-beta
cxx: /usr/local/bin/icpc-15.0.024-beta
f77: /usr/local/bin/ifort-15.0.024-beta
fc: /usr/local/bin/ifort-15.0.024-beta
spec: intel@15.0.0
packages:
gcc:
externals:
- spec: gcc@10.5.0 languages='c,c++,fortran'
prefix: /usr
extra_attributes:
compilers:
c: /usr/bin/gcc-10
cxx: /usr/bin/g++-10
fortran: /usr/bin/gfortran-10
For compilers that do not support Fortran (like ``clang``), put
``None`` for ``f77`` and ``fc``:
The compiler executables are listed under ``extra_attributes:compilers``, and are keyed by language.
Once you save the file, the configured compilers will show up in the list displayed by ``spack compilers``.
.. code-block:: yaml
compilers:
- compiler:
modules: []
operating_system: centos6
paths:
cc: /usr/bin/clang
cxx: /usr/bin/clang++
f77: None
fc: None
spec: clang@3.3svn
Once you save the file, the configured compilers will show up in the
list displayed by ``spack compilers``.
You can also add compiler flags to manually configured compilers. These
flags should be specified in the ``flags`` section of the compiler
specification. The valid flags are ``cflags``, ``cxxflags``, ``fflags``,
You can also add compiler flags to manually configured compilers. These flags should be specified in the
``flags`` section of the compiler specification. The valid flags are ``cflags``, ``cxxflags``, ``fflags``,
``cppflags``, ``ldflags``, and ``ldlibs``. For example:
.. code-block:: yaml
compilers:
- compiler:
modules: []
operating_system: centos6
paths:
cc: /usr/bin/gcc
cxx: /usr/bin/g++
f77: /usr/bin/gfortran
fc: /usr/bin/gfortran
flags:
cflags: -O3 -fPIC
cxxflags: -O3 -fPIC
cppflags: -O3 -fPIC
spec: gcc@4.7.2
packages:
gcc:
externals:
- spec: gcc@10.5.0 languages='c,c++,fortran'
prefix: /usr
extra_attributes:
compilers:
c: /usr/bin/gcc-10
cxx: /usr/bin/g++-10
fortran: /usr/bin/gfortran-10
flags:
cflags: -O3 -fPIC
cxxflags: -O3 -fPIC
cppflags: -O3 -fPIC
These flags will be treated by spack as if they were entered from
the command line each time this compiler is used. The compiler wrappers
@@ -440,95 +431,44 @@ These variables should be specified in the ``environment`` section of the compil
specification. The operations available to modify the environment are ``set``, ``unset``,
``prepend_path``, ``append_path``, and ``remove_path``. For example:
.. code-block:: yaml
compilers:
- compiler:
modules: []
operating_system: centos6
paths:
cc: /opt/intel/oneapi/compiler/latest/linux/bin/icx
cxx: /opt/intel/oneapi/compiler/latest/linux/bin/icpx
f77: /opt/intel/oneapi/compiler/latest/linux/bin/ifx
fc: /opt/intel/oneapi/compiler/latest/linux/bin/ifx
spec: oneapi@latest
environment:
set:
MKL_ROOT: "/path/to/mkl/root"
unset: # A list of environment variables to unset
- CC
prepend_path: # Similar for append|remove_path
LD_LIBRARY_PATH: /ld/paths/added/by/setvars/sh
.. note::
Spack is in the process of moving compilers from a separate
attribute to be handled like all other packages. As part of this
process, the ``compilers.yaml`` section will eventually be replaced
by configuration in the ``packages.yaml`` section. This new
configuration is now available, although it is not yet the default
behavior.
Compilers can also be configured as external packages in the
``packages.yaml`` config file. Any external package for a compiler
(e.g. ``gcc`` or ``llvm``) will be treated as a configured compiler
assuming the paths to the compiler executables are determinable from
the prefix.
If the paths to the compiler executable are not determinable from the
prefix, you can add them to the ``extra_attributes`` field. Similarly,
all other fields from the compilers config can be added to the
``extra_attributes`` field for an external representing a compiler.
Note that the format for the ``paths`` field in the
``extra_attributes`` section is different than in the ``compilers``
config. For compilers configured as external packages, the section is
named ``compilers`` and the dictionary maps language names (``c``,
``cxx``, ``fortran``) to paths, rather than using the names ``cc``,
``fc``, and ``f77``.
.. code-block:: yaml
packages:
gcc:
external:
- spec: gcc@12.2.0 arch=linux-rhel8-skylake
prefix: /usr
extra_attributes:
environment:
set:
GCC_ROOT: /usr
external:
- spec: llvm+clang@15.0.0 arch=linux-rhel8-skylake
prefix: /usr
intel-oneapi-compilers:
externals:
- spec: intel-oneapi-compilers@2025.1.0
prefix: /opt/intel/oneapi
extra_attributes:
compilers:
c: /usr/bin/clang-with-suffix
cxx: /usr/bin/clang++-with-extra-info
fortran: /usr/bin/gfortran
extra_rpaths:
- /usr/lib/llvm/
c: /opt/intel/oneapi/compiler/2025.1/bin/icx
cxx: /opt/intel/oneapi/compiler/2025.1/bin/icpx
fortran: /opt/intel/oneapi/compiler/2025.1/bin/ifx
environment:
set:
MKL_ROOT: "/path/to/mkl/root"
unset: # A list of environment variables to unset
- CC
prepend_path: # Similar for append|remove_path
LD_LIBRARY_PATH: /ld/paths/added/by/setvars/sh
^^^^^^^^^^^^^^^^^^^^^^^
Build Your Own Compiler
^^^^^^^^^^^^^^^^^^^^^^^
If you are particular about which compiler/version you use, you might
wish to have Spack build it for you. For example:
If you are particular about which compiler/version you use, you might wish to have Spack build it for you.
For example:
.. code-block:: console
$ spack install gcc@4.9.3
$ spack install gcc@14+binutils
Once that has finished, you will need to add it to your
``compilers.yaml`` file. You can then set Spack to use it by default
by adding the following to your ``packages.yaml`` file:
Once the compiler is installed, you can start using it without additional configuration:
.. code-block:: yaml
.. code-block:: console
packages:
all:
compiler: [gcc@4.9.3]
$ spack install hdf5~mpi %gcc@14
The same holds true for compilers that are made available from buildcaches, when reusing them is allowed.
.. _compilers-requiring-modules:
@@ -536,30 +476,26 @@ by adding the following to your ``packages.yaml`` file:
Compilers Requiring Modules
^^^^^^^^^^^^^^^^^^^^^^^^^^^
Many installed compilers will work regardless of the environment they
are called with. However, some installed compilers require
``$LD_LIBRARY_PATH`` or other environment variables to be set in order
to run; this is typical for Intel and other proprietary compilers.
Many installed compilers will work regardless of the environment they are called with.
However, some installed compilers require environment variables to be set in order to run;
this is typical for Intel and other proprietary compilers.
In such a case, you should tell Spack which module(s) to load in order
to run the chosen compiler (If the compiler does not come with a
module file, you might consider making one by hand). Spack will load
this module into the environment ONLY when the compiler is run, and
NOT in general for a package's ``install()`` method. See, for
example, this ``compilers.yaml`` file:
On typical HPC clusters, these environment modifications are usually delegated to some "module" system.
In such a case, you should tell Spack which module(s) to load in order to run the chosen compiler:
.. code-block:: yaml
compilers:
- compiler:
modules: [other/comp/gcc-5.3-sp3]
operating_system: SuSE11
paths:
cc: /usr/local/other/SLES11.3/gcc/5.3.0/bin/gcc
cxx: /usr/local/other/SLES11.3/gcc/5.3.0/bin/g++
f77: /usr/local/other/SLES11.3/gcc/5.3.0/bin/gfortran
fc: /usr/local/other/SLES11.3/gcc/5.3.0/bin/gfortran
spec: gcc@5.3.0
packages:
gcc:
externals:
- spec: gcc@10.5.0 languages='c,c++,fortran'
prefix: /opt/compilers
extra_attributes:
compilers:
c: /opt/compilers/bin/gcc-10
cxx: /opt/compilers/bin/g++-10
fortran: /opt/compilers/bin/gfortran-10
modules: [gcc/10.5.0]
Some compilers require special environment settings to be loaded not just
to run, but also to execute the code they build, breaking packages that
@@ -580,7 +516,7 @@ Licensed Compilers
^^^^^^^^^^^^^^^^^^
Some proprietary compilers require licensing to use. If you need to
use a licensed compiler (eg, PGI), the process is similar to a mix of
use a licensed compiler, the process is similar to a mix of
build your own, plus modules:
#. Create a Spack package (if it doesn't exist already) to install
@@ -590,24 +526,21 @@ build your own, plus modules:
using Spack to load the module it just created, and running simple
builds (eg: ``cc helloWorld.c && ./a.out``)
#. Add the newly-installed compiler to ``compilers.yaml`` as shown
above.
#. Add the newly-installed compiler to ``packages.yaml`` as shown above.
.. _mixed-toolchains:
^^^^^^^^^^^^^^^^
Mixed Toolchains
^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^^^^^^
Fortran compilers on macOS
^^^^^^^^^^^^^^^^^^^^^^^^^^
Modern compilers typically come with related compilers for C, C++ and
Fortran bundled together. When possible, results are best if the same
compiler is used for all languages.
In some cases, this is not possible. For example, starting with macOS El
Capitan (10.11), many packages no longer build with GCC, but XCode
provides no Fortran compilers. The user is therefore forced to use a
mixed toolchain: XCode-provided Clang for C/C++ and GNU ``gfortran`` for
Fortran.
In some cases, this is not possible. For example, XCode on macOS provides no Fortran compilers.
The user is therefore forced to use a mixed toolchain: XCode-provided Clang for C/C++ and e.g.
GNU ``gfortran`` for Fortran.
#. You need to make sure that Xcode is installed. Run the following command:
@@ -660,45 +593,25 @@ Fortran.
Note: the flag is ``-license``, not ``--license``.
#. Run ``spack compiler find`` to locate Clang.
#. There are different ways to get ``gfortran`` on macOS. For example, you can
install GCC with Spack (``spack install gcc``), with Homebrew (``brew install
gcc``), or from a `DMG installer
<https://github.com/fxcoudert/gfortran-for-macOS/releases>`_.
#. The only thing left to do is to edit ``~/.spack/darwin/compilers.yaml`` to provide
the path to ``gfortran``:
#. Run ``spack compiler find`` to locate both Apple-Clang and GCC.
.. code-block:: yaml
compilers:
- compiler:
# ...
paths:
cc: /usr/bin/clang
cxx: /usr/bin/clang++
f77: /path/to/bin/gfortran
fc: /path/to/bin/gfortran
spec: apple-clang@11.0.0
If you used Spack to install GCC, you can get the installation prefix by
``spack location -i gcc`` (this will only work if you have a single version
of GCC installed). Whereas for Homebrew, GCC is installed in
``/usr/local/Cellar/gcc/x.y.z``. With the DMG installer, the correct path
will be ``/usr/local/gfortran``.
Since languages in Spack are modeled as virtual packages, ``apple-clang`` will be used to provide
C and C++, while GCC will be used for Fortran.
^^^^^^^^^^^^^^^^^^^^^
Compiler Verification
^^^^^^^^^^^^^^^^^^^^^
You can verify that your compilers are configured properly by installing a
simple package. For example:
You can verify that your compilers are configured properly by installing a simple package. For example:
.. code-block:: console
$ spack install zlib%gcc@5.3.0
$ spack install zlib-ng%gcc@5.3.0
.. _vendor-specific-compiler-configuration:
@@ -707,9 +620,7 @@ simple package. For example:
Vendor-Specific Compiler Configuration
--------------------------------------
With Spack, things usually "just work" with GCC. Not so for other
compilers. This section provides details on how to get specific
compilers working.
This section provides details on how to get vendor-specific compilers working.
^^^^^^^^^^^^^^^
Intel Compilers
@@ -731,8 +642,8 @@ compilers:
you have installed from the ``PATH`` environment variable.
If you want use a version of ``gcc`` or ``g++`` other than the default
version on your system, you need to use either the ``-gcc-name``
or ``-gxx-name`` compiler option to specify the path to the version of
version on your system, you need to use either the ``--gcc-install-dir``
or ``--gcc-toolchain`` compiler option to specify the path to the version of
``gcc`` or ``g++`` that you want to use."
-- `Intel Reference Guide <https://software.intel.com/en-us/node/522750>`_
@@ -740,76 +651,12 @@ compilers:
Intel compilers may therefore be configured in one of two ways with
Spack: using modules, or using compiler flags.
""""""""""""""""""""""""""
Configuration with Modules
""""""""""""""""""""""""""
One can control which GCC is seen by the Intel compiler with modules.
A module must be loaded both for the Intel Compiler (so it will run)
and GCC (so the compiler can find the intended GCC). The following
configuration in ``compilers.yaml`` illustrates this technique:
.. code-block:: yaml
compilers:
- compiler:
modules: [gcc-4.9.3, intel-15.0.24]
operating_system: centos7
paths:
cc: /opt/intel-15.0.24/bin/icc-15.0.24-beta
cxx: /opt/intel-15.0.24/bin/icpc-15.0.24-beta
f77: /opt/intel-15.0.24/bin/ifort-15.0.24-beta
fc: /opt/intel-15.0.24/bin/ifort-15.0.24-beta
spec: intel@15.0.24.4.9.3
.. note::
The version number on the Intel compiler is a combination of
the "native" Intel version number and the GNU compiler it is
targeting.
""""""""""""""""""""""""""
Command Line Configuration
""""""""""""""""""""""""""
One can also control which GCC is seen by the Intel compiler by adding
flags to the ``icc`` command:
#. Identify the location of the compiler you just installed:
.. code-block:: console
$ spack location --install-dir gcc
~/spack/opt/spack/linux-centos7-x86_64/gcc-4.9.3-iy4rw...
#. Set up ``compilers.yaml``, for example:
.. code-block:: yaml
compilers:
- compiler:
modules: [intel-15.0.24]
operating_system: centos7
paths:
cc: /opt/intel-15.0.24/bin/icc-15.0.24-beta
cxx: /opt/intel-15.0.24/bin/icpc-15.0.24-beta
f77: /opt/intel-15.0.24/bin/ifort-15.0.24-beta
fc: /opt/intel-15.0.24/bin/ifort-15.0.24-beta
flags:
cflags: -gcc-name ~/spack/opt/spack/linux-centos7-x86_64/gcc-4.9.3-iy4rw.../bin/gcc
cxxflags: -gxx-name ~/spack/opt/spack/linux-centos7-x86_64/gcc-4.9.3-iy4rw.../bin/g++
fflags: -gcc-name ~/spack/opt/spack/linux-centos7-x86_64/gcc-4.9.3-iy4rw.../bin/gcc
spec: intel@15.0.24.4.9.3
^^^
NAG
^^^
The Numerical Algorithms Group provides a licensed Fortran compiler. Like Clang,
this requires you to set up a :ref:`mixed-toolchains`. It is recommended to use
GCC for your C/C++ compilers.
The Numerical Algorithms Group provides a licensed Fortran compiler.
It is recommended to use GCC for your C/C++ compilers.
The NAG Fortran compilers are a bit more strict than other compilers, and many
packages will fail to install with error messages like:
@@ -826,44 +673,40 @@ the command line:
$ spack install openmpi fflags="-mismatch"
Or it can be set permanently in your ``compilers.yaml``:
Or it can be set permanently in your ``packages.yaml``:
.. code-block:: yaml
- compiler:
modules: []
operating_system: centos6
paths:
cc: /soft/spack/opt/spack/linux-x86_64/gcc-5.3.0/gcc-6.1.0-q2zosj3igepi3pjnqt74bwazmptr5gpj/bin/gcc
cxx: /soft/spack/opt/spack/linux-x86_64/gcc-5.3.0/gcc-6.1.0-q2zosj3igepi3pjnqt74bwazmptr5gpj/bin/g++
f77: /soft/spack/opt/spack/linux-x86_64/gcc-4.4.7/nag-6.1-jt3h5hwt5myezgqguhfsan52zcskqene/bin/nagfor
fc: /soft/spack/opt/spack/linux-x86_64/gcc-4.4.7/nag-6.1-jt3h5hwt5myezgqguhfsan52zcskqene/bin/nagfor
flags:
fflags: -mismatch
spec: nag@6.1
packages:
nag:
externals:
- spec: nag@6.1
prefix: /opt/nag/bin
extra_attributes:
compilers:
fortran: /opt/nag/bin/nagfor
flags:
fflags: -mismatch
---------------
System Packages
---------------
Once compilers are configured, one needs to determine which
pre-installed system packages, if any, to use in builds. This is
configured in the file ``~/.spack/packages.yaml``. For example, to use
an OpenMPI installed in /opt/local, one would use:
Once compilers are configured, one needs to determine which pre-installed system packages,
if any, to use in builds. These are also configured in the ``~/.spack/packages.yaml`` file.
For example, to use an OpenMPI installed in /opt/local, one would use:
.. code-block:: yaml
packages:
openmpi:
externals:
- spec: openmpi@1.10.1
prefix: /opt/local
buildable: False
packages:
openmpi:
buildable: False
externals:
- spec: openmpi@1.10.1
prefix: /opt/local
In general, Spack is easier to use and more reliable if it builds all of
its own dependencies. However, there are several packages for which one
commonly needs to use system versions:
In general, *Spack is easier to use and more reliable if it builds all of its own dependencies*.
However, there are several packages for which one commonly needs to use system versions:
^^^
MPI
@@ -876,8 +719,7 @@ you are unlikely to get a working MPI from Spack. Instead, use an
appropriate pre-installed MPI.
If you choose a pre-installed MPI, you should consider using the
pre-installed compiler used to build that MPI; see above on
``compilers.yaml``.
pre-installed compiler used to build that MPI.
^^^^^^^
OpenSSL
@@ -1441,9 +1283,9 @@ To configure Spack, first run the following command inside the Spack console:
spack compiler find
This creates a ``.staging`` directory in our Spack prefix, along with a ``windows`` subdirectory
containing a ``compilers.yaml`` file. On a fresh Windows install with the above packages
containing a ``packages.yaml`` file. On a fresh Windows install with the above packages
installed, this command should only detect Microsoft Visual Studio and the Intel Fortran
compiler will be integrated within the first version of MSVC present in the ``compilers.yaml``
compiler will be integrated within the first version of MSVC present in the ``packages.yaml``
output.
Spack provides a default ``config.yaml`` file for Windows that it will use unless overridden.

View File

@@ -311,4 +311,4 @@ def ld_flags(self):
#: Tuple of Intel math libraries, exported to packages
INTEL_MATH_LIBRARIES = ("intel-mkl", "intel-oneapi-mkl", "intel-parallel-studio")
INTEL_MATH_LIBRARIES = ("intel-oneapi-mkl",)

View File

@@ -572,7 +572,7 @@ def edit(self, spec, prefix):
class IntelPackageTemplate(PackageTemplate):
"""Provides appropriate overrides for licensed Intel software"""
base_class_name = "IntelPackage"
base_class_name = "IntelOneApiPackage"
body_def = """\
# FIXME: Override `setup_environment` if necessary."""

View File

@@ -62,7 +62,7 @@
(
["-t", "intel", "/test-intel"],
"test-intel",
[r"TestIntel(IntelPackage)", r"setup_environment"],
[r"TestIntel(IntelOneApiPackage)", r"setup_environment"],
),
(
["-t", "makefile", "/test-makefile"],

View File

@@ -24,8 +24,6 @@ def test_it_just_runs(pkg):
(
("mpi",),
[
"intel-mpi",
"intel-parallel-studio",
"mpich",
"mpilander",
"mvapich2",

View File

@@ -209,7 +209,7 @@ def configure_args(self):
linalg = spec["lapack"].libs + spec["blas"].libs
# linalg_flavor is selected using the virtual lapack provider
is_using_intel_libraries = spec["lapack"].name in INTEL_MATH_LIBRARIES
is_using_intel_libraries = spec["lapack"].name == "intel-oneapi-mkl"
# These *must* be elifs, otherwise spack's lapack provider is ignored
# linalg_flavor ends up as "custom", which is not supported by abinit@9.10.3:

View File

@@ -86,7 +86,7 @@ def cmake_args(self):
]
args.append(self.define("CUDA_architecture_build_targets", arch_list))
if self.spec["blas"].name in INTEL_MATH_LIBRARIES:
if self.spec.satisfies("^[virtuals=blas] intel-oneapi-mkl"):
if self.version >= Version("3.8.0"):
args.append(self.define("AF_COMPUTE_LIBRARY", "Intel-MKL"))
else:

View File

@@ -52,7 +52,7 @@ def edit(self, spec, prefix):
if spec["blas"].name == "openblas":
env["OPENBLAS"] = "1"
elif spec["blas"].name in INTEL_MATH_LIBRARIES:
elif spec.satisfies("^[virtuals=blas] intel-oneapi-mkl"):
env["MKL"] = "1"
env["MKL_BASE"] = spec["mkl"].prefix.mkl
else:

View File

@@ -26,7 +26,7 @@ class Batchedblas(MakefilePackage):
def edit(self, spec, prefix):
CCFLAGS = [self.compiler.openmp_flag, "-I./", "-O3"]
BLAS = ["-lm", spec["blas"].libs.ld_flags]
if spec["blas"].name not in INTEL_MATH_LIBRARIES:
if not spec.satisfies("^[virtuals=blas] intel-oneapi-mkl"):
CCFLAGS.append("-D_CBLAS_")
if spec.satisfies("%intel"):
CCFLAGS.extend(["-Os"])

View File

@@ -69,7 +69,8 @@ class Beatnik(CMakePackage, CudaPackage, ROCmPackage):
conflicts("mpich ~cuda", when="+cuda")
conflicts("mpich ~rocm", when="+rocm")
conflicts("openmpi ~cuda", when="+cuda")
conflicts("^intel-mpi") # Heffte won't build with intel MPI because of needed C++ MPI support
# Heffte won't build with intel MPI because of needed C++ MPI support
conflicts("^intel-oneapi-mpi")
conflicts("^spectrum-mpi", when="^cuda@11.3:") # cuda-aware spectrum is broken with cuda 11.3:
# Propagate CUDA and AMD GPU targets to cabana

View File

@@ -78,12 +78,7 @@ class Berkeleygw(MakefilePackage):
depends_on("cray-fftw+openmp", when="^[virtuals=fftw-api] cray-fftw")
depends_on("fftw+openmp", when="^[virtuals=fftw-api] fftw")
depends_on("fujitsu-fftw+openmp", when="^[virtuals=fftw-api] fujitsu-fftw")
depends_on("intel-mkl threads=openmp", when="^[virtuals=fftw-api] intel-mkl")
depends_on("intel-oneapi-mkl threads=openmp", when="^[virtuals=fftw-api] intel-oneapi-mkl")
depends_on(
"intel-parallel-studio threads=openmp",
when="^[virtuals=fftw-api] intel-parallel-studio",
)
with when("~openmp"):
depends_on("acfl threads=none", when="^[virtuals=fftw-api] acfl")
@@ -92,11 +87,7 @@ class Berkeleygw(MakefilePackage):
depends_on("cray-fftw~openmp", when="^[virtuals=fftw-api] cray-fftw")
depends_on("fftw~openmp", when="^[virtuals=fftw-api] fftw")
depends_on("fujitsu-fftw~openmp", when="^[virtuals=fftw-api] fujitsu-fftw")
depends_on("intel-mkl threads=none", when="^[virtuals=fftw-api] intel-mkl")
depends_on("intel-oneapi-mkl threads=none", when="^[virtuals=fftw-api] intel-oneapi-mkl")
depends_on(
"intel-parallel-studio threads=none", when="^[virtuals=fftw-api] intel-parallel-studio"
)
# in order to run the installed python scripts
depends_on("python", type=("build", "run"), when="+python")

View File

@@ -89,17 +89,20 @@ def cosma_blas_cmake_arg(self):
query_to_cmake_arg = [
("+cuda", "CUDA"),
("+rocm", "ROCM"),
("^intel-mkl", "MKL"),
("^intel-oneapi-mkl", "MKL"),
("^cray-libsci", "CRAY_LIBSCI"),
("^netlib-lapack", "CUSTOM"),
("^openblas", "OPENBLAS"),
("^fujitsu-ssl2", "SSL2"),
("^[virtuals=blas] intel-oneapi-mkl", "MKL"),
("^[virtuals=blas] cray-libsci", "CRAY_LIBSCI"),
("^[virtuals=blas] netlib-lapack", "CUSTOM"),
("^[virtuals=blas] openblas", "OPENBLAS"),
("^[virtuals=blas] fujitsu-ssl2", "SSL2"),
]
if self.version >= Version("2.4.0"):
query_to_cmake_arg.extend(
[("^blis", "BLIS"), ("^amdblis", "BLIS"), ("^atlas", "ATLAS")]
[
("^[virtuals=blas] blis", "BLIS"),
("^[virtuals=blas] amdblis", "BLIS"),
("^[virtuals=blas] atlas", "ATLAS"),
]
)
for query, cmake_arg in query_to_cmake_arg:
@@ -113,7 +116,7 @@ def cosma_scalapack_cmake_arg(self):
if spec.satisfies("~scalapack"):
return "OFF"
elif spec.satisfies("^intel-mkl") or spec.satisfies("^intel-oneapi-mkl"):
elif spec.satisfies("^[virtuals=scalapack] intel-oneapi-mkl"):
return "MKL"
elif spec.satisfies("^cray-libsci"):
return "CRAY_LIBSCI"

View File

@@ -58,9 +58,9 @@ def costa_scalapack_cmake_arg(self):
if spec.satisfies("~scalapack"):
return "OFF"
elif spec.satisfies("^intel-mkl") or spec.satisfies("^intel-oneapi-mkl"):
elif spec.satisfies("^[virtuals=scalapack] intel-oneapi-mkl"):
return "MKL"
elif spec.satisfies("^cray-libsci"):
elif spec.satisfies("^[virtuals=scalapack] cray-libsci"):
return "CRAY_LIBSCI"
return "CUSTOM"

View File

@@ -495,7 +495,7 @@ def edit(self, pkg, spec, prefix):
}
dflags = ["-DNDEBUG"] if spec.satisfies("@:2023.2") else []
if fftw.name in ("intel-mkl", "intel-parallel-studio", "intel-oneapi-mkl"):
if fftw.name == "intel-oneapi-mkl":
cppflags = ["-D__FFTW3_MKL", "-I{0}".format(fftw_header_dir)]
else:
cppflags = ["-D__FFTW3", "-I{0}".format(fftw_header_dir)]
@@ -705,7 +705,7 @@ def edit(self, pkg, spec, prefix):
if spec.satisfies("platform=darwin"):
cppflags.extend(["-D__NO_STATM_ACCESS"])
if spec["blas"].name in ("intel-mkl", "intel-parallel-studio", "intel-oneapi-mkl"):
if spec["blas"].name == "intel-oneapi-mkl":
cppflags += ["-D__MKL"]
elif spec["blas"].name == "accelerate":
cppflags += ["-D__ACCELERATE"]
@@ -725,8 +725,6 @@ def edit(self, pkg, spec, prefix):
else:
mpi = spec["mpi:cxx"].libs
# while intel-mkl has a mpi variant and adds the scalapack
# libs to its libs, intel-oneapi-mkl does not.
if spec["scalapack"].name == "intel-oneapi-mkl":
mpi_impl = "openmpi" if spec["mpi"].name in ["openmpi", "hpcx-mpi"] else "intelmpi"
scalapack = [
@@ -1098,7 +1096,7 @@ def cmake_args(self):
lapack = spec["lapack"]
blas = spec["blas"]
if blas.name in ["intel-mkl", "intel-parallel-studio", "intel-oneapi-mkl"]:
if blas.name == "intel-oneapi-mkl":
args += ["-DCP2K_BLAS_VENDOR=MKL"]
if sys.platform == "darwin":
args += [

View File

@@ -43,7 +43,7 @@ def url_for_version(self, version):
def configure_args(self):
config_args = []
if self.spec["fftw-api"].name in INTEL_MATH_LIBRARIES:
if self.spec.satisfies("^[virtuals=fftw-api] intel-oneapi-mkl"):
config_args.extend(
[
"--enable-mkl",

View File

@@ -388,12 +388,16 @@ class Dealii(CMakePackage, CudaPackage):
# Check that the combination of variants makes sense
# 64-bit BLAS:
for _package in ["openblas", "intel-mkl", "intel-parallel-studio+mkl"]:
conflicts(
"^{0}+ilp64".format(_package),
when="@:8.5.1",
msg="64bit BLAS is only supported from 9.0.0",
)
conflicts(
"^[virtuals=lapack] openblas+ilp64",
when="@:8.5.1",
msg="64bit BLAS is only supported from 9.0.0",
)
conflicts(
"^[virtuals=lapack] intel-oneapi-mkl+ilp64",
when="@:8.5.1",
msg="64bit BLAS is only supported from 9.0.0",
)
# MPI requirements:
for _package in [
@@ -505,10 +509,8 @@ def cmake_args(self):
# 64 bit indices
options.append(self.define_from_variant("DEAL_II_WITH_64BIT_INDICES", "int64"))
if (
spec.satisfies("^openblas+ilp64")
or spec.satisfies("^intel-mkl+ilp64")
or spec.satisfies("^intel-parallel-studio+mkl+ilp64")
if spec.satisfies("^[virtuals=lapack] openblas+ilp64") or spec.satisfies(
"^[virtuals=lapack] intel-oneapi-mkl+ilp64"
):
options.append(self.define("LAPACK_WITH_64BIT_BLAS_INDICES", True))
@@ -570,20 +572,9 @@ def cmake_args(self):
options.append(self.define_from_variant("DEAL_II_WITH_TBB", "threads"))
else:
options.append(self.define_from_variant("DEAL_II_WITH_THREADS", "threads"))
if spec.satisfies("+threads"):
if spec.satisfies("^intel-parallel-studio+tbb"):
# deal.II/cmake will have hard time picking up TBB from Intel.
tbb_ver = ".".join(("%s" % spec["tbb"].version).split(".")[1:])
options.extend(
[
self.define("TBB_FOUND", True),
self.define("TBB_VERSION", tbb_ver),
self.define("TBB_INCLUDE_DIRS", ";".join(spec["tbb"].headers.directories)),
self.define("TBB_LIBRARIES", spec["tbb"].libs.joined(";")),
]
)
else:
options.append(self.define("TBB_DIR", spec["tbb"].prefix))
options.append(self.define("TBB_DIR", spec["tbb"].prefix))
# Optional dependencies for which library names are the same as CMake
# variables:

View File

@@ -182,71 +182,41 @@ def cmake_args(self):
args.append(self.define_from_variant("BUILD_SHARED_LIBS", "shared"))
# BLAS/LAPACK
if spec.version <= Version("0.4") and spec["lapack"].name in INTEL_MATH_LIBRARIES:
if spec.version <= Version("0.4") and spec.satisfies(
"^[virtuals=lapack] intel-oneapi-mkl"
):
mkl_provider = spec["lapack"].name
vmap = {
"intel-oneapi-mkl": {
"threading": {
"none": "sequential",
"openmp": "gnu_thread",
"tbb": "tbb_thread",
},
"mpi": {"intel-mpi": "intelmpi", "mpich": "mpich", "openmpi": "openmpi"},
},
"intel-mkl": {
"threading": {"none": "seq", "openmp": "omp", "tbb": "tbb"},
"mpi": {"intel-mpi": "mpich", "mpich": "mpich", "openmpi": "ompi"},
},
"threading": {"none": "sequential", "openmp": "gnu_thread", "tbb": "tbb_thread"},
"mpi": {"intel-oneapi-mpi": "intelmpi", "mpich": "mpich", "openmpi": "openmpi"},
}
if mkl_provider not in vmap.keys():
raise RuntimeError(
f"dla-future does not support {mkl_provider} as lapack provider"
)
mkl_mapper = vmap[mkl_provider]
mkl_threads = mkl_mapper["threading"][spec[mkl_provider].variants["threads"].value]
if mkl_provider == "intel-oneapi-mkl":
args += [
self.define("DLAF_WITH_MKL", True),
self.define("MKL_INTERFACE", "lp64"),
self.define("MKL_THREADING", mkl_threads),
]
elif mkl_provider == "intel-mkl":
args += [
(
self.define("DLAF_WITH_MKL", True)
if spec.version <= Version("0.3")
else self.define("DLAF_WITH_MKL_LEGACY", True)
),
self.define("MKL_LAPACK_TARGET", f"mkl::mkl_intel_32bit_{mkl_threads}_dyn"),
]
mkl_threads = vmap["threading"][spec["intel-oneapi-mkl"].variants["threads"].value]
args += [
self.define("DLAF_WITH_MKL", True),
self.define("MKL_INTERFACE", "lp64"),
self.define("MKL_THREADING", mkl_threads),
]
if spec.satisfies("+scalapack"):
try:
mpi_provider = spec["mpi"].name
if mpi_provider in ["mpich", "cray-mpich", "mvapich", "mvapich2"]:
mkl_mpi = mkl_mapper["mpi"]["mpich"]
mkl_mpi = vmap["mpi"]["mpich"]
else:
mkl_mpi = mkl_mapper["mpi"][mpi_provider]
mkl_mpi = vmap["mpi"][mpi_provider]
except KeyError:
raise RuntimeError(
f"dla-future does not support {spec['mpi'].name} as mpi provider with "
f"the selected scalapack provider {mkl_provider}"
)
if mkl_provider == "intel-oneapi-mkl":
args.append(self.define("MKL_MPI", mkl_mpi))
elif mkl_provider == "intel-mkl":
args.append(
self.define(
"MKL_SCALAPACK_TARGET",
f"mkl::scalapack_{mkl_mpi}_intel_32bit_{mkl_threads}_dyn",
)
)
args.append(self.define("MKL_MPI", mkl_mpi))
else:
args.append(self.define("DLAF_WITH_MKL", spec["lapack"].name in INTEL_MATH_LIBRARIES))
args.append(
self.define("DLAF_WITH_MKL", spec.satisfies("^[virtuals=lapack] intel-oneapi-mkl"))
)
add_dlaf_prefix = lambda x: x if spec.satisfies("@:0.6") else "DLAF_" + x
args.append(
self.define(

View File

@@ -63,7 +63,6 @@ class Dyninst(CMakePackage):
# package layout. Need to use tbb provided config instead.
conflicts("^intel-tbb@2021.1:")
conflicts("^intel-oneapi-tbb@2021.1:")
conflicts("^intel-parallel-studio")
depends_on("tbb")
requires("^[virtuals=tbb] intel-tbb@2019.9:", when="@13.0.0:")

View File

@@ -81,11 +81,7 @@ class Elk(MakefilePackage):
depends_on("mkl", when="linalg=mkl")
with when("linalg=mkl +openmp"):
depends_on("intel-mkl threads=openmp", when="^[virtuals=mkl] intel-mkl")
depends_on("intel-oneapi-mkl threads=openmp", when="^[virtuals=mkl] intel-oneapi-mkl")
depends_on(
"intel-parallel-studio threads=openmp", when="^[virtuals=mkl] intel-parallel-studio"
)
depends_on("openblas", when="linalg=openblas")
depends_on("openblas threads=openmp", when="linalg=openblas +openmp")
@@ -200,8 +196,6 @@ def edit(self, spec, prefix):
config["SRC_FFT"] += " cfftifc_mkl.f90"
cp = which("cp")
mkl_prefix = spec["mkl"].prefix
if spec.satisfies("^intel-mkl"):
mkl_prefix = mkl_prefix.mkl
cp(
join_path(mkl_prefix.include, "mkl_dfti.f90"),
join_path(self.build_directory, "src"),

View File

@@ -69,7 +69,7 @@ def cmake_args(self):
else:
args.append("-DWITH_MPI=OFF")
if self.spec.satisfies("^intel-mkl"):
if self.spec.satisfies("^[virtuals=lapack] intel-oneapi-mkl"):
args.append("-DWITH_MKL:BOOL=TRUE")
if spec.satisfies("+openmp"):

View File

@@ -93,14 +93,9 @@ class Elpa(AutotoolsPackage, CudaPackage, ROCmPackage):
# https://gitlab.mpcdf.mpg.de/elpa/elpa/-/blob/master/documentation/PERFORMANCE_TUNING.md?ref_type=heads#builds-with-openmp-enabled
with when("+openmp"):
requires("^openblas threads=openmp", when="^[virtuals=blas,lapack] openblas")
requires("^intel-mkl threads=openmp", when="^[virtuals=blas,lapack] intel-mkl")
requires(
"^intel-oneapi-mkl threads=openmp", when="^[virtuals=blas,lapack] intel-oneapi-mkl"
)
requires(
"^intel-parallel-studio threads=openmp",
when="^[virtuals=blas,lapack] intel-parallel-studio",
)
# fails to build due to broken type-bound procedures in OMP parallel regions
conflicts(

View File

@@ -24,6 +24,7 @@ class Ensmallen(CMakePackage):
version("2.21.1", sha256="820eee4d8aa32662ff6a7d883a1bcaf4e9bf9ca0a3171d94c5398fe745008750")
version("2.19.1", sha256="f36ad7f08b0688d2a8152e1c73dd437c56ed7a5af5facf65db6ffd977b275b2e")
depends_on("c", type="build")
depends_on("cxx", type="build")
variant("openmp", default=True, description="Use OpenMP for parallelization")

View File

@@ -343,11 +343,7 @@ def setup_build_environment(self, env):
"^[virtuals=mpi] hpcx-mpi"
):
env.set("ESMF_COMM", "openmpi")
elif (
spec.satisfies("^[virtuals=mpi] intel-parallel-studio+mpi")
or spec.satisfies("^[virtuals=mpi] intel-mpi")
or spec.satisfies("^[virtuals=mpi] intel-oneapi-mpi")
):
elif spec.satisfies("^[virtuals=mpi] intel-oneapi-mpi"):
env.set("ESMF_COMM", "intelmpi")
elif spec.satisfies("^[virtuals=mpi] mpt"):
# MPT is the HPE (SGI) variant of mpich

View File

@@ -30,21 +30,15 @@ class Exabayes(AutotoolsPackage):
# GCC 7.1.0 is used.
conflicts("%gcc@:4.5.4, 7.1.0:", when="@:1.5.0")
conflicts("%clang@:3.1")
conflicts("^intel-mpi", when="+mpi")
conflicts("^intel-parallel-studio+mpi", when="+mpi")
conflicts("^intel-oneapi-mpi", when="+mpi")
conflicts("^mvapich2", when="+mpi")
conflicts("^spectrum-mpi", when="+mpi")
def configure_args(self):
args = []
if self.spec.satisfies("+mpi"):
args.append("--enable-mpi")
else:
args.append("--disable-mpi")
return args
return self.enable_or_disable("mpi")
def flag_handler(self, name, flags):
if name.lower() == "cxxflags":
# manual cites need for c++11
flags.append(self.compiler.cxx11_flag)
return (flags, None, None)
return flags, None, None

View File

@@ -42,11 +42,8 @@ class Exciting(MakefilePackage):
depends_on("mkl", when="+mkl")
depends_on("mpi", when="+mpi")
depends_on("scalapack", when="+scalapack")
# conflicts('%gcc@10:', msg='exciting cannot be built with GCC 10')
requires("%intel", when="^mkl", msg="Intel MKL only works with the Intel compiler")
requires("%intel", when="^intel-mkl", msg="Intel MKL only works with the Intel compiler")
requires("%intel", when="^intel-mpi", msg="Intel MPI only works with the Intel compiler")
conflicts("%intel")
def patch(self):
"""Fix bad logic in m_makespectrum.f90 for the Oxygen release"""

View File

@@ -44,10 +44,7 @@ class Fds(MakefilePackage):
)
requires(
"^intel-mkl",
"^intel-oneapi-mkl",
policy="one_of",
msg="FDS builds require either Intel MKL or Intel oneAPI MKL library",
"^intel-oneapi-mkl", policy="one_of", msg="FDS builds require Intel oneAPI MKL library"
)
requires(
@@ -56,12 +53,6 @@ class Fds(MakefilePackage):
msg="OpenMPI can only be used with GNU Fortran on Linux platform",
)
requires(
"^intel-mpi^intel-mkl",
when="platform=linux %intel",
msg="Intel MPI and Intel MKL can only be used with Intel Fortran on Linux platform",
)
requires(
"^intel-oneapi-mpi^intel-oneapi-mkl",
when="platform=linux %oneapi",
@@ -85,7 +76,7 @@ def edit(self, spec, prefix):
@property
def build_targets(self):
spec = self.spec
mpi_mapping = {"openmpi": "ompi", "intel-oneapi-mpi": "impi", "intel-mpi": "impi"}
mpi_mapping = {"openmpi": "ompi", "intel-oneapi-mpi": "impi"}
compiler_mapping = {"gcc": "gnu", "oneapi": "intel", "intel": "intel"}
platform_mapping = {"linux": "linux", "darwin": "osx"}
mpi_prefix = mpi_mapping[spec["mpi"].name]

View File

@@ -7,7 +7,7 @@
class G4tendl(Package):
"""Geant4 data for incident particles [optional]"""
"""Optional Geant4 data for incident particles."""
homepage = "https://geant4.web.cern.ch"
url = "https://geant4-data.web.cern.ch/geant4-data/datasets/G4TENDL.1.3.tar.gz"

View File

@@ -142,7 +142,7 @@ class Gaudi(CMakePackage, CudaPackage):
# ROOT does not like being exposed to LLVM symbols.
# The Intel VTune dependency is taken aside because it requires a license
depends_on("intel-parallel-studio -mpi +vtune", when="+vtune")
depends_on("intel-oneapi-vtune", when="+vtune")
def patch(self):
# ensure an empty pytest.ini is present to prevent finding one

View File

@@ -21,6 +21,7 @@ class Geant4(CMakePackage):
maintainers("drbenmorgan", "sethrj")
version("11.3.1", sha256="9059da076928f25cab1ff1f35e0f611a4d7fe005e374e9b8d7f3ff2434b7af54")
version("11.3.0", sha256="d9d71daff8890a7b5e0e33ea9a65fe6308ad6713000b43ba6705af77078e7ead")
version("11.2.2", sha256="3a8d98c63fc52578f6ebf166d7dffaec36256a186d57f2520c39790367700c8d")
version("11.2.1", sha256="76c9093b01128ee2b45a6f4020a1bcb64d2a8141386dea4674b5ae28bcd23293")

View File

@@ -41,7 +41,7 @@ class Gearshifft(CMakePackage):
depends_on("clfft@2.12.0:", when="+clfft")
depends_on("fftw@3.3.4:~mpi~openmp", when="+fftw~openmp")
depends_on("fftw@3.3.4:~mpi+openmp", when="+fftw+openmp")
depends_on("intel-mkl threads=openmp", when="+mkl")
depends_on("intel-oneapi-mkl threads=openmp", when="+mkl")
depends_on("rocfft", when="+rocfft")
def cmake_args(self):

View File

@@ -75,24 +75,25 @@ def configure_args(self):
spec = self.spec
args = ["--with-gmp", "--with-mpfr"]
if spec.satisfies("^intel-mkl"):
if spec.satisfies("+fftw") or spec.satisfies("+lapack"):
args.append("--enable-mkl")
if spec.satisfies("^[virtuals=lapack] intel-oneapi-mkl") or spec.satisfies(
"^[virtuals=fftw-api] intel-oneapi-mkl"
):
args.append("--enable-mkl")
else:
if spec.satisfies("+fftw"):
args.append("--with-fftw={0}".format(self.spec["fftw-api"].prefix))
args.append(f"--with-fftw={self.spec['fftw-api'].prefix}")
if spec.satisfies("+lapack"):
args.append("--enable-lapack={0}".format(self.spec["lapack"].prefix))
args.append(f"--enable-lapack={self.spec['lapack'].prefix}")
# lapack is searched only as `-llapack`, so anything else
# wouldn't be found, causing an error.
args.append("LIBS={0}".format(self.spec["lapack"].libs.ld_flags))
args.append(f"LIBS={self.spec['lapack'].libs.ld_flags}")
if "comms=none" not in spec:
# The build system can easily get very confused about MPI support
# and what linker to use. In many case it'd end up building the
# code with support for MPI but without using `mpicxx` or linking to
# `-lmpi`, wreaking havoc. Forcing `CXX` to be mpicxx should help.
args.extend(["CC={0}".format(spec["mpi"].mpicc), "CXX={0}".format(spec["mpi"].mpicxx)])
args.extend([f"CC={spec['mpi'].mpicc}", f"CXX={spec['mpi'].mpicxx}"])
args += self.enable_or_disable("timers")
args += self.enable_or_disable("chroma")
@@ -119,11 +120,11 @@ def configure_args(self):
args.extend(
[
"--enable-simd=GEN",
"--enable-gen-simd-width={0}".format(spec.variants["gen-simd-width"].value),
f"--enable-gen-simd-width={spec.variants['gen-simd-width'].value}",
]
)
args.append("--enable-comms={0}".format(spec.variants["comms"].value))
args.append("--enable-rng={0}".format(spec.variants["rng"].value))
args.append(f"--enable-comms={spec.variants['comms'].value}")
args.append(f"--enable-rng={spec.variants['rng'].value}")
return args

View File

@@ -529,9 +529,8 @@ class Gromacs(CMakePackage, CudaPackage):
)
# If the Intel suite is used for Lapack, it must be used for fftw and vice-versa
for _intel_pkg in INTEL_MATH_LIBRARIES:
requires(f"^[virtuals=fftw-api] {_intel_pkg}", when=f"^[virtuals=lapack] {_intel_pkg}")
requires(f"^[virtuals=lapack] {_intel_pkg}", when=f"^[virtuals=fftw-api] {_intel_pkg}")
requires("^[virtuals=fftw-api] intel-oneapi-mkl", when="^[virtuals=lapack] intel-oneapi-mkl")
requires("^[virtuals=lapack] intel-oneapi-mkl", when="^[virtuals=fftw-api] intel-oneapi-mkl")
patch("gmxDetectCpu-cmake-3.14.patch", when="@2018:2019.3^cmake@3.14.0:")
patch("gmxDetectSimd-cmake-3.14.patch", when="@5.0:2017^cmake@3.14.0:")
@@ -911,9 +910,8 @@ def cmake_args(self):
)
options.append(f"-DNVSHMEM_ROOT={nvshmem_root}")
if self.spec["lapack"].name in INTEL_MATH_LIBRARIES:
# fftw-api@3 is provided by intel-mkl or intel-parallel-studio
# we use the mkl interface of gromacs
if self.spec.satisfies("^[virtuals=lapack] intel-oneapi-mkl"):
# fftw-api@3 is provided by intel-oneapi-mkl
options.append("-DGMX_FFT_LIBRARY=mkl")
if self.spec.satisfies("@:2022"):
options.append(

View File

@@ -37,14 +37,11 @@ class Gsibec(CMakePackage):
depends_on("lapack", type=("build", "run"))
depends_on("ecbuild", type=("build"))
depends_on("jedi-cmake", type=("build"))
depends_on("sp", type=("build"))
depends_on("ecbuild", type="build")
depends_on("jedi-cmake", type="build")
depends_on("sp", type="build")
def cmake_args(self):
args = []
mkl_providers = ["intel-mkl", "intel-oneapi-mkl", "intel-parallel-studio"]
args.append(self.define("ENABLE_MKL", self.spec["lapack"].name in mkl_providers))
return args
return [
self.define("ENABLE_MKL", self.spec.satisfies("^[virtuals=lapack] intel-oneapi-mkl"))
]

View File

@@ -12,6 +12,7 @@ class Gslib(Package):
git = "https://github.com/gslib/gslib.git"
version("develop", branch="master")
version("1.0.9", tag="v1.0.9", commit="95acf5b42301d6cb48fda88d662f1d784b863089")
version("1.0.7", tag="v1.0.7", commit="88f90cb96953527e3e833f8dbf2719273fc8346d")
version("1.0.6", tag="v1.0.6", commit="1c2f74420fec36d5abe1d75f194a457c61f0df53")
version("1.0.5", tag="v1.0.5", commit="1de2fba1d94e27e20f3bc3af6a3a35901e223ecd")

View File

@@ -45,11 +45,16 @@ class Hdf5(CMakePackage):
# Odd versions are considered experimental releases
# Even versions are maintenance versions
version(
"1.14.6",
sha256="e4defbac30f50d64e1556374aa49e574417c9e72c6b1de7a4ff88c4b1bea6e9b",
url="https://support.hdfgroup.org/releases/hdf5/v1_14/v1_14_6/downloads/hdf5-1.14.6.tar.gz",
preferred=True,
)
version(
"1.14.5",
sha256="ec2e13c52e60f9a01491bb3158cb3778c985697131fc6a342262d32a26e58e44",
url="https://support.hdfgroup.org/releases/hdf5/v1_14/v1_14_5/downloads/hdf5-1.14.5.tar.gz",
preferred=True,
)
version(
"1.14.4-3",

View File

@@ -120,9 +120,8 @@ def edit(self, spec, prefix):
lin_alg_libs.append(join_path(spec["fftw-api"].prefix.lib, "libsfftw_mpi.so"))
lin_alg_libs.append(join_path(spec["fftw-api"].prefix.lib, "libsfftw.so"))
elif (
self.spec.variants["fft"].value == "mkl"
and spec["fftw-api"].name in INTEL_MATH_LIBRARIES
elif self.spec.variants["fft"].value == "mkl" and spec.satisfies(
"^[virtuals=fftw-api] intel-oneapi-mkl"
):
mklroot = env["MKLROOT"]
self.config["@LAINC@"] += f" -I{join_path(mklroot, 'include/fftw')}"
@@ -159,8 +158,6 @@ def edit(self, spec, prefix):
# Compiler flags for CPU architecture optimizations
if spec.satisfies("%intel"):
# with intel-parallel-studio+mpi the '-march' arguments
# are not passed to icc
arch_opt = optimization_flags(self.compiler, spec.target)
self.config["@CCFLAGS@"] = f"-O3 -restrict -ansi-alias -ip {arch_opt}"
self.config["@CCNOOPT@"] = "-restrict"

View File

@@ -126,11 +126,7 @@ def configure_args(self):
if self.spec.satisfies("+openmp"):
cflags.append(self.compiler.openmp_flag)
if (
self.spec.satisfies("^intel-mkl")
or self.spec.satisfies("^intel-oneapi-mkl")
or self.spec.satisfies("^intel-parallel-studio+mkl")
):
if self.spec.satisfies("^intel-oneapi-mkl"):
ldflags.append(self.spec["blas"].libs.ld_flags)
if self.spec.satisfies("%aocc"):

View File

@@ -1,187 +0,0 @@
# Copyright Spack Project Developers. See COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
import sys
from spack.package import *
@IntelOneApiPackage.update_description
class IntelMkl(IntelPackage):
"""Intel Math Kernel Library. This package has been replaced by
intel-oneapi-mkl.
"""
maintainers("rscohn2")
homepage = "https://software.intel.com/en-us/intel-mkl"
version(
"2020.4.304",
sha256="2314d46536974dbd08f2a4e4f9e9a155dc7e79e2798c74e7ddfaad00a5917ea5",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/16917/l_mkl_2020.4.304.tgz",
deprecated=True,
)
version(
"2020.3.279",
sha256="2b8e434ecc9462491130ba25a053927fd1a2eca05e12acb5936b08c486857a04",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/16903/l_mkl_2020.3.279.tgz",
deprecated=True,
)
version(
"2020.2.254",
sha256="ed00a267af362a6c14212bd259ab1673d64337e077263033edeef8ac72c10223",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/16849/l_mkl_2020.2.254.tgz",
deprecated=True,
)
version(
"2020.1.217",
sha256="082a4be30bf4f6998e4d6e3da815a77560a5e66a68e254d161ab96f07086066d",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/16533/l_mkl_2020.1.217.tgz",
deprecated=True,
)
version(
"2020.0.166",
sha256="f6d92deb3ff10b11ba3df26b2c62bb4f0f7ae43e21905a91d553e58f0f5a8ae0",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/16232/l_mkl_2020.0.166.tgz",
deprecated=True,
)
version(
"2019.5.281",
sha256="9995ea4469b05360d509c9705e9309dc983c0a10edc2ae3a5384bc837326737e",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15816/l_mkl_2019.5.281.tgz",
deprecated=True,
)
version(
"2019.4.243",
sha256="fcac7b0369665d93f0c4dd98afe2816aeba5410e2b760655fe55fc477f8f33d0",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15540/l_mkl_2019.4.243.tgz",
deprecated=True,
)
version(
"2019.3.199",
sha256="06de2b54f4812e7c39a118536259c942029fe1d6d8918ad9df558a83c4162b8f",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15275/l_mkl_2019.3.199.tgz",
deprecated=True,
)
version(
"2019.2.187",
sha256="2bf004e6b5adb4f956993d6c20ea6ce289bb630314dd501db7f2dd5b9978ed1d",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15095/l_mkl_2019.2.187.tgz",
deprecated=True,
)
version(
"2019.1.144",
sha256="5205a460a9c685f7a442868367389b2d0c25e1455346bc6a37c5b8ff90a20fbb",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/14895/l_mkl_2019.1.144.tgz",
deprecated=True,
)
version(
"2019.0.117",
sha256="4e1fe2c705cfc47050064c0d6c4dee1a8c6740ac1c4f64dde9c7511c4989c7ad",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/13575/l_mkl_2019.0.117.tgz",
deprecated=True,
)
version(
"2018.4.274",
sha256="18eb3cde3e6a61a88f25afff25df762a560013f650aaf363f7d3d516a0d04881",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/13725/l_mkl_2018.4.274.tgz",
deprecated=True,
)
version(
"2018.3.222",
sha256="108d59c0927e58ce8c314db6c2b48ee331c3798f7102725f425d6884eb6ed241",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/13005/l_mkl_2018.3.222.tgz",
deprecated=True,
)
version(
"2018.2.199",
sha256="e28d12173bef9e615b0ded2f95f59a42b3e9ad0afa713a79f8801da2bfb31936",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12725/l_mkl_2018.2.199.tgz",
deprecated=True,
)
version(
"2018.1.163",
sha256="f6dc263fc6f3c350979740a13de1b1e8745d9ba0d0f067ece503483b9189c2ca",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12414/l_mkl_2018.1.163.tgz",
deprecated=True,
)
version(
"2018.0.128",
sha256="c368baa40ca88057292512534d7fad59fa24aef06da038ea0248e7cd1e280cec",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12070/l_mkl_2018.0.128.tgz",
deprecated=True,
)
version(
"2017.4.239",
sha256="dcac591ed1e95bd72357fd778edba215a7eab9c6993236373231cc16c200c92a",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12147/l_mkl_2017.4.239.tgz",
deprecated=True,
)
version(
"2017.3.196",
sha256="fd7295870fa164d6138c9818304f25f2bb263c814a6c6539c9fe4e104055f1ca",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/11544/l_mkl_2017.3.196.tgz",
deprecated=True,
)
version(
"2017.2.174",
sha256="0b8a3fd6bc254c3c3d9d51acf047468c7f32bf0baff22aa1e064d16d9fea389f",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/11306/l_mkl_2017.2.174.tgz",
deprecated=True,
)
version(
"2017.1.132",
sha256="8c6bbeac99326d59ef3afdc2a95308c317067efdaae50240d2f4a61f37622e69",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/11024/l_mkl_2017.1.132.tgz",
deprecated=True,
)
version(
"2017.0.098",
sha256="f2233e8e011f461d9c15a853edf7ed0ae8849aa665a1ec765c1ff196fd70c4d9",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/9662/l_mkl_2017.0.098.tgz",
deprecated=True,
)
# built from parallel_studio_xe_2016.3.x
version(
"11.3.3.210",
sha256="ff858f0951fd698e9fb30147ea25a8a810c57f0126c8457b3b0cdf625ea43372",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/9068/l_mkl_11.3.3.210.tgz",
deprecated=True,
)
# built from parallel_studio_xe_2016.2.062
version(
"11.3.2.181",
sha256="bac04a07a1fe2ae4996a67d1439ee90c54f31305e8663d1ccfce043bed84fc27",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/8711/l_mkl_11.3.2.181.tgz",
deprecated=True,
)
depends_on("cpio", type="build")
conflicts("target=ppc64:", msg="intel-mkl is only available for x86_64")
conflicts("target=ppc64le:", msg="intel-mkl is only available for x86_64")
conflicts("target=aarch64:", msg="intel-mkl is only available for x86_64")
variant("shared", default=True, description="Builds shared library")
variant("ilp64", default=False, description="64 bit integers")
variant(
"threads",
default="none",
description="Multithreading support",
values=("openmp", "tbb", "none"),
multi=False,
)
provides("blas", "lapack")
provides("lapack@3.9.0", when="@2020.4")
provides("lapack@3.7.0", when="@11.3")
provides("scalapack")
provides("mkl")
provides("fftw-api@3", when="@2017:")
if sys.platform == "darwin":
# there is no libmkl_gnu_thread on macOS
conflicts("threads=openmp", when="%gcc")

View File

@@ -36,15 +36,11 @@ class IntelMpiBenchmarks(MakefilePackage):
version("2019.2", sha256="0bc2224a913073aaa5958f6ae08341e5fcd39cedc6722a09bfd4a3d7591a340b")
version("2019.1", sha256="fe0d065b9936b6943ea83cb3d00aede43b17565285c6b1791fee8e340853ef79")
version("2019.0", sha256="1c7d44aa7fd86ca84ac7cae1a69a8426243048d6294582337f1de7b4ffe68d37")
version("2018.1", sha256="718a4eb155f18cf15a736f6496332407b5837cf1f19831723d4cfe5266c43507")
version("2018.0", sha256="2e60a9894a686a95791be2227bc569bf81ca3875421b5307df7d83f885b1de88")
depends_on("c", type="build") # generated
depends_on("cxx", type="build") # generated
depends_on("mpi", when="@2019:")
depends_on("intel-mpi", when="@2018")
depends_on("gmake", type="build", when="@2018")
conflicts(
"^openmpi",

View File

@@ -1,174 +0,0 @@
# Copyright Spack Project Developers. See COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
@IntelOneApiPackage.update_description
class IntelMpi(IntelPackage):
"""Intel MPI. This package has been deprecated. Use intel-oneapi-mpi instead."""
maintainers("rscohn2")
homepage = "https://software.intel.com/en-us/intel-mpi-library"
version(
"2019.10.317",
sha256="28e1b615e63d2170a99feedc75e3b0c5a7e1a07dcdaf0a4181831b07817a5346",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/17534/l_mpi_2019.10.317.tgz",
deprecated=True,
)
version(
"2019.9.304",
sha256="618a5dc2de54306645e6428c5eb7d267b54b11b5a83dfbcad7d0f9e0d90bb2e7",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/17263/l_mpi_2019.9.304.tgz",
deprecated=True,
)
version(
"2019.8.254",
sha256="fa163b4b79bd1b7509980c3e7ad81b354fc281a92f9cf2469bf4d323899567c0",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/16814/l_mpi_2019.8.254.tgz",
deprecated=True,
)
version(
"2019.7.217",
sha256="90383b0023f84ac003a55d8bb29dbcf0c639f43a25a2d8d8698a16e770ac9c07",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/16546/l_mpi_2019.7.217.tgz",
deprecated=True,
)
version(
"2019.6.166",
sha256="119be69f1117c93a9e5e9b8b4643918e55d2a55a78ad9567f77d16cdaf18cd6e",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/16120/l_mpi_2019.6.166.tgz",
deprecated=True,
)
version(
"2019.5.281",
sha256="9c59da051f1325b221e5bc4d8b689152e85d019f143069fa39e17989306811f4",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15838/l_mpi_2019.5.281.tgz",
deprecated=True,
)
version(
"2019.4.243",
sha256="233a8660b92ecffd89fedd09f408da6ee140f97338c293146c9c080a154c5fcd",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15553/l_mpi_2019.4.243.tgz",
deprecated=True,
)
version(
"2019.3.199",
sha256="5304346c863f64de797250eeb14f51c5cfc8212ff20813b124f20e7666286990",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15260/l_mpi_2019.3.199.tgz",
deprecated=True,
)
version(
"2019.2.187",
sha256="6a3305933b5ef9e3f7de969e394c91620f3fa4bb815a4f439577739d04778b20",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15040/l_mpi_2019.2.187.tgz",
deprecated=True,
)
version(
"2019.1.144",
sha256="dac86a5db6b86503313742b17535856a432955604f7103cb4549a9bfc256c3cd",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/14879/l_mpi_2019.1.144.tgz",
deprecated=True,
)
version(
"2019.0.117",
sha256="dfb403f49c1af61b337aa952b71289c7548c3a79c32c57865eab0ea0f0e1bc08",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/13584/l_mpi_2019.0.117.tgz",
deprecated=True,
)
version(
"2018.4.274",
sha256="a1114b3eb4149c2f108964b83cad02150d619e50032059d119ac4ffc9d5dd8e0",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/13741/l_mpi_2018.4.274.tgz",
deprecated=True,
)
version(
"2018.3.222",
sha256="5021d14b344fc794e89f146e4d53d70184d7048610895d7a6a1e8ac0cf258999",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/13112/l_mpi_2018.3.222.tgz",
deprecated=True,
)
version(
"2018.2.199",
sha256="0927f1bff90d10974433ba2892e3fd38e6fee5232ab056a9f9decf565e814460",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12748/l_mpi_2018.2.199.tgz",
deprecated=True,
)
version(
"2018.1.163",
sha256="130b11571c3f71af00a722fa8641db5a1552ac343d770a8304216d8f5d00e75c",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12414/l_mpi_2018.1.163.tgz",
deprecated=True,
)
version(
"2018.0.128",
sha256="debaf2cf80df06db9633dfab6aa82213b84a665a55ee2b0178403906b5090209",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12120/l_mpi_2018.0.128.tgz",
deprecated=True,
)
version(
"2017.4.239",
sha256="5a1048d284dce8bc75b45789471c83c94b3c59f8f159cab43d783fc44302510b",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12209/l_mpi_2017.4.239.tgz",
deprecated=True,
)
version(
"2017.3.196",
sha256="dad9efbc5bbd3fd27cce7e1e2507ad77f342d5ecc929747ae141c890e7fb87f0",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/11595/l_mpi_2017.3.196.tgz",
deprecated=True,
)
version(
"2017.2.174",
sha256="106a4b362c13ddc6978715e50f5f81c58c1a4c70cd2d20a99e94947b7e733b88",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/11334/l_mpi_2017.2.174.tgz",
deprecated=True,
)
version(
"2017.1.132",
sha256="8d30a63674fe05f17b0a908a9f7d54403018bfed2de03c208380b171ab99be82",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/11014/l_mpi_2017.1.132.tgz",
deprecated=True,
)
# built from parallel_studio_xe_2016.3.068
version(
"5.1.3.223",
sha256="544f4173b09609beba711fa3ba35567397ff3b8390e4f870a3307f819117dd9b",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/9278/l_mpi_p_5.1.3.223.tgz",
deprecated=True,
)
provides("mpi")
variant(
"external-libfabric", default=False, description="Enable external libfabric dependency"
)
depends_on("libfabric", when="+external-libfabric", type=("build", "link", "run"))
depends_on("cpio", type="build")
def setup_dependent_build_environment(self, env, dependent_spec):
# Handle in callback, conveying client's compilers in additional arg.
# CAUTION - DUP code in:
# ../intel-mpi/package.py
# ../intel-parallel-studio/package.py
dependent_module = dependent_spec.package.module
self._setup_dependent_env_callback(
env,
dependent_spec,
compilers_of_client={
"CC": dependent_module.spack_cc,
"CXX": dependent_module.spack_cxx,
"F77": dependent_module.spack_f77,
"F90": dependent_module.spack_fc,
"FC": dependent_module.spack_fc,
},
)
def setup_run_environment(self, env):
super().setup_run_environment(env)
for name, value in self.mpi_compiler_wrappers.items():
env.set(name, value)

View File

@@ -186,14 +186,13 @@ class IntelOneapiMkl(IntelOneApiLibraryPackage):
# If a +cluster then mpi_family must be set
with when("+cluster"):
conflicts("mpi_family=none")
requires("mpi_family=mpich", when="^intel-oneapi-mpi")
requires("mpi_family=mpich", when="^intel-mpi")
requires("mpi_family=mpich", when="^mpich")
requires("mpi_family=mpich", when="^mvapich")
requires("mpi_family=mpich", when="^mvapich2")
requires("mpi_family=mpich", when="^cray-mpich")
requires("mpi_family=openmpi", when="^openmpi")
requires("mpi_family=openmpi", when="^hpcx-mpi")
requires("mpi_family=mpich", when="^[virtuals=mpi] intel-oneapi-mpi")
requires("mpi_family=mpich", when="^[virtuals=mpi] mpich")
requires("mpi_family=mpich", when="^[virtuals=mpi] mvapich")
requires("mpi_family=mpich", when="^[virtuals=mpi] mvapich2")
requires("mpi_family=mpich", when="^[virtuals=mpi] cray-mpich")
requires("mpi_family=openmpi", when="^[virtuals=mpi] openmpi")
requires("mpi_family=openmpi", when="^[virtuals=mpi] hpcx-mpi")
provides("fftw-api@3")
provides("scalapack", when="+cluster")

View File

@@ -1,690 +0,0 @@
# Copyright Spack Project Developers. See COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
@IntelOneApiPackage.update_description
class IntelParallelStudio(IntelPackage):
"""This is an earlier version of Intel parallel software development
tools and has now been replaced by the Intel oneAPI Toolkits.
"""
homepage = "https://software.intel.com/en-us/intel-parallel-studio-xe"
maintainers("rscohn2")
depends_on("patchelf", type="build")
# As of 2016, the product comes in three "editions" that vary by scope.
#
# In Spack, select the edition via the version number in the spec, e.g.:
# intel-parallel-studio@cluster.2018
# NB: When updating the version numbers here, please also update them
# in the 'intel' package.
# Cluster Edition (top tier; all components included)
version(
"cluster.2020.4",
sha256="f36e49da97b6ce24d2d464d73d7ff49d71cff20e1698c20e607919819602a9f5",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/17113/parallel_studio_xe_2020_update4_cluster_edition.tgz",
deprecated=True,
)
version(
"cluster.2020.2",
sha256="4795c44374e8988b91da20ac8f13022d7d773461def4a26ca210a8694f69f133",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/16744/parallel_studio_xe_2020_update2_cluster_edition.tgz",
deprecated=True,
)
version(
"cluster.2020.1",
sha256="fd11d8de72b2bd60474f8bce7b463e4cbb2255969b9eaf24f689575aa2a2abab",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/16526/parallel_studio_xe_2020_update1_cluster_edition.tgz",
deprecated=True,
)
version(
"cluster.2020.0",
sha256="573b1d20707d68ce85b70934cfad15b5ad9cc14124a261c17ddd7717ba842c64",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/16225/parallel_studio_xe_2020_cluster_edition.tgz",
deprecated=True,
)
#
version(
"cluster.2019.5",
sha256="c03421de616bd4e640ed25ce4103ec9c5c85768a940a5cb5bd1e97b45be33904",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15809/parallel_studio_xe_2019_update5_cluster_edition.tgz",
deprecated=True,
)
version(
"cluster.2019.4",
sha256="32aee12de3b5ca14caf7578313c06b205795c67620f4a9606ea45696ee3b3d9e",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15533/parallel_studio_xe_2019_update4_cluster_edition.tgz",
deprecated=True,
)
version(
"cluster.2019.3",
sha256="b5b022366d6d1a98dbb63b60221c62bc951c9819653ad6f5142192e89f78cf63",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15268/parallel_studio_xe_2019_update3_cluster_edition.tgz",
deprecated=True,
)
version(
"cluster.2019.2",
sha256="8c526bdd95d1da454e5cada00f7a2353089b86d0c9df2088ca7f842fe3ff4cae",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15088/parallel_studio_xe_2019_update2_cluster_edition.tgz",
deprecated=True,
)
version(
"cluster.2019.1",
sha256="3a1eb39f15615f7a2688426b9835e5e841e0c030f21dcfc899fe23e09bd2c645",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/14850/parallel_studio_xe_2019_update1_cluster_edition.tgz",
deprecated=True,
)
version(
"cluster.2019.0",
sha256="1096dd4139bdd4b3abbda69a17d1e229a606759f793f5b0ba0d39623928ee4a1",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/13589/parallel_studio_xe_2019_cluster_edition.tgz",
deprecated=True,
)
#
version(
"cluster.2018.4",
sha256="210a5904a860e11b861720e68416f91fd47a459e4500976853291fa8b0478566",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/13717/parallel_studio_xe_2018_update4_cluster_edition.tgz",
deprecated=True,
)
version(
"cluster.2018.3",
sha256="23c64b88cea5056eaeef7b4ae0f4c6a86485c97f5e41d6c8419cb00aa4929287",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12998/parallel_studio_xe_2018_update3_cluster_edition.tgz",
deprecated=True,
)
version(
"cluster.2018.2",
sha256="550bc4758f7dd70e75830d329947532ad8b7cbb85225b8ec6db7e78a3f1d6d84",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12717/parallel_studio_xe_2018_update2_cluster_edition.tgz",
deprecated=True,
)
version(
"cluster.2018.1",
sha256="f7a94e83248d2641eb7ae2c1abf681067203a5b4372619e039861b468744774c",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12374/parallel_studio_xe_2018_update1_cluster_edition.tgz",
deprecated=True,
)
version(
"cluster.2018.0",
sha256="526e5e71c420dc9b557b0bae2a81abb33eedb9b6a28ac94996ccbcf71cf53774",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12058/parallel_studio_xe_2018_cluster_edition.tgz",
deprecated=True,
)
#
version(
"cluster.2017.7",
sha256="133c3aa99841a4fe48149938a90f971467452a82f033be10cd9464ba810f6360",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12856/parallel_studio_xe_2017_update7.tgz",
deprecated=True,
)
version(
"cluster.2017.6",
sha256="d771b00d3658934c424f294170125dc58ae9b03639aa898a2f115d7a7482dd3a",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12534/parallel_studio_xe_2017_update6.tgz",
deprecated=True,
)
version(
"cluster.2017.5",
sha256="36e496d1d1d7d7168cc3ba8f5bca9b52022339f30b62a87ed064b77a5cbccc09",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12138/parallel_studio_xe_2017_update5.tgz",
deprecated=True,
)
version(
"cluster.2017.4",
sha256="27d34625adfc635d767c136b5417a372f322fabe6701b651d858a8fe06d07f2d",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/11537/parallel_studio_xe_2017_update4.tgz",
deprecated=True,
)
version(
"cluster.2017.3",
sha256="856950c0493de3e8b4150e18f8821675c1cf75c2eea5ff0804f59eb301414bbe",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/11460/parallel_studio_xe_2017_update3.tgz",
deprecated=True,
)
version(
"cluster.2017.2",
sha256="83a655f0c2969409758488d70d6719fb5ea81a84b6da3feb641ce67bb240bc8a",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/11298/parallel_studio_xe_2017_update2.tgz",
deprecated=True,
)
version(
"cluster.2017.1",
sha256="c808be744c98f7471c61258144859e8e8fc92771934281a16135803e941fd9b0",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/10973/parallel_studio_xe_2017_update1.tgz",
deprecated=True,
)
version(
"cluster.2017.0",
sha256="f380a56a25cf17941eb691a640035e79f92516346500e0df80fbdd46c5c1b301",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/9651/parallel_studio_xe_2017.tgz",
deprecated=True,
)
#
version(
"cluster.2016.4",
sha256="ea43c150ed6f9967bc781fe4253169a0447c69bac4fe2c563016a1ad2875ae23",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/9781/parallel_studio_xe_2016_update4.tgz",
deprecated=True,
)
version(
"cluster.2016.3",
sha256="aa7c6f1a6603fae07c2b01409c12de0811aa5947eaa71dfb1fe9898076c2773e",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/9061/parallel_studio_xe_2016_update3.tgz",
deprecated=True,
)
version(
"cluster.2016.2",
sha256="280bf39c75d7f52f206759ca4d8b6334ab92d5970957b90f5aa286bb0aa8d65e",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/8676/parallel_studio_xe_2016_update2.tgz",
deprecated=True,
)
version(
"cluster.2016.1",
sha256="f5a3ab9fb581e19bf1bd966f7d40a11905e002a2bfae1c4a2140544288ca3e48",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/8365/parallel_studio_xe_2016_update1.tgz",
deprecated=True,
)
version(
"cluster.2016.0",
sha256="fd4c32352fd78fc919601bedac5658ad5ac48efbc5700d9a8d42ed7d53bd8bb7",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/7997/parallel_studio_xe_2016.tgz",
deprecated=True,
)
#
version(
"cluster.2015.6",
sha256="e604ed2bb45d227b151dd2898f3edd93526d58d1db1cb9d6b6f614907864f392",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/8469/parallel_studio_xe_2015_update6.tgz",
deprecated=True,
)
version(
"cluster.2015.1",
sha256="84fdf48d1de20e1d580ba5d419a5bc1c55d217a4f5dc1807190ecffe0229a62b",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/4992/parallel_studio_xe_2015_update1.tgz",
deprecated=True,
)
# Professional Edition (middle tier; excluded: MPI/TAC/Cluster Checker)
#
# NB: Pre-2018 download packages for Professional are the same as for
# Cluster; differences manifest only in the tokens present in the license
# file delivered as part of the purchase.
version(
"professional.2020.4",
sha256="f9679a40c63575191385837f4f1bdafbcfd3736f09ac51d0761248b9ca9cc9e6",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/17114/parallel_studio_xe_2020_update4_professional_edition.tgz",
deprecated=True,
)
version(
"professional.2020.2",
sha256="96f9bca551a43e09d9648e8cba357739a759423adb671d1aa5973b7a930370c5",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/16756/parallel_studio_xe_2020_update2_professional_edition.tgz",
deprecated=True,
)
version(
"professional.2020.1",
sha256="5b547be92ecf50cb338b3038a565f5609135b27aa98a8b7964879eb2331eb29a",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/16527/parallel_studio_xe_2020_update1_professional_edition.tgz",
deprecated=True,
)
version(
"professional.2020.0",
sha256="e88cad18d28da50ed9cb87b12adccf13efd91bf94731dc33290481306c6f15ac",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/16226/parallel_studio_xe_2020_professional_edition.tgz",
deprecated=True,
)
#
version(
"professional.2019.5",
sha256="0ec638330214539361f8632e20759f385a5a78013dcc980ee93743d86d354452",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15810/parallel_studio_xe_2019_update5_professional_edition.tgz",
deprecated=True,
)
version(
"professional.2019.4",
sha256="9b2818ea5739ade100841e99ce79ef7f4049a2513beb2ce20fc94706f1ba0231",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15534/parallel_studio_xe_2019_update4_professional_edition.tgz",
deprecated=True,
)
version(
"professional.2019.3",
sha256="92a8879106d0bdf1ecf4670cd97fbcdc67d78b13bdf484f2c516a533aa7a27f9",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15269/parallel_studio_xe_2019_update3_professional_edition.tgz",
deprecated=True,
)
version(
"professional.2019.2",
sha256="cdb629d74612d135ca197f1f64e6a081e31df68cda92346a29e1223bb06e64ea",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15089/parallel_studio_xe_2019_update2_professional_edition.tgz",
deprecated=True,
)
version(
"professional.2019.1",
sha256="bc83ef5a728903359ae11a2b90ad7dae4ae61194afb28bb5bb419f6a6aea225d",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/14825/parallel_studio_xe_2019_update1_professional_edition.tgz",
deprecated=True,
)
version(
"professional.2019.0",
sha256="94b9714e353e5c4f58d38cb236e2f8911cbef31c4b42a148d60c988e926411e2",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/13578/parallel_studio_xe_2019_professional_edition.tgz",
deprecated=True,
)
#
version(
"professional.2018.4",
sha256="54ab4320da849108602096fa7a34aa21751068467e0d1584aa8f16352b77d323",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/13718/parallel_studio_xe_2018_update4_professional_edition.tgz",
deprecated=True,
)
version(
"professional.2018.3",
sha256="3d8e72ccad31f243e43b72a925ad4a6908e2955682433898640ab783decf9960",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12999/parallel_studio_xe_2018_update3_professional_edition.tgz",
deprecated=True,
)
version(
"professional.2018.2",
sha256="fc577b29fb2c687441d4faea14a6fb6da529fc78fcb778cbface59f40e128e02",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12718/parallel_studio_xe_2018_update2_professional_edition.tgz",
deprecated=True,
)
version(
"professional.2018.1",
sha256="dd3e118069d87eebb614336732323b48172c8c8a653cde673a8ef02f7358e94d",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12375/parallel_studio_xe_2018_update1_professional_edition.tgz",
deprecated=True,
)
version(
"professional.2018.0",
sha256="72308ffa088391ea65726a79d7a73738206fbb1d8ed8563e3d06eab3120fb1a0",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12062/parallel_studio_xe_2018_professional_edition.tgz",
deprecated=True,
)
#
version(
"professional.2017.7",
sha256="133c3aa99841a4fe48149938a90f971467452a82f033be10cd9464ba810f6360",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12856/parallel_studio_xe_2017_update7.tgz",
deprecated=True,
)
version(
"professional.2017.6",
sha256="d771b00d3658934c424f294170125dc58ae9b03639aa898a2f115d7a7482dd3a",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12534/parallel_studio_xe_2017_update6.tgz",
deprecated=True,
)
version(
"professional.2017.5",
sha256="36e496d1d1d7d7168cc3ba8f5bca9b52022339f30b62a87ed064b77a5cbccc09",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12138/parallel_studio_xe_2017_update5.tgz",
deprecated=True,
)
version(
"professional.2017.4",
sha256="27d34625adfc635d767c136b5417a372f322fabe6701b651d858a8fe06d07f2d",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/11537/parallel_studio_xe_2017_update4.tgz",
deprecated=True,
)
version(
"professional.2017.3",
sha256="856950c0493de3e8b4150e18f8821675c1cf75c2eea5ff0804f59eb301414bbe",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/11460/parallel_studio_xe_2017_update3.tgz",
deprecated=True,
)
version(
"professional.2017.2",
sha256="83a655f0c2969409758488d70d6719fb5ea81a84b6da3feb641ce67bb240bc8a",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/11298/parallel_studio_xe_2017_update2.tgz",
deprecated=True,
)
version(
"professional.2017.1",
sha256="c808be744c98f7471c61258144859e8e8fc92771934281a16135803e941fd9b0",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/10973/parallel_studio_xe_2017_update1.tgz",
deprecated=True,
)
version(
"professional.2017.0",
sha256="f380a56a25cf17941eb691a640035e79f92516346500e0df80fbdd46c5c1b301",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/9651/parallel_studio_xe_2017.tgz",
deprecated=True,
)
#
version(
"professional.2016.4",
sha256="ea43c150ed6f9967bc781fe4253169a0447c69bac4fe2c563016a1ad2875ae23",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/9781/parallel_studio_xe_2016_update4.tgz",
deprecated=True,
)
version(
"professional.2016.3",
sha256="aa7c6f1a6603fae07c2b01409c12de0811aa5947eaa71dfb1fe9898076c2773e",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/9061/parallel_studio_xe_2016_update3.tgz",
deprecated=True,
)
version(
"professional.2016.2",
sha256="280bf39c75d7f52f206759ca4d8b6334ab92d5970957b90f5aa286bb0aa8d65e",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/8676/parallel_studio_xe_2016_update2.tgz",
deprecated=True,
)
version(
"professional.2016.1",
sha256="f5a3ab9fb581e19bf1bd966f7d40a11905e002a2bfae1c4a2140544288ca3e48",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/8365/parallel_studio_xe_2016_update1.tgz",
deprecated=True,
)
version(
"professional.2016.0",
sha256="fd4c32352fd78fc919601bedac5658ad5ac48efbc5700d9a8d42ed7d53bd8bb7",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/7997/parallel_studio_xe_2016.tgz",
deprecated=True,
)
#
version(
"professional.2015.6",
sha256="e604ed2bb45d227b151dd2898f3edd93526d58d1db1cb9d6b6f614907864f392",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/8469/parallel_studio_xe_2015_update6.tgz",
deprecated=True,
)
version(
"professional.2015.1",
sha256="84fdf48d1de20e1d580ba5d419a5bc1c55d217a4f5dc1807190ecffe0229a62b",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/4992/parallel_studio_xe_2015_update1.tgz",
deprecated=True,
)
# Composer Edition (basic tier; excluded: MPI/..., Advisor/Inspector/Vtune)
version(
"composer.2020.4",
sha256="ac1efeff608a8c3a416e6dfe20364061e8abf62d35fbaacdffe3fc9676fc1aa3",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/16759/parallel_studio_xe_2020_update2_composer_edition.tgz",
deprecated=True,
)
version(
"composer.2020.2",
sha256="42af16e9a91226978bb401d9f17b628bc279aa8cb104d4a38ba0808234a79bdd",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/16759/parallel_studio_xe_2020_update2_composer_edition.tgz",
deprecated=True,
)
version(
"composer.2020.1",
sha256="26c7e7da87b8a83adfd408b2a354d872be97736abed837364c1bf10f4469b01e",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/16530/parallel_studio_xe_2020_update1_composer_edition.tgz",
deprecated=True,
)
version(
"composer.2020.0",
sha256="9168045466139b8e280f50f0606b9930ffc720bbc60bc76f5576829ac15757ae",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/16229/parallel_studio_xe_2020_composer_edition.tgz",
deprecated=True,
)
#
version(
"composer.2019.5",
sha256="e8c8e4b9b46826a02c49325c370c79f896858611bf33ddb7fb204614838ad56c",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15813/parallel_studio_xe_2019_update5_composer_edition.tgz",
deprecated=True,
)
version(
"composer.2019.4",
sha256="1915993445323e1e78d6de73702a88fa3df2036109cde03d74ee38fef9f1abf2",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15537/parallel_studio_xe_2019_update4_composer_edition.tgz",
deprecated=True,
)
version(
"composer.2019.3",
sha256="15373ac6df2a84e6dd9fa0eac8b5f07ab00cdbb67f494161fd0d4df7a71aff8e",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15272/parallel_studio_xe_2019_update3_composer_edition.tgz",
deprecated=True,
)
version(
"composer.2019.2",
sha256="1e0f400be1f458592a8c2e7d55c1b2a4506f68f22bacbf1175af947809a4cd87",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15092/parallel_studio_xe_2019_update2_composer_edition.tgz",
deprecated=True,
)
version(
"composer.2019.1",
sha256="db000cb2ebf411f6e91719db68a0c68b8d3f7d38ad7f2049ea5b2f1b5f006c25",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/14832/parallel_studio_xe_2019_update1_composer_edition.tgz",
deprecated=True,
)
version(
"composer.2019.0",
sha256="e1a29463038b063e01f694e2817c0fcf1a8e824e24f15a26ce85f20afa3f963a",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/13581/parallel_studio_xe_2019_composer_edition.tgz",
deprecated=True,
)
#
version(
"composer.2018.4",
sha256="94aca8f091dff9535b02f022a37aef150b36925c8ef069335621496f8e4db267",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/13722/parallel_studio_xe_2018_update4_composer_edition.tgz",
deprecated=True,
)
version(
"composer.2018.3",
sha256="f21f7759709a3d3e3390a8325fa89ac79b1fce8890c292e73b2ba3ec576ebd2b",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/13002/parallel_studio_xe_2018_update3_composer_edition.tgz",
deprecated=True,
)
version(
"composer.2018.2",
sha256="02d2a9fb10d9810f85dd77700215c4348d2e4475e814e4f086eb1442462667ff",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12722/parallel_studio_xe_2018_update2_composer_edition.tgz",
deprecated=True,
)
version(
"composer.2018.1",
sha256="db9aa417da185a03a63330c9d76ee8e88496ae6b771584d19003a29eedc7cab5",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12381/parallel_studio_xe_2018_update1_composer_edition.tgz",
deprecated=True,
)
version(
"composer.2018.0",
sha256="ecad64360fdaff2548a0ea250a396faf680077c5a83c3c3ce2c55f4f4270b904",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12067/parallel_studio_xe_2018_composer_edition.tgz",
deprecated=True,
)
#
version(
"composer.2017.7",
sha256="661e33b68e47bf335694d2255f5883955234e9085c8349783a5794eed2a937ad",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12860/parallel_studio_xe_2017_update7_composer_edition.tgz",
deprecated=True,
)
version(
"composer.2017.6",
sha256="771f50746fe130ea472394c42e25d2c7edae049ad809d2050945ef637becf65f",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12538/parallel_studio_xe_2017_update6_composer_edition.tgz",
deprecated=True,
)
version(
"composer.2017.5",
sha256="ede4ea9351fcf263103588ae0f130b4c2a79395529cdb698b0d6e866c4871f78",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12144/parallel_studio_xe_2017_update5_composer_edition.tgz",
deprecated=True,
)
version(
"composer.2017.4",
sha256="4304766f80206a27709be61641c16782fccf2b3fcf7285782cce921ddc9b10ff",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/11541/parallel_studio_xe_2017_update4_composer_edition.tgz",
deprecated=True,
)
version(
"composer.2017.3",
sha256="3648578d7bba993ebb1da37c173979bfcfb47f26e7f4e17f257e78dea8fd96ab",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/11464/parallel_studio_xe_2017_update3_composer_edition.tgz",
deprecated=True,
)
version(
"composer.2017.2",
sha256="abd26ab2a703e73ab93326984837818601c391782a6bce52da8b2a246798ad40",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/11302/parallel_studio_xe_2017_update2_composer_edition.tgz",
deprecated=True,
)
version(
"composer.2017.1",
sha256="bc592abee829ba6e00a4f60961b486b80c15987ff1579d6560186407c84add6f",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/10978/parallel_studio_xe_2017_update1_composer_edition.tgz",
deprecated=True,
)
version(
"composer.2017.0",
sha256="d218db66a5bb57569bea00821ac95d4647eda7422bf8a178d1586b0fb314935a",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/9656/parallel_studio_xe_2017_composer_edition.tgz",
deprecated=True,
)
#
version(
"composer.2016.4",
sha256="17606c52cab6f5114223a2425923c8dd69f1858f5a3bdf280e0edea49ebd430d",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/9785/parallel_studio_xe_2016_composer_edition_update4.tgz",
deprecated=True,
)
version(
"composer.2016.3",
sha256="fcec90ba97533e4705077e0701813b5a3bcc197b010b03e96f83191a35c26acf",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/9063/parallel_studio_xe_2016_composer_edition_update3.tgz",
deprecated=True,
)
version(
"composer.2016.2",
sha256="6309ef8be1abba7737d3c1e17af64ca2620672b2da57afe2c3c643235f65b4c7",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/8680/parallel_studio_xe_2016_composer_edition_update2.tgz",
deprecated=True,
)
#
# Pre-2016, the only product was "Composer XE"; dir structure is different.
version(
"composer.2015.6",
sha256="b1e09833469ca76a2834cd0a5bb5fea11ec9986da85abf4c6eed42cd96ec24cb",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/8432/l_compxe_2015.6.233.tgz",
deprecated=True,
)
version(
"composer.2015.1",
sha256="8a438fe20103e27bfda132955616d0c886aa6cfdd86dcd9764af5d937a8799d9",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/4933/l_compxe_2015.1.133.tgz",
deprecated=True,
)
# Generic Variants
variant("rpath", default=True, description="Add rpath to .cfg files")
variant(
"newdtags", default=False, description="Allow use of --enable-new-dtags in MPI wrappers"
)
variant("shared", default=True, description="Builds shared library")
variant("ilp64", default=False, description="64 bit integers")
variant(
"threads",
default="none",
description="Multithreading support",
values=("openmp", "none"),
multi=False,
)
auto_dispatch_options = IntelPackage.auto_dispatch_options
variant(
"auto_dispatch",
values=any_combination_of(*auto_dispatch_options),
description="Enable generation of multiple auto-dispatch code paths",
)
# Components available in all editions
variant("daal", default=True, description="Install the Intel DAAL libraries")
variant(
"gdb", default=False, description="Install the Intel Debugger for Heterogeneous Compute"
)
variant("ipp", default=True, description="Install the Intel IPP libraries")
variant("mkl", default=True, description="Install the Intel MKL library")
variant("mpi", default=True, description="Install the Intel MPI library")
variant("tbb", default=True, description="Install the Intel TBB libraries")
# Components only available in the Professional and Cluster Editions
variant("advisor", default=False, description="Install the Intel Advisor")
variant("clck", default=False, description="Install the Intel Cluster Checker")
variant("inspector", default=False, description="Install the Intel Inspector")
variant("itac", default=False, description="Install the Intel Trace Analyzer and Collector")
variant("vtune", default=False, description="Install the Intel VTune Amplifier XE")
provides("daal", when="+daal")
provides("ipp", when="+ipp")
provides("mkl", when="+mkl")
provides("blas", "lapack", when="+mkl")
provides("scalapack", when="+mkl")
provides("fftw-api@3", when="+mkl@professional.2017:")
provides("fftw-api@3", when="+mkl@cluster.2017:")
provides("fftw-api@3", when="+mkl@composer.2017:")
provides("mpi", when="+mpi")
provides("tbb", when="+tbb")
conflicts("target=ppc64:", msg="intel-parallel-studio is only available for x86_64")
conflicts("target=ppc64le:", msg="intel-parallel-studio is only available for x86_64")
conflicts("target=aarch64:", msg="intel-parallel-studio is only available for x86_64")
# For TBB, static linkage is not and has never been supported by Intel:
# https://www.threadingbuildingblocks.org/faq/there-version-tbb-provides-statically-linked-libraries
conflicts("+tbb", when="~shared")
conflicts("+advisor", when="@composer.0:composer")
conflicts("+clck", when="@composer.0:composer")
conflicts("+inspector", when="@composer.0:composer")
conflicts("+itac", when="@composer.0:composer")
conflicts("+mpi", when="@composer.0:composer")
conflicts("+vtune", when="@composer.0:composer")
conflicts("+clck", when="@professional.0:professional")
conflicts("+itac", when="@professional.0:professional")
conflicts("+mpi", when="@professional.0:professional")
# The following components are not available before 2016
conflicts("+daal", when="@professional.0:professional.2015.7")
conflicts("+daal", when="@cluster.0:cluster.2015.7")
conflicts("+daal", when="@composer.0:composer.2015.7")
# MacOS does not support some of the auto dispatch settings
conflicts("auto_dispatch=SSE2", "platform=darwin", msg="SSE2 is not supported on MacOS")
conflicts(
"auto_dispatch=SSE3",
"platform=darwin target=x86_64:",
msg="SSE3 is not supported on MacOS x86_64",
)
def setup_dependent_build_environment(self, env, dependent_spec):
# Handle in callback, conveying client's compilers in additional arg.
# CAUTION - DUP code in:
# ../intel-mpi/package.py
# ../intel-parallel-studio/package.py
dependent_module = dependent_spec.package.module
self._setup_dependent_env_callback(
env,
dependent_spec,
compilers_of_client={
"CC": dependent_module.spack_cc,
"CXX": dependent_module.spack_cxx,
"F77": dependent_module.spack_f77,
"F90": dependent_module.spack_fc,
"FC": dependent_module.spack_fc,
},
)
def setup_run_environment(self, env):
super().setup_run_environment(env)
for name, value in self.mpi_compiler_wrappers.items():
env.set(name, value)

View File

@@ -1,25 +0,0 @@
paths:
- layout:
- executables:
- "bin/intel64/icc"
script: |
echo "icc (ICC) 18.0.5 20180823"
echo "Copyright (C) 1985-2018 Intel Corporation. All rights reserved."
- executables:
- "bin/intel64/icpc"
script: |
echo "icpc (ICC) 18.0.5 20180823"
echo "Copyright (C) 1985-2018 Intel Corporation. All rights reserved."
- executables:
- "bin/intel64/ifort"
script: |
echo "ifort (IFORT) 18.0.5 20180823"
echo "Copyright (C) 1985-2018 Intel Corporation. All rights reserved."
platforms: ["darwin", "linux"]
results:
- spec: 'intel@18.0.5'
extra_attributes:
compilers:
c: ".*/bin/intel64/icc"
cxx: ".*/bin/intel64/icpc"
fortran: ".*/bin/intel64/ifort"

View File

@@ -1,289 +0,0 @@
# Copyright Spack Project Developers. See COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
import re
import llnl.util.tty as tty
import spack.build_systems.compiler
from spack.package import *
@IntelOneApiPackage.update_description
class Intel(IntelPackage):
"""Intel Compilers. This package has been replaced by
intel-oneapi-compilers.
"""
homepage = "https://software.intel.com/en-us/intel-parallel-studio-xe"
# Robert Cohn
maintainers("rscohn2")
depends_on("patchelf", type="build")
# Same as in ../intel-parallel-studio/package.py, Composer Edition,
# but the version numbering in Spack differs.
version(
"20.0.4",
sha256="ac1efeff608a8c3a416e6dfe20364061e8abf62d35fbaacdffe3fc9676fc1aa3",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/17117/parallel_studio_xe_2020_update4_composer_edition.tgz",
deprecated=True,
)
version(
"20.0.2",
sha256="42af16e9a91226978bb401d9f17b628bc279aa8cb104d4a38ba0808234a79bdd",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/16759/parallel_studio_xe_2020_update2_composer_edition.tgz",
deprecated=True,
)
version(
"20.0.1",
sha256="26c7e7da87b8a83adfd408b2a354d872be97736abed837364c1bf10f4469b01e",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/16530/parallel_studio_xe_2020_update1_composer_edition.tgz",
deprecated=True,
)
version(
"20.0.0",
sha256="9168045466139b8e280f50f0606b9930ffc720bbc60bc76f5576829ac15757ae",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/16229/parallel_studio_xe_2020_composer_edition.tgz",
deprecated=True,
)
version(
"19.1.2",
sha256="42af16e9a91226978bb401d9f17b628bc279aa8cb104d4a38ba0808234a79bdd",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/16759/parallel_studio_xe_2020_update2_composer_edition.tgz",
deprecated=True,
)
version(
"19.1.1",
sha256="26c7e7da87b8a83adfd408b2a354d872be97736abed837364c1bf10f4469b01e",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/16530/parallel_studio_xe_2020_update1_composer_edition.tgz",
deprecated=True,
)
version(
"19.1.0",
sha256="9168045466139b8e280f50f0606b9930ffc720bbc60bc76f5576829ac15757ae",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/16229/parallel_studio_xe_2020_composer_edition.tgz",
deprecated=True,
)
version(
"19.0.5",
sha256="e8c8e4b9b46826a02c49325c370c79f896858611bf33ddb7fb204614838ad56c",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15813/parallel_studio_xe_2019_update5_composer_edition.tgz",
deprecated=True,
)
version(
"19.0.4",
sha256="1915993445323e1e78d6de73702a88fa3df2036109cde03d74ee38fef9f1abf2",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15537/parallel_studio_xe_2019_update4_composer_edition.tgz",
deprecated=True,
)
version(
"19.0.3",
sha256="15373ac6df2a84e6dd9fa0eac8b5f07ab00cdbb67f494161fd0d4df7a71aff8e",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15272/parallel_studio_xe_2019_update3_composer_edition.tgz",
deprecated=True,
)
version(
"19.0.1",
sha256="db000cb2ebf411f6e91719db68a0c68b8d3f7d38ad7f2049ea5b2f1b5f006c25",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/14832/parallel_studio_xe_2019_update1_composer_edition.tgz",
deprecated=True,
)
version(
"19.0.0",
sha256="e1a29463038b063e01f694e2817c0fcf1a8e824e24f15a26ce85f20afa3f963a",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/13581/parallel_studio_xe_2019_composer_edition.tgz",
deprecated=True,
)
# Version 18.0.5 comes with parallel studio 2018 update 4. See:
# https://software.intel.com/en-us/articles/intel-compiler-and-composer-update-version-numbers-to-compiler-version-number-mapping
version(
"18.0.5",
sha256="94aca8f091dff9535b02f022a37aef150b36925c8ef069335621496f8e4db267",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/13722/parallel_studio_xe_2018_update4_composer_edition.tgz",
deprecated=True,
)
version(
"18.0.3",
sha256="f21f7759709a3d3e3390a8325fa89ac79b1fce8890c292e73b2ba3ec576ebd2b",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/13002/parallel_studio_xe_2018_update3_composer_edition.tgz",
deprecated=True,
)
version(
"18.0.2",
sha256="02d2a9fb10d9810f85dd77700215c4348d2e4475e814e4f086eb1442462667ff",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12722/parallel_studio_xe_2018_update2_composer_edition.tgz",
deprecated=True,
)
version(
"18.0.1",
sha256="db9aa417da185a03a63330c9d76ee8e88496ae6b771584d19003a29eedc7cab5",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12381/parallel_studio_xe_2018_update1_composer_edition.tgz",
deprecated=True,
)
version(
"18.0.0",
sha256="ecad64360fdaff2548a0ea250a396faf680077c5a83c3c3ce2c55f4f4270b904",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12067/parallel_studio_xe_2018_composer_edition.tgz",
deprecated=True,
)
#
version(
"17.0.7",
sha256="661e33b68e47bf335694d2255f5883955234e9085c8349783a5794eed2a937ad",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12860/parallel_studio_xe_2017_update7_composer_edition.tgz",
deprecated=True,
)
version(
"17.0.6",
sha256="771f50746fe130ea472394c42e25d2c7edae049ad809d2050945ef637becf65f",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12538/parallel_studio_xe_2017_update6_composer_edition.tgz",
deprecated=True,
)
version(
"17.0.5",
sha256="ede4ea9351fcf263103588ae0f130b4c2a79395529cdb698b0d6e866c4871f78",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12144/parallel_studio_xe_2017_update5_composer_edition.tgz",
deprecated=True,
)
version(
"17.0.4",
sha256="4304766f80206a27709be61641c16782fccf2b3fcf7285782cce921ddc9b10ff",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/11541/parallel_studio_xe_2017_update4_composer_edition.tgz",
deprecated=True,
)
version(
"17.0.3",
sha256="3648578d7bba993ebb1da37c173979bfcfb47f26e7f4e17f257e78dea8fd96ab",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/11464/parallel_studio_xe_2017_update3_composer_edition.tgz",
deprecated=True,
)
version(
"17.0.2",
sha256="abd26ab2a703e73ab93326984837818601c391782a6bce52da8b2a246798ad40",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/11302/parallel_studio_xe_2017_update2_composer_edition.tgz",
deprecated=True,
)
version(
"17.0.1",
sha256="bc592abee829ba6e00a4f60961b486b80c15987ff1579d6560186407c84add6f",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/10978/parallel_studio_xe_2017_update1_composer_edition.tgz",
deprecated=True,
)
version(
"17.0.0",
sha256="d218db66a5bb57569bea00821ac95d4647eda7422bf8a178d1586b0fb314935a",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/9656/parallel_studio_xe_2017_composer_edition.tgz",
deprecated=True,
)
#
version(
"16.0.4",
sha256="17606c52cab6f5114223a2425923c8dd69f1858f5a3bdf280e0edea49ebd430d",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/9785/parallel_studio_xe_2016_composer_edition_update4.tgz",
deprecated=True,
)
version(
"16.0.3",
sha256="fcec90ba97533e4705077e0701813b5a3bcc197b010b03e96f83191a35c26acf",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/9063/parallel_studio_xe_2016_composer_edition_update3.tgz",
deprecated=True,
)
version(
"16.0.2",
sha256="6309ef8be1abba7737d3c1e17af64ca2620672b2da57afe2c3c643235f65b4c7",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/8680/parallel_studio_xe_2016_composer_edition_update2.tgz",
deprecated=True,
)
#
# Grandfathered release; different directory structure.
version(
"15.0.6",
sha256="b1e09833469ca76a2834cd0a5bb5fea11ec9986da85abf4c6eed42cd96ec24cb",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/8432/l_compxe_2015.6.233.tgz",
deprecated=True,
)
version(
"15.0.1",
sha256="8a438fe20103e27bfda132955616d0c886aa6cfdd86dcd9764af5d937a8799d9",
url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/4933/l_compxe_2015.1.133.tgz",
deprecated=True,
)
variant("rpath", default=True, description="Add rpath to .cfg files")
auto_dispatch_options = IntelPackage.auto_dispatch_options
variant(
"auto_dispatch",
values=any_combination_of(*auto_dispatch_options),
description="Enable generation of multiple auto-dispatch code paths",
)
# MacOS does not support some of the auto dispatch settings
conflicts("auto_dispatch=SSE2", "platform=darwin", msg="SSE2 is not supported on MacOS")
conflicts(
"auto_dispatch=SSE3",
"platform=darwin target=x86_64:",
msg="SSE3 is not supported on MacOS x86_64",
)
executables = ["^icc$", "^icpc$", "^ifort$"]
@classmethod
def determine_version(cls, exe):
version_regex = re.compile(r"\((?:IFORT|ICC)\) ([^ ]+)")
try:
output = spack.build_systems.compiler.compiler_output(
exe, version_argument="--version"
)
match = version_regex.search(output)
if match:
return match.group(1)
except ProcessError:
pass
except Exception as e:
tty.debug(str(e))
return None
@classmethod
def determine_variants(cls, exes, version_str):
compilers = {}
for exe in exes:
if "icc" in exe:
compilers["c"] = exe
if "icpc" in exe:
compilers["cxx"] = exe
if "ifort" in exe:
compilers["fortran"] = exe
return "", {"compilers": compilers}
@property
def cc(self):
msg = "cannot retrieve C compiler [spec is not concrete]"
assert self.spec.concrete, msg
if self.spec.external:
return self.spec.extra_attributes["compilers"].get("c", None)
return str(self.spec.prefix.bin.intel64.icc)
@property
def cxx(self):
msg = "cannot retrieve C++ compiler [spec is not concrete]"
assert self.spec.concrete, msg
if self.spec.external:
return self.spec.extra_attributes["compilers"].get("cxx", None)
return str(self.spec.prefix.bin.intel64.icpc)
@property
def fortran(self):
msg = "cannot retrieve Fortran compiler [spec is not concrete]"
assert self.spec.concrete, msg
if self.spec.external:
return self.spec.extra_attributes["compilers"].get("fortran", None)
return str(self.spec.prefix.bin.intel64.ifort)
# Since the current package is a subset of 'intel-parallel-studio',
# all remaining Spack actions are handled in the package class.

View File

@@ -83,7 +83,7 @@ def edit(self, spec, prefix):
vinc += " -DHAVE_LAPACK_CONFIG_H"
vinc += " -DLAPACK_COMPLEX_STRUCTURE"
filter_file("#PLATFORM=lapack", vinc, mf, string=True)
elif ltype == "intel-mkl":
elif ltype == "intel-oneapi-mkl":
vpla = "PLATFORM=mkl"
filter_file("#PLATFORM=lapack", vinc, mf, string=True)

View File

@@ -75,7 +75,7 @@ class Itk(CMakePackage):
)
def cmake_args(self):
use_mkl = self.spec["fftw-api"].name in INTEL_MATH_LIBRARIES
use_mkl = self.spec.satisfies("^[virtuals=fftw-api] intel-oneapi-mkl")
args = [
self.define("BUILD_TESTING", False),
self.define("BUILD_SHARED_LIBS", True),

View File

@@ -73,9 +73,7 @@ def install(self, spec, prefix):
configure_args.append("--atlas-root=" + spec["blas"].prefix)
if "+pthread" in spec["blas"].variants:
configure_args.append("--threaded-atlas")
elif spec.satisfies("^[virtuals=blas] intel-parallel-studio") or spec.satisfies(
"^[virtuals=blas] intel-mkl"
):
elif spec.satisfies("^[virtuals=blas] intel-oneapi-mkl"):
configure_args.append("--mathlib=MKL")
configure_args.append("--mkl-root=" + spec["blas"].prefix.mkl)
if "+openmp" in spec["blas"].variants:

View File

@@ -28,14 +28,13 @@ class Ldak(Package):
depends_on("blas")
depends_on("lapack")
depends_on("openblas threads=openmp", when="^[virtuals=blas] openblas")
depends_on("intel-mkl threads=openmp", when="^[virtuals=blas] intel-mkl")
depends_on("intel-oneapi-mkl threads=openmp", when="^[virtuals=blas] intel-oneapi-mkl")
depends_on("glpk", when="+glpk")
requires("target=x86_64:", when="~glpk", msg="bundled qsopt is only for x86_64")
requires(
"^openblas",
*[f"^{intel_pkg}" for intel_pkg in INTEL_MATH_LIBRARIES],
"^[virtuals=lapack] openblas",
"^[virtuals=lapack] intel-oneapi-mkl",
policy="one_of",
msg="Only mkl or openblas are supported for blas/lapack with ldak",
)

View File

@@ -31,8 +31,6 @@ class Ligra(MakefilePackage):
def setup_build_environment(self, env):
if self.spec.satisfies("+openmp"):
env.set("OPENMP", "1")
# when +mkl, MKLROOT will be defined by intel-mkl package,
# triggering a build with mkl support
def setup_run_environment(self, env):
env.prepend_path("PATH", self.prefix.apps)

View File

@@ -85,12 +85,11 @@ def edit(self, spec, prefix):
flags["PREFIX"] = prefix
# Set LAPACK and SCALAPACK
if (
spec["scalapack"].name in INTEL_MATH_LIBRARIES
or spec["lapack"].name in INTEL_MATH_LIBRARIES
or spec["blas"].name in INTEL_MATH_LIBRARIES
if spec.satisfies("^[virtuals=scalapack] intel-oneapi-mkl") or spec.satisfies(
"^[virtuals=lapack] intel-oneapi-mkl"
):
flags["LAPACK"] = self._get_mkl_ld_flags(spec)
flags["CPPFLAGS"] = flags.get("CPPFLAGS", "") + " -DHAVE_MKL "
else:
flags["LAPACK"] = spec["lapack"].libs.ld_flags + " " + spec["blas"].libs.ld_flags
if "+scalapack" in spec:
@@ -116,13 +115,6 @@ def edit(self, spec, prefix):
if "+scalapack" in spec:
flags["CPPFLAGS"] = flags.get("CPPFLAGS", "") + " -DHAVE_SCALAPACK -DHAVE_MPI "
if (
spec["lapack"].name in INTEL_MATH_LIBRARIES
or spec["scalapack"].name in INTEL_MATH_LIBRARIES
or spec["blas"].name in INTEL_MATH_LIBRARIES
):
flags["CPPFLAGS"] = flags.get("CPPFLAGS", "") + " -DHAVE_MKL "
# Write configuration file
with open("my_machine.arch", "w") as f:
for k, v in flags.items():

View File

@@ -236,7 +236,9 @@ def write_makefile_inc(self):
# As of version 5.2.0, MUMPS is able to take advantage
# of the GEMMT BLAS extension. MKL and amdblis are the only
# known BLAS implementation supported.
if self.spec["blas"].name in INTEL_MATH_LIBRARIES and self.spec.satisfies("@5.2.0:"):
if self.spec.satisfies("^[virtuals=blas] intel-oneapi-mkl") and self.spec.satisfies(
"@5.2.0:"
):
optf.append("-DGEMMT_AVAILABLE")
if "@5.2.0: ^amdblis@3.0:" in self.spec:

View File

@@ -72,12 +72,7 @@ class Ngspice(AutotoolsPackage):
depends_on("cray-fftw+openmp", when="^[virtuals=fftw-api] cray-fftw")
depends_on("fftw+openmp", when="^[virtuals=fftw-api] fftw")
depends_on("fujitsu-fftw+openmp", when="^[virtuals=fftw-api] fujitsu-fftw")
depends_on("intel-mkl threads=openmp", when="^[virtuals=fftw-api] intel-mkl")
depends_on("intel-oneapi-mkl threads=openmp", when="^[virtuals=fftw-api] intel-oneapi-mkl")
depends_on(
"intel-parallel-studio threads=openmp",
when="^[virtuals=fftw-api] intel-parallel-studio",
)
with when("+fft~openmp"):
depends_on("acfl threads=none", when="^[virtuals=fftw-api] acfl")
@@ -86,11 +81,7 @@ class Ngspice(AutotoolsPackage):
depends_on("cray-fftw~openmp", when="^[virtuals=fftw-api] cray-fftw")
depends_on("fftw~openmp", when="^[virtuals=fftw-api] fftw")
depends_on("fujitsu-fftw~openmp", when="^[virtuals=fftw-api] fujitsu-fftw")
depends_on("intel-mkl threads=none", when="^[virtuals=fftw-api] intel-mkl")
depends_on("intel-oneapi-mkl threads=none", when="^[virtuals=fftw-api] intel-oneapi-mkl")
depends_on(
"intel-parallel-studio threads=none", when="^[virtuals=fftw-api] intel-parallel-studio"
)
depends_on("readline", when="+readline build=bin")

View File

@@ -44,6 +44,13 @@ class Nlcglib(CMakePackage, CudaPackage, ROCmPackage):
depends_on("mpi")
depends_on("lapack")
requires(
"^[virtuals=lapack] openblas",
"^[virtuals=lapack] intel-oneapi-mkl",
policy="one_of",
msg="Only mkl or openblas are supported for blas/lapack with ldak",
)
depends_on("kokkos~cuda~rocm", when="~cuda~rocm")
depends_on("kokkos+openmp", when="+openmp")
@@ -81,13 +88,10 @@ def cmake_args(self):
self.define_from_variant("USE_CUDA", "cuda"),
]
if self.spec["blas"].name in ["intel-mkl", "intel-parallel-studio"]:
options += [self.define("LAPACK_VENDOR", "MKL")]
elif self.spec["blas"].name in ["intel-oneapi-mkl"]:
options += [self.define("LAPACK_VENDOR", "MKLONEAPI")]
if self.spec.satisfies("^[virtuals=lapack] intel-oneapi-mkl"):
mkl_mapper = {
"threading": {"none": "sequential", "openmp": "gnu_thread", "tbb": "tbb_thread"},
"mpi": {"intel-mpi": "intelmpi", "mpich": "mpich", "openmpi": "openmpi"},
"mpi": {"intel-oneapi-mpi": "intelmpi", "mpich": "mpich", "openmpi": "openmpi"},
}
mkl_threads = mkl_mapper["threading"][
@@ -102,23 +106,20 @@ def cmake_args(self):
options.extend(
[
self.define("LAPACK_VENDOR", "MKLONEAPI"),
self.define("MKL_INTERFACE", "lp64"),
self.define("MKL_THREADING", mkl_threads),
self.define("MKL_MPI", mkl_mpi),
]
)
elif self.spec["blas"].name in ["openblas"]:
options += [self.define("LAPACK_VENDOR", "OpenBLAS")]
else:
raise Exception("blas/lapack must be either openblas or mkl.")
options.append(self.define("LAPACK_VENDOR", "OpenBLAS"))
if "+cuda%gcc" in self.spec:
options += [
self.define(
"CMAKE_CXX_COMPILER", "{0}".format(self["kokkos-nvcc-wrapper"].kokkos_cxx)
)
]
options.append(
self.define("CMAKE_CXX_COMPILER", self["kokkos-nvcc-wrapper"].kokkos_cxx)
)
if "+cuda" in self.spec:
cuda_archs = self.spec.variants["cuda_arch"].value
@@ -126,19 +127,23 @@ def cmake_args(self):
cuda_flags = " ".join(
["-gencode arch=compute_{0},code=sm_{0}".format(x) for x in cuda_archs]
)
options += [self.define("CMAKE_CUDA_FLAGS", cuda_flags)]
options.append(self.define("CMAKE_CUDA_FLAGS", cuda_flags))
else:
options += [self.define("CMAKE_CUDA_ARCHITECTURES", cuda_archs)]
options.append(self.define("CMAKE_CUDA_ARCHITECTURES", cuda_archs))
if "^cuda+allow-unsupported-compilers" in self.spec:
options += [self.define("CMAKE_CUDA_FLAGS", "--allow-unsupported-compiler")]
options.append(self.define("CMAKE_CUDA_FLAGS", "--allow-unsupported-compiler"))
if "+rocm" in self.spec:
options.append(self.define("CMAKE_CXX_COMPILER", self.spec["hip"].hipcc))
archs = ",".join(self.spec.variants["amdgpu_target"].value)
options.append("-DHIP_HCC_FLAGS=--amdgpu-target={0}".format(archs))
options.append(
"-DCMAKE_CXX_FLAGS=--amdgpu-target={0} --offload-arch={0}".format(archs)
options.extend(
[
self.define("CMAKE_CXX_COMPILER", self.spec["hip"].hipcc),
self.define("HIP_HCC_FLAGS", f"--amdgpu-target={archs}"),
self.define(
"CMAKE_CXX_FLAGS", f"--amdgpu-target={archs} --offload-arch={archs}"
),
]
)
return options

View File

@@ -181,7 +181,7 @@ def configure_args(self):
if "^fftw" in spec:
args.append("--with-fftw-prefix=%s" % spec["fftw"].prefix)
elif spec["fftw-api"].name in INTEL_MATH_LIBRARIES:
elif spec.satisfies("^[virtuals=fftw-api] intel-oneapi-mkl"):
# As of version 10.0, Octopus depends on fftw-api instead
# of FFTW. If FFTW is not in the dependency tree, then
# it ought to be MKL as it is currently the only providers

View File

@@ -85,11 +85,11 @@ def cmake_args(self):
args.extend([self.define("PASTIX_WITH_STARPU", "ON")])
args.extend([self.define_from_variant("PASTIX_WITH_CUDA", "cuda")])
if "^intel-mkl" in spec or "^intel-parallel-studio+mkl" in spec:
if spec.satisfies("^[virtuals=lapack] intel-oneapi-mkl"):
args.extend([self.define("BLA_VENDOR", "Intel10_64lp_seq")])
elif "^netlib-lapack" in spec:
elif spec.satisfies("^[virtuals=lapack] netlib-lapack"):
args.extend([self.define("BLA_VENDOR", "Generic")])
elif "^openblas" in spec:
elif spec.satisfies("^[virtuals=lapack] openblas"):
args.extend([self.define("BLA_VENDOR", "OpenBLAS")])
if spec.satisfies("+mpi"):

View File

@@ -292,9 +292,6 @@ class Petsc(Package, CudaPackage, ROCmPackage):
when="@3.20.2:3.20.4 ^hipsparse@6.0",
)
# 3.8.0 has a build issue with MKL - so list this conflict explicitly
conflicts("^intel-mkl", when="@3.8.0")
# These require +mpi
mpi_msg = "Requires +mpi"
conflicts("+cgns", when="~mpi", msg=mpi_msg)

View File

@@ -56,7 +56,6 @@ class PyDevito(PythonPackage):
depends_on("mpi", type=("build", "run"), when="+mpi")
depends_on("intel-parallel-studio", type="run", when="%intel@:2021.1.1")
depends_on("intel-oneapi-compilers", type="run", when="%intel@2021.1.2:")
patch("4.8.1.patch", when="@4.8.1")

View File

@@ -289,10 +289,10 @@ def blas_lapack_pkg_config(self) -> Tuple[str, str]:
blas = spec["blas"].libs.names[0]
lapack = spec["lapack"].libs.names[0]
if spec["blas"].name in ["intel-mkl", "intel-parallel-studio", "intel-oneapi-mkl"]:
if spec["blas"].name == "intel-oneapi-mkl":
blas = "mkl-dynamic-lp64-seq"
if spec["lapack"].name in ["intel-mkl", "intel-parallel-studio", "intel-oneapi-mkl"]:
if spec["lapack"].name == "intel-oneapi-mkl":
lapack = "mkl-dynamic-lp64-seq"
if spec["blas"].name in ["blis", "amdblis"]:
@@ -389,11 +389,7 @@ def write_library_dirs(f, dirs):
# Tell numpy where to find BLAS/LAPACK libraries
with open("site.cfg", "w") as f:
if (
"^intel-mkl" in spec
or "^intel-parallel-studio+mkl" in spec
or "^intel-oneapi-mkl" in spec
):
if "^intel-oneapi-mkl" in spec:
f.write("[mkl]\n")
# FIXME: as of @1.11.2, numpy does not work with separately
# specified threading and interface layers. A workaround is a
@@ -497,11 +493,7 @@ def setup_build_environment(self, env):
# https://github.com/numpy/numpy/pull/13132
# https://numpy.org/doc/1.25/user/building.html#accelerated-blas-lapack-libraries
# https://numpy.org/doc/1.25/user/building.html#blas
if (
spec["blas"].name == "intel-mkl"
or spec["blas"].name == "intel-parallel-studio"
or spec["blas"].name == "intel-oneapi-mkl"
):
if spec["blas"].name == "intel-oneapi-mkl":
blas = "mkl"
elif spec["blas"].name == "blis" or spec["blas"].name == "amdblis":
blas = "blis"
@@ -517,11 +509,7 @@ def setup_build_environment(self, env):
env.set("NPY_BLAS_ORDER", blas)
# https://numpy.org/doc/1.25/user/building.html#lapack
if (
spec["lapack"].name == "intel-mkl"
or spec["lapack"].name == "intel-parallel-studio"
or spec["lapack"].name == "intel-oneapi-mkl"
):
if spec["lapack"].name == "intel-oneapi-mkl":
lapack = "mkl"
elif spec["lapack"].name == "openblas":
lapack = "openblas"

View File

@@ -27,8 +27,6 @@ class PyTomopy(PythonPackage):
depends_on("cuda", when="@master")
# The shared opencv is not found by during runtest. Not using GOT/PLT is faster too
depends_on("opencv+imgproc~shared@3.4:", when="@master")
# During the runtest, the shared MKL libs aren't found yet:
# depends_on('intel-mkl~shared')
depends_on("cmake@3.17:", type=("build"))
depends_on("ninja", type=("build"))
depends_on("py-setuptools-scm", type=("build"))

View File

@@ -662,14 +662,10 @@ def enable_or_disable(variant, keyword="USE", var=None):
elif self.spec["lapack"].name in ["libflame", "amdlibflame"]:
env.set("BLAS", "FLAME")
env.set("WITH_BLAS", "FLAME")
elif self.spec["blas"].name in ["intel-mkl", "intel-parallel-studio", "intel-oneapi-mkl"]:
elif self.spec["blas"].name == "intel-oneapi-mkl":
env.set("BLAS", "MKL")
env.set("WITH_BLAS", "mkl")
# help find MKL
if self.spec["mkl"].name == "intel-oneapi-mkl":
env.set("INTEL_MKL_DIR", self.spec["mkl"].prefix.mkl.latest)
else:
env.set("INTEL_MKL_DIR", self.spec["mkl"].prefix.mkl)
env.set("INTEL_MKL_DIR", self.spec["mkl"].prefix.mkl.latest)
elif self.spec["blas"].name == "openblas":
env.set("BLAS", "OpenBLAS")
env.set("WITH_BLAS", "open")

View File

@@ -69,9 +69,9 @@ class QESirius(CMakePackage):
depends_on("hdf5@1.8.16:+fortran+hl~mpi", when="hdf5=serial")
with when("+openmp"):
depends_on("fftw+openmp", when="^[virtuals=fftw-api] fftw")
depends_on("openblas threads=openmp", when="^[virtuals=blas] openblas")
depends_on("intel-mkl threads=openmp", when="^[virtuals=blas] intel-mkl")
requires("^fftw+openmp", when="^[virtuals=fftw-api] fftw")
requires("^openblas threads=openmp", when="^[virtuals=blas] openblas")
requires("^intel-oneapi-mkl threads=openmp", when="^[virtuals=blas] intel-oneapi-mkl")
def cmake_args(self):
args = [
@@ -92,7 +92,7 @@ def cmake_args(self):
# Work around spack issue #19970 where spack sets
# rpaths for MKL just during make, but cmake removes
# them during make install.
if self.spec["lapack"].name in INTEL_MATH_LIBRARIES:
if self.spec.satisfies("^[virtuals=lapack] intel-oneapi-mkl"):
args.append("-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=ON")
spec = self.spec
args.append(self.define("BLAS_LIBRARIES", spec["blas"].libs.joined(";")))

View File

@@ -8,9 +8,9 @@
class Qmcpack(CMakePackage, CudaPackage):
"""QMCPACK, is a modern high-performance open-source Quantum Monte
Carlo (QMC) simulation code."""
Carlo (QMC) simulation code.
"""
# Package information
homepage = "https://www.qmcpack.org/"
git = "https://github.com/QMCPACK/qmcpack.git"
maintainers("ye-luo")
@@ -113,11 +113,8 @@ class Qmcpack(CMakePackage, CudaPackage):
msg="QMCPACK CUDA+SOA variant does not exist prior to v. 3.5.0.",
)
conflicts("^openblas+ilp64", msg="QMCPACK does not support OpenBLAS 64-bit integer variant")
conflicts("^openblas threads=none", msg="QMCPACK does not support OpenBLAS without threading")
conflicts("^openblas threads=pthreads", msg="QMCPACK does not support OpenBLAS with pthreads")
requires("^openblas~ilp64 threads=openmp", when="^[virtuals=blas,lapack] openblas")
requires("^intel-oneapi-mkl ~ilp64", when="^[virtuals=blas,lapack] intel-oneapi-mkl")
conflicts(
"cuda_arch=none",
@@ -125,10 +122,6 @@ class Qmcpack(CMakePackage, CudaPackage):
msg="A value for cuda_arch must be specified. Add cuda_arch=XX",
)
# Omitted for now due to concretizer bug
# conflicts('^intel-mkl+ilp64',
# msg='QMCPACK does not support MKL 64-bit integer variant')
# QMCPACK 3.15.0 increased the minimum gcc to 9
conflicts("%gcc@:8", when="@3.15.0:")
@@ -164,8 +157,8 @@ class Qmcpack(CMakePackage, CudaPackage):
"QMCPACK releases prior to 3.5.0 require the "
"Intel compiler when linking against Intel MKL"
)
conflicts("%gcc", when="@:3.4.0 ^intel-mkl", msg=mkl_warning)
conflicts("%llvm", when="@:3.4.0 ^intel-mkl", msg=mkl_warning)
conflicts("%gcc", when="@:3.4.0 ^[virtuals=blas,lapack] intel-oneapi-mkl", msg=mkl_warning)
conflicts("%llvm", when="@:3.4.0 ^[virtuals=blas,lapack] intel-oneapi-mkl", msg=mkl_warning)
# Dependencies match those in the QMCPACK manual.
# FIXME: once concretizer can unite unconditional and conditional
@@ -378,7 +371,7 @@ def cmake_args(self):
# Next two environment variables were introduced in QMCPACK 3.5.0
# Prior to v3.5.0, these lines should be benign but CMake
# may issue a warning.
if spec["lapack"].name in INTEL_MATH_LIBRARIES:
if spec.satisfies("^[virtuals=lapack] intel-oneapi-mkl"):
args.append("-DENABLE_MKL=1")
args.append("-DMKL_ROOT=%s" % env["MKLROOT"])
else:

View File

@@ -80,13 +80,13 @@ class QuantumEspresso(CMakePackage, Package):
# Need OpenMP threaded FFTW and BLAS libraries when configured
# with OpenMP support
with when("+openmp"):
depends_on("fftw+openmp", when="^[virtuals=fftw-api] fftw")
depends_on("amdfftw+openmp", when="^[virtuals=fftw-api] amdfftw")
depends_on("openblas threads=openmp", when="^[virtuals=blas] openblas")
depends_on("amdblis threads=openmp", when="^[virtuals=blas] amdblis")
depends_on("intel-mkl threads=openmp", when="^[virtuals=blas] intel-mkl")
depends_on("armpl-gcc threads=openmp", when="^[virtuals=blas] armpl-gcc")
depends_on("acfl threads=openmp", when="^[virtuals=blas] acfl")
requires("^fftw+openmp", when="^[virtuals=fftw-api] fftw")
requires("^amdfftw+openmp", when="^[virtuals=fftw-api] amdfftw")
requires("^openblas threads=openmp", when="^[virtuals=blas] openblas")
requires("^amdblis threads=openmp", when="^[virtuals=blas] amdblis")
requires("^intel-oneapi-mkl threads=openmp", when="^[virtuals=blas] intel-oneapi-mkl")
requires("^armpl-gcc threads=openmp", when="^[virtuals=blas] armpl-gcc")
requires("^acfl threads=openmp", when="^[virtuals=blas] acfl")
# Add Cuda Fortran support
# depends on NVHPC compiler, not directly on CUDA toolkit
@@ -250,9 +250,8 @@ class QuantumEspresso(CMakePackage, Package):
depends_on("m4", type="build")
# If the Intel suite is used for Lapack, it must be used for fftw and vice-versa
for _intel_pkg in INTEL_MATH_LIBRARIES:
requires(f"^[virtuals=fftw-api] {_intel_pkg}", when=f"^[virtuals=lapack] {_intel_pkg}")
requires(f"^[virtuals=lapack] {_intel_pkg}", when=f"^[virtuals=fftw-api] {_intel_pkg}")
requires("^[virtuals=fftw-api] intel-oneapi-mkl", when="^[virtuals=lapack] intel-oneapi-mkl")
requires("^[virtuals=lapack] intel-oneapi-mkl", when="^[virtuals=fftw-api] intel-oneapi-mkl")
# CONFLICTS SECTION
# Omitted for now due to concretizer bug
@@ -538,7 +537,7 @@ def install(self, pkg, spec, prefix):
# you need to pass it in the FFTW_INCLUDE and FFT_LIBS directory.
# QE supports an internal FFTW2, but only an external FFTW3 interface.
is_using_intel_libraries = spec["lapack"].name in INTEL_MATH_LIBRARIES
is_using_intel_libraries = spec["lapack"].name == "intel-oneapi-mkl"
if is_using_intel_libraries:
# A seperate FFT library is not needed when linking against MKL
options.append("FFTW_INCLUDE={0}".format(join_path(env["MKLROOT"], "include/fftw")))
@@ -586,9 +585,9 @@ def install(self, pkg, spec, prefix):
if "+scalapack" in spec:
if is_using_intel_libraries:
if "^openmpi" in spec:
if "^[virtuals=mpi] openmpi" in spec:
scalapack_option = "yes"
else: # mpich, intel-mpi
else: # mpich
scalapack_option = "intel"
else:
scalapack_option = "yes"

View File

@@ -24,8 +24,7 @@ class RRmpi(RPackage):
depends_on("mpi")
# The following MPI types are not supported
conflicts("^[virtuals=mpi] intel-mpi")
conflicts("^[virtuals=mpi] intel-parallel-studio")
conflicts("^[virtuals=mpi] intel-oneapi-mpi")
conflicts("^[virtuals=mpi] mvapich2")
conflicts("^[virtuals=mpi] spectrum-mpi")

View File

@@ -177,7 +177,10 @@ def configure_args(self):
# R uses LAPACK in Fortran, which requires libmkl_gf_* when gfortran is used.
# TODO: cleaning this up seem to require both compilers as dependencies and use variants.
if spec["lapack"].name in INTEL_MATH_LIBRARIES and "gfortran" in self.compiler.fc:
if (
spec.satisfies("^[virtuals=lapack] intel-oneapi-mkl")
and "gfortran" in self.compiler.fc
):
xlp64 = "ilp64" if spec["lapack"].satisfies("+ilp64") else "lp64"
blas_flags = blas_flags.replace(f"mkl_intel_{xlp64}", f"mkl_gf_{xlp64}")
lapack_flags = lapack_flags.replace(f"mkl_intel_{xlp64}", f"mkl_gf_{xlp64}")
@@ -191,15 +194,13 @@ def configure_args(self):
f"LDFLAGS=-Wl,-rpath,{extra_rpath}",
f"--with-blas={blas_flags}",
f"--with-lapack={lapack_flags}",
# cannot disable docs with a normal configure option
"ac_cv_path_PDFLATEX=",
"ac_cv_path_PDFTEX=",
"ac_cv_path_TEX=",
"ac_cv_path_TEXI2DVI=",
f"--with-libintl-prefix={spec['gettext'].prefix}",
]
config_args.append("--with-libintl-prefix={0}".format(spec["gettext"].prefix))
if "+X" in spec:
config_args.append("--with-cairo")
config_args.append("--with-jpeglib")

View File

@@ -41,11 +41,12 @@ class ScineQcmaquis(CMakePackage):
depends_on("hdf5~mpi")
depends_on("lapack")
depends_on("blas")
for _pkg in ["openblas"] + list(INTEL_MATH_LIBRARIES):
with when(f"^[virtuals=blas] {_pkg}"):
depends_on(f"{_pkg}+ilp64 threads=openmp")
requires("^openblas +ilp64 threads=openmp", when="^[virtuals=blas,lapack] openblas")
requires(
"^intel-oneapi-mkl +ilp64 threads=openmp", when="^[virtuals=blas,lapack] intel-oneapi-mkl"
)
depends_on("gsl")
depends_on("boost+program_options+filesystem+system+thread+serialization+chrono @1.56:")

View File

@@ -213,15 +213,17 @@ def configure_args(self):
# If autodetection fails for +shmem with one of these available to spack, please add
# a "if spec.satisfies():" clause for said package.
if spec.satisfies("^intel-mpi") or spec.satisfies("^intel-oneapi-mpi"):
if spec.satisfies("^[virtuals=mpi] intel-oneapi-mpi"):
config_args.append("--with-mpi=intel3")
elif (
spec.satisfies("^mpich")
or spec.satisfies("^mvapich2")
or spec.satisfies("^cray-mpich")
spec.satisfies("^[virtuals=mpi] mpich")
or spec.satisfies("^[virtuals=mpi] mvapich2")
or spec.satisfies("^[virtuals=mpi] cray-mpich")
):
config_args.append("--with-mpi=mpich3")
elif spec.satisfies("^openmpi") or spec.satisfies("^hpcx-mpi"):
elif spec.satisfies("^[virtuals=mpi] openmpi") or spec.satisfies(
"^[virtuals=mpi] hpcx-mpi"
):
config_args.append("--with-mpi=openmpi")
elif "~mpi" in spec:
config_args.append("--without-mpi")

View File

@@ -202,7 +202,7 @@ class Seissol(CMakePackage, CudaPackage, ROCmPackage):
depends_on("easi ~asagi jit=impalajit,lua", when="~asagi")
depends_on("easi +asagi jit=impalajit,lua", when="+asagi")
depends_on("intel-mkl threads=none", when="gemm_tools_list=MKL")
depends_on("intel-oneapi-mkl threads=none", when="gemm_tools_list=MKL")
depends_on("blis threads=none", when="gemm_tools_list=BLIS")
depends_on("openblas threads=none", when="gemm_tools_list=OpenBLAS")
depends_on("libxsmm@main", when="gemm_tools_list=LIBXSMM_JIT")

View File

@@ -31,13 +31,14 @@ class Sionlib(AutotoolsPackage):
def configure_args(self):
args = []
spec = self.spec
if spec.satisfies("^intel-mpi"):
if self.spec.satisfies("^[virtuals=mpi] intel-oneapi-mpi"):
args.append("--mpi=intel2")
elif spec.satisfies("^mpich") or spec.satisfies("^mvapich2"):
elif self.spec.satisfies("^[virtuals=mpi] mpich") or self.spec.satisfies(
"^[virtuals=mpi] mvapich2"
):
args.append("--mpi=mpich2")
elif spec.satisfies("^openmpi"):
elif self.spec.satisfies("^[virtuals=mpi] openmpi"):
args.append("--mpi=openmpi")
return args

View File

@@ -153,9 +153,6 @@ class Sirius(CMakePackage, CudaPackage, ROCmPackage):
depends_on("openblas threads=openmp", when="+openmp ^[virtuals=blas,lapack] openblas")
depends_on("amdblis threads=openmp", when="+openmp ^[virtuals=blas] amdblis")
depends_on("blis threads=openmp", when="+openmp ^[virtuals=blas] blis")
depends_on(
"intel-mkl threads=openmp", when="+openmp ^[virtuals=blas,lapack,fftw-api] intel-mkl"
)
depends_on(
"intel-oneapi-mkl threads=openmp",
when="+openmp ^[virtuals=blas,lapack,fftw-api] intel-oneapi-mkl",
@@ -165,7 +162,6 @@ class Sirius(CMakePackage, CudaPackage, ROCmPackage):
when="+scalapack ^[virtuals=blas,lapack,fftw-api] intel-oneapi-mkl",
)
conflicts("intel-mkl", when="@7.6.0:")
# MKLConfig.cmake introduced in 2021.3
conflicts("intel-oneapi-mkl@:2021.2", when="^intel-oneapi-mkl")
@@ -244,7 +240,7 @@ def cmake_args(self):
if "^cray-libsci" in spec:
args.append(self.define(cm_label + "USE_CRAY_LIBSCI", "ON"))
if spec["blas"].name in INTEL_MATH_LIBRARIES:
if spec.satisfies("^[virtuals=blas] intel-oneapi-mkl"):
args.append(self.define(cm_label + "USE_MKL", "ON"))
if spec.satisfies("@7.6.0:"):
@@ -254,7 +250,11 @@ def cmake_args(self):
"openmp": "gnu_thread",
"tbb": "tbb_thread",
},
"mpi": {"intel-mpi": "intelmpi", "mpich": "mpich", "openmpi": "openmpi"},
"mpi": {
"intel-oneapi-mpi": "intelmpi",
"mpich": "mpich",
"openmpi": "openmpi",
},
}
mkl_threads = mkl_mapper["threading"][

View File

@@ -145,11 +145,7 @@ class Xyce(CMakePackage):
depends_on("blis libs=static", when="^[virtuals=blas] blis+cblas")
depends_on("blis libs=static", when="^[virtuals=blas] blis+blas")
depends_on("clblast~shared", when="^[virtuals=blas] clblast+netlib")
depends_on("intel-mkl~shared", when="^[virtuals=blas] intel-mkl")
depends_on("intel-oneapi-mkl~shared", when="^[virtuals=blas] intel-oneapi-mkl")
depends_on(
"intel-parallel-studio~shared", when="^[virtuals=blas] intel-parallel-studio+mkl"
)
depends_on("veclibfort~shared", when="^[virtuals=blas] veclibfort")
conflicts("^essl", msg="essl not supported with +pymi_static_tpls")
conflicts("^flexiblas", msg="flexiblas not supported with +pymi_static_tpls")

View File

@@ -14,6 +14,7 @@ class Zuo(AutotoolsPackage):
license("Apache-2.0 AND MIT", checked_by="Buldram")
maintainers("Buldram")
version("1.12", sha256="0c8a3a86365fb10961d9a1f536b1cd0d7fcdc2779af03236a340539966b33f86")
version("1.11", sha256="8404bea8ecae4576f44dece7efcab69d94c8a30ec10ea186f86823d37e74694b")
variant("big", default=False, description="Enable hygienic macro support")