Intel oneAPI Base Toolkit + HPC Toolkit (Intel Fortran)のインストール（Linux版）

# 概要
[前回の記事](https://qiita.com/implicit_none/items/620b440ba6d6167a1b73)に引き続いて，Intel Fortran（正確にはIntel oneAPI Base Toolkit + HPC Toolkit）のLinux版を，インストールする手順をまとめました．インストールには，aptを利用しました．

システムが対応しているかどうかは，[Intel® oneAPI Base Toolkit System Requirements](https://software.intel.com/content/www/us/en/develop/articles/intel-oneapi-base-toolkit-system-requirements.html)で確認してください．

# 環境
- Windows 10 64bit
- Ubuntu 18.04.5 LTS on WSL

# インストール方法
Intel Fortranを利用するには，

1. Intel oneAPI Base Toolkit（以下，Base Kit）
1. Intel oneAPI HPC Toolkit（以下，HPC Kit）

の二つをインストールする必要があります．

Base KitおよびHPC KitのLinux版は，インストール方法が4通り用意されています．Docker Hubも併せれば5通りです．

1. インストーラをダウンロードしてインストール
2. APT Package Managerを利用したインストール
3. YUM Package Managerを利用したインストール
4. Zypper Package Managerを利用したインストール
5. Docker Hubの利用

本記事では，2番のaptを利用する方法を説明します．他については，簡単に触れるだけにしておきます．

## インストール方法の確認
Intel公式のページ[Free Intel® Software Development Tools](https://software.intel.com/content/www/us/en/develop/articles/free-intel-software-developer-tools.html)にアクセスし，[Get the Base Kit]をクリックして，Base Kitのダウンロードページへ移動します．
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224040/0b9f3299-3393-ef57-30f9-bbb242532397.png)


OSにLinuxを選択します．
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224040/d1659bde-c39d-8fe2-bb8b-1dccd94a8940.png)

Distributionに5項目現れます．
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224040/c1fb0d67-9b34-3b70-6b03-60053a7381d4.png)

これらのうちいずれかを選択すると，インストール方法の説明が現れます．

### Web & Local
DistributionにWeb & Localを選択すると，Installer Typeを選択する項目が現れるので，LocalインストールかOnlineインストールかを選択します．

項目を全て選択すると，下図のように，インストーラの説明とインストーラに含まれるソフトウェアの内容，ファイルサイズが表示され，[Download]ボタンが現れます．
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224040/4e8f2e93-a4ef-8d1a-4689-3cf7368df5d5.png)

インストーラの拡張子は`.sh`になっているので，インストーラをダウンロードして，`bash`コマンドでインストーラを起動します．

```console
sudo bash l_BaseKit_p_2021.1.0.2659_offline.sh
```

Linux版では，ダウンロードもwgetでできるので，ページ下部にダウンロード＋インストールのコマンドが書かれています．

HPC Kitの場合も同様です．その場合のコマンドは

```console
sudo bash l_HPCKit_p_2021.1.0.2684_offline.sh
```

この方法は，一度インストールするだけならよいのですが，アップデートが大変そうだというコメントをいただきました．
<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">Linux 版は複数のインストール方法が可能ですが、apt とかパッケージ管理でインストールした方が update するのに楽そう感が。ベータの時だけど、スクリプトで入れるとディレクトリの奥の方にある別のスクリプトで全部アンインストールして新版再インストールだった。</p>&mdash; Cure-Rice (@Fortran2008) <a href="https://twitter.com/Fortran2008/status/1350480292503384071?ref_src=twsrc%5Etfw">January 16, 2021</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

### Docker Hub
DistributionにDocker Hubを選択すると，Docker Pullコマンドが表示されます．

```console
docker pull intel/oneapi-basekit
```

![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224040/8c176c23-3b68-fe2c-41b4-4f720258ab11.png)

HPC Kitの場合のコマンドは下記の通りです．

```cosole
docker pull intel/oneapi-hpckit
```

### Package Manager
DistributionにAPT, YUM, Zypper Package Managerのいずれかを選択すると，インストール方法が書かれたページへのリンクが現れます．
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224040/aa201413-9115-2791-bb12-a103bc30fbcb.png)

インストール方法が書かれたページへのリンクは，それぞれ以下の通りです（Base Kit, HPC Kit共通）．

- [APT](https://software.intel.com/content/www/us/en/develop/articles/installing-intel-oneapi-toolkits-via-apt.html)
- [YUM](https://software.intel.com/content/www/us/en/develop/articles/installing-intel-oneapi-toolkits-via-yum.html)
- [Zypper ](https://software.intel.com/content/www/us/en/develop/articles/installing-intel-oneapi-toolkits-via-zypper.html)

このうち，APTを用いてインストールする方法のみに言及しますが，事前作業は共通です．

# APTを用いたインストール
## 事前作業

- 計算機，OSがoneAPIの[システム要件](https://software.intel.com/content/www/us/en/develop/articles/intel-oneapi-base-toolkit-system-requirements.html)を満たしているかを確認する．
- oneAPIのベータ版をインストールしている場合，それらをアンインストールする．

```console
apt autoremove 'intel-*kit'  'intel-oneapi*'
```
- Intel GPUでGPGPUを行う場合，[ドライバをインストール](https://dgpu-docs.intel.com/installation-guides/index.html)する

著者の環境はシステム要件を満たしており，ベータ版をインストールしておらず，GPGPUをする予定もないので，事前作業は特にすることはありませんでした．

## インストール作業
Intelのリポジトリの公開鍵を取得し，その鍵で署名されているアーカイブが信頼されるように，APTのキーリングに追加します．

```console
$ wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
$ sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
```

次に，APTがIntelのリポジトリを確認するように設定します．

```console
$ echo "deb https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list
```

その後，`sudo apt update`を実行してパッケージ一覧を更新します．

`apt update`が終了したら，Base KitおよびHPC Kitをインストールします．パッケージの名前は，[List of Intel oneAPI Packages](https://software.intel.com/content/www/us/en/develop/articles/installing-intel-oneapi-toolkits-via-apt.html#inpage-nav-1)にまとめられています．

```console
$ sudo apt install intel-basekit
$ sudo apt install intel-hpckit
```

oneAPIは，`/opt/intel/oneapi`にインストールされます．

Intel Fortranを含む，インストールしたパッケージを利用するには，インストールディレクトリに置かれた`setvars.sh`を実行する必要があります．

```console
source /opt/intel/oneapi/setvars.sh
```

```console
$ ifort --version

Command 'ifort' not found, did you mean:

  command 'isort' from deb isort

Try: sudo apt install <deb name>

$ source /opt/intel/oneapi/setvars.sh
:: initializing oneAPI environment ...
   BASH version = 4.4.20(1)-release
:: advisor -- latest
:: ccl -- latest
:: clck -- latest
:: compiler -- latest
:: dal -- latest
:: debugger -- latest
:: dev-utilities -- latest
:: dnnl -- latest
:: dpcpp-ct -- latest
:: dpl -- latest
:: inspector -- latest
:: intelpython -- latest
:: ipp -- latest
:: ippcp -- latest
:: itac -- latest
:: mkl -- latest
:: mpi -- latest
:: tbb -- latest
:: vpl -- latest
:: vtune -- latest
:: oneAPI environment initialized ::
$ ifort --version
ifort (IFORT) 2021.1.2 20201208
Copyright (C) 1985-2020 Intel Corporation.  All rights reserved.
```

無事にIntel Fortran 2021.1が実行されている事がわかります．

毎回入力するのが面倒な場合は，シェルのスタートアップスクリプトに上記コマンドを追加すれば解決します．

[Windows版のGet Started Guide](https://software.intel.com/content/www/us/en/develop/documentation/get-started-with-intel-oneapi-base-windows/top/before-you-begin.html)に相当する[ページ](https://software.intel.com/content/www/us/en/develop/documentation/get-started-with-intel-oneapi-base-linux/top.html)も用意されています．

# まとめ
Intel oneAPIとして統合されたIntel Fortran Linux版のインストール手順を紹介しました．

APT等のパッケージマネージャを用いることで，コマンドのみで手軽にインストールすることができます．