intel complerが無償で使えるそうな
https://software.intel.com/content/www/us/en/develop/articles/free-intel-software-developer-tools.html

ドキュメントを読むと商用でも使えるそうな.
https://www.intel.co.jp/content/www/jp/ja/software/oneapi-commercial-faq.html
2023y05m12d_043058923.png

入手方法

入手方法は

とかが選べます. ごく簡単には「dnf」コマンド一発がいいのでしょうが、インストール場所が選べない模様.
ここでは場所を指定したいので後者のインストーラーを入手して進めます.

https://www.intel.com/content/www/us/en/developer/tools/oneapi/toolkits.htmlには複数のToolkit(インストーラー)がありますが、
ここでは下記2つのToolkitを取得して
oneAPI DPC++/C++ Compiler」と「oneAPI Math Kernel Library」、「Fortran Compiler」、「MPI Library」とその関連をインストールします.

oneAPI DPC++/C++ Compiler」がどちらのToolkitにも入っている.
ここでは「oneAPI Base Toolkit」からは「oneAPI Math Kernel Library」と「oneAPI Threading Building Blocks」を入れて
「oneAPI HPC Toolkit」からは「oneAPI DPC++/C++ Compiler」と「Fortran Compiler」、「MPI Library」を入れます.

*「Base Toolkit」の「oneAPI DPC++/C++ Compiler」はllvmベースの新規のコンパイラ(icx/icpx)で、従来のicc/icpcは「HPC Toolkit」の「C++ Compiler Classic」コンポーネントに含まれている. ただ2023の第二四半期でこの従来のicc/icpcは削除されるそうな...

インストール

bash ./l_BaseKit_p_2023.1.0.46401_offline.sh -a --cli

「-a --cli」オプションを付けると下図のようなCUI画面になります. X環境なら何もオプションを指定しないとGUI画面が立ち上がる.
2023y05m14d_190045533.png
「Accept & customize」を選びます。
コンポーネントを選ぶ画面になりますが、
「IntelR oneAPI Threading Building Blocks 2021.9.0」(62 MB)
「IntelR oneAPI Math Kernel Library 2023.1.0」(7.5 GB)
のみを有効にして「Next」を選びます. インストール場所を指定できる画面になります. ここでは「/apps/oneapi」としました. 既定値は「/opt/intel/oneapi」です
2023y05m14d_190703582.png
以降は既定のままで、あとIntel様へお伝えするかとかありますが、ご自由に.

次に「HPC Toolkit」

bash ./l_HPCKit_p_2021.3.0.3230_offline.sh -a --cli

下図のような画面が表示され
2023y05m14d_191251004.png
ここでも「Accept & customize」を選びます。
選ぶコンポーネントは
「IntelR MPI Library 2021.9.0」(645.8 MB)
「IntelR oneAPI DPC++/C++ Compiler & IntelR C++ Compiler Classic 2023.1.0」(6.8 GB)
「IntelR Fortran Compiler & IntelR Fortran Compiler Classic 2023.1.0」(3.1 GB)
とします. 従来のicc/icpxは不要なのですが、同封されてきます
インストール先は「BaseKit」の情報が継承されるようで以降は既定のままで、あとIntel様へお伝えするかとかありますが、これもご自由に.

*ここではRocklyLinux8で行ったのですが、冒頭に下記のような画面が表示されました
サポート外と見なされたようですが、intel様のドキュメントを読むとサポート内に見えるのだが...無視して進めてます.
2023y05m14d_190017646.png

つかう

環境設定を行います
単純に「source /apps/oneapi/setvars.sh」と実行すればPATH環境設定らが有効になる. インストール先がデフォルト値なら「source /opt/intel/oneapi/setvars.sh」

[saber@rockylinux ~]$ source /apps/oneapi/setvars.sh
 
:: initializing oneAPI environment ...
   -bash: BASH_VERSION = 4.4.20(1)-release
   args: Using "$@" for setvars.sh arguments:
:: compiler -- latest
:: debugger -- latest
:: dev-utilities -- latest
:: mkl -- latest
:: mpi -- latest
:: tbb -- latest
:: oneAPI environment initialized ::
 
[saber@rockylinux ~]$

PATH環境変数は先頭に下記が加わる

/apps/oneapi/mpi/2021.9.0//libfabric/bin
/apps/oneapi/mpi/2021.9.0//bin
/apps/oneapi/mkl/2023.1.0/bin/intel64
/apps/oneapi/dev-utilities/2021.9.0/bin
/apps/oneapi/debugger/2023.1.0/gdb/intel64/bin
/apps/oneapi/compiler/2023.1.0/linux/lib/oclfpga/bin
/apps/oneapi/compiler/2023.1.0/linux/bin/intel64
/apps/oneapi/compiler/2023.1.0/linux/bin

これでintel謹製コンパイラ llvm ベースの icx, icpx, ifx の他に従来の icc, icpx, ifort が使えます
またintel謹製のmpi、intel mpiのコマンドも使えます

openmpi

intel謹製のmpiもいいのですが、openmpiをコンパイルしてみます. llvmベースの icx, icpx, ifxで作ります

[root@rockylinux ~]# source /apps/oneapi/setvars.sh
 
[root@rockylinux ~]# cd /apps/src/
[root@rockylinux src]# wget https://download.open-mpi.org/release/open-mpi/v4.1/openmpi-4.1.5.tar.bz2
[root@rockylinux src]# tar xf openmpi-4.1.5.tar.bz2
[root@rockylinux src]# cd openmpi-4.1.5/
 
[root@rockylinux openmpi-4.1.5]# 
[root@rockylinux openmpi-4.1.5]# CC=icx CXX=icpx FC=ifx ./configure --without-verbs --prefix=/apps/openmpi-4.1.5_icx-2023.1
[root@rockylinux openmpi-4.1.5]# make -j 20; make check ; make install

EnvironmentModules

oneAPIでは簡単にEnvironmentModules対応が用意されているみたい.

[root@rockylinux ~]# /apps/oneapi/modulefiles-setup.sh --ignore-latest --output-dir=/apps/oneapi/modulefiles
 
[root@rockylinux ~]# ls -l /apps/oneapi/modulefiles
total 0
drwxr-xr-x. 2 root root 22 May 15 00:35 compiler
drwxr-xr-x. 2 root root 22 May 15 00:35 compiler32
drwxr-xr-x. 2 root root 22 May 15 00:35 compiler-rt
drwxr-xr-x. 2 root root 22 May 15 00:35 compiler-rt32
drwxr-xr-x. 2 root root 22 May 15 00:35 debugger
drwxr-xr-x. 2 root root 22 May 15 00:35 dev-utilities
drwxr-xr-x. 2 root root 22 May 15 00:35 icc
drwxr-xr-x. 2 root root 22 May 15 00:35 icc32
drwxr-xr-x. 2 root root 22 May 15 00:35 init_opencl
drwxr-xr-x. 2 root root 22 May 15 00:35 mkl
drwxr-xr-x. 2 root root 22 May 15 00:35 mkl32
drwxr-xr-x. 2 root root 22 May 15 00:35 mpi
drwxr-xr-x. 2 root root 22 May 15 00:35 oclfpga
drwxr-xr-x. 2 root root 22 May 15 00:35 tbb
drwxr-xr-x. 2 root root 22 May 15 00:35 tbb32
[root@rockylinux ~]#

作られるmodulefilesは「environment-modules-v4.1」対応で用意される.
あと32bit関係や debugger、opencl、fpgaとかのmoduleは使わないなら削除した方がいいかも

[root@rockylinux ~]# cd /apps/oneapi/modulefiles/
 
[root@rockylinux modulefiles]# 
 
[root@rockylinux modulefiles]# rm -rf compiler32 compiler-rt32 debugger dev-utilities icc32 init_opencl mkl32 oclfpga tbb32
 
[root@rockylinux modulefiles]# ls -l
total 0
drwxr-xr-x. 2 root root 22 May 15 00:35 compiler
drwxr-xr-x. 2 root root 22 May 15 00:35 compiler-rt
drwxr-xr-x. 2 root root 22 May 15 00:35 icc
drwxr-xr-x. 2 root root 22 May 15 00:35 mkl
drwxr-xr-x. 2 root root 22 May 15 00:35 mpi
drwxr-xr-x. 2 root root 22 May 15 00:35 tbb
[root@rockylinux modulefiles]#

使い方ですが、 「&color(orangered){module use /apps/oneapi/modulefiles}:」とすればmodulefilesが登録されてコンパイラーを簡単にロードできるようになります

[root@rockylinux ~]# module use /apps/oneapi/modulefiles
[root@rockylinux ~]# module ava
--------------------------------------------------------- /apps/oneapi/modulefiles ----------------------------------------------------------
compiler-rt/2023.1.0  compiler/2023.1.0  icc/2023.1.0  mkl/2023.1.0  mpi/2021.9.0  tbb/2021.9.0
 
------------------------------------------------------ /usr/share/Modules/modulefiles -------------------------------------------------------
dot  module-git  module-info  modules  null  use.own
[root@rockylinux ~]#

ここでRHEL8/9系の場合mpiはOS側で用意され、これはEnvironmentModulesで制御対象です

[root@rockylinux ~]# dnf install openmpi -y
[root@rockylinux ~]# module ava
------------------------------------------------------ /usr/share/Modules/modulefiles -------------------------------------------------------
dot  module-git  module-info  modules  null  use.own
 
---------------------------------------------------------- /usr/share/modulefiles -----------------------------------------------------------
mpi/openmpi-x86_64  pmi/pmix-x86_64
 
[root@rockylinux ~]# module use /apps/oneapi/modulefiles
[root@rockylinux ~]# module ava
--------------------------------------------------------- /apps/oneapi/modulefiles ----------------------------------------------------------
compiler-rt/2023.1.0  compiler/2023.1.0  icc/2023.1.0  mkl/2023.1.0  mpi/2021.9.0  tbb/2021.9.0
 
------------------------------------------------------ /usr/share/Modules/modulefiles -------------------------------------------------------
dot  module-git  module-info  modules  null  use.own
 
---------------------------------------------------------- /usr/share/modulefiles -----------------------------------------------------------
mpi/openmpi-x86_64  pmi/pmix-x86_64
[root@rockylinux ~]#

この際、OS由来のopenmpiを対象とした「&colro(magenta){mpi/openmpi-x86_64};」と oneAPI由来の「&colro(magenta){mpi/2021.9.0};」が「mpi」で被ります.
単に「module load mpi」とするとより上位にあるmpiが参照されます. なのでより明示的に「module load mpi/openmpi-x86_64」もしくは「module load mpi/2021.9.0」で指定した方がよさげ.

*「module use」の際に下位に位置させたければ「module use --append」、より以上に位置させたければ「module use --prepend」とした方がいいのかも

コマンドラインでインストール

基本キットで「IntelR oneAPI Threading Building Blocks(TBB)」と「IntelR oneAPI Math Kernel Library(MKL)」のみをインストールするなら

bash ./l_BaseKit_p_2023.0.0.25537_offline.sh -a -s --eula accept --intel-sw-improvement-program-consent decline \
--components intel.oneapi.lin.tbb.devel:intel.oneapi.lin.mkl.devel

HPC Toolkitで「IntelR oneAPI DPC++/C++ Compiler & IntelR C++ Compiler Classic」「IntelR MPI Library」及び「IntelR Fortran Compiler (Beta) & IntelR Fortran Compiler Classic」をインストールするなら

bash ./l_HPCKit_p_2023.0.0.25400_offline.sh -a -s --eula accept --intel-sw-improvement-program-consent decline \
--components intel.oneapi.lin.dpcpp-cpp-compiler-pro:intel.oneapi.lin.mpi.devel:intel.oneapi.lin.ifort-compiler

とします。
インストーラーに含まれるコンポーネントの一覧は「--list-components」で得られます

[root@rockylinux ~]# bash /Public/em/l_HPCKit_p_2023.1.0.46346_offline.sh -a --list-components
(略
ID                                      Version        Installed Name
================================================================================================================================
intel.oneapi.lin.inspector              2023.1.0-43486 false     Intel® Inspector
intel.oneapi.lin.itac                   2021.9.0-43491 false     Intel® Trace Analyzer and Collector
intel.oneapi.lin.clck                   2021.7.3-45658 false     Intel® Cluster Checker
intel.oneapi.lin.mpi.devel              2021.9.0-43482 false     Intel® MPI Library
intel.oneapi.lin.dpcpp-cpp-compiler-pro 2023.1.0-46305 false     Intel® oneAPI DPC++/C++ Compiler & Intel® C++ Compiler Classic
intel.oneapi.lin.ifort-compiler         2023.1.0-46305 false     Intel® Fortran Compiler & Intel® Fortran Compiler Classic
Remove extracted files: /root/l_HPCKit_p_2023.1.0.46346_offline...
[root@rockylinux ~]#

な感じで.

最新の60件
2024-12-08 2024-12-05 2024-12-04 2024-11-28 2024-11-23 2024-11-22 2024-11-15 2024-11-14 2024-11-12 2024-11-06 2024-11-05 2024-11-04 2024-11-02 2024-11-01 2024-10-29 2024-10-28 2024-10-27 2024-10-23 2024-10-18 2024-10-17 2024-10-15 2024-10-14 2024-10-13 2024-10-11 2024-10-10 2024-10-09 2024-10-08 2024-10-05 2024-10-04 2024-10-03 2024-10-02 2024-10-01 2024-09-30 2024-09-29 2024-09-28 2024-09-27 2024-09-22 2024-09-20 2024-09-17

edit


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2024-04-11 (木) 21:02:46