概要
Intel fortran (Intel oneAPI Base Toolkit + HPC Toolkit) が無償で使用出来る、しかも、M1 Macでも使用出来るとのことで、インストールをしてみました1。今のところ使えています。
現在、ダウンロードは出来ません。将来的にもMacのサポートはしないそうです。
まあ、Intelじゃないしね・・・。どうしよう。
環境
Intel Mac 1台、M1 Mac 2台、計3台に導入。
Intel Mac
- macOS Big Sur 11.6.4
- Mac mini (2018)(3.2GHz 6core, Intel Core i7, 32GB)
M1 Mac その1
- macOS Big Sur 11.6.4
- MacBook Air (M1, 2020) (Apple M1, 16GB)
M1 Mac その2
- macOS Big Sur 11.6.4
- iMac (24-inch, M1, 2021) (Apple M1, 16GB)
Fortran Software
- Intel® oneAPI Base Toolkit (version 2022.1)
- Intel® oneAPI HPC Toolkit (version 2022.1)
ダウンロード
ダウンロードは Base Toolkit と HPC Toolkit から行いました。
それぞれのページに行って、登録を行い、Operating System (macOSを選ぶ)、Select distribution (Online&Offlineしか選べない)、Installer Type (OnlineでもOfflineでも出来た)を選び、右下のDownloadから.dmgファイルをダウンロードします。
インストール(Base Kit)
- dmgファイルを展開。Base Kitからインストールする。
- bootstrapper.appをダブルクリックで開く。
Offline用のファイルだと、結構 検証に時間が掛かる。数分待つと、セキュリティの警告の後に
のメニューが出て、「Continue」で、インストール画面になります。(この時点でDockには、oneAPIのアイコンが3つ並んでいる)
最初に入れたM1 MacでPythonがインストール出来なかったので(使わないし)
Custom Installationで、それ以外を選んでInstall しました。
I accept..のチェックマークをチェック、下の方のCustomizeをクリックすると、
- 適当に選んで、下の白抜き右向き矢印で次へ。
 - データを集めてもらってもいいことにして、Installへ。
 - しばらく待つとインストール完了です。

インストール(HPC Kit)
- dmgファイルを展開。bootstrapper.appを開く。こちらはRecommended Installationで「Continue」
 - Xcodeは使っていないので、Skip.
 - 後はデータ分析に同意してInstallして終了。
環境変数
Terminalで走らせるので、環境変数の設定をTerminalから行います。
- 取り敢えず、Start Guideに書いてあるsetvars.shを読み込ませてみます。
% ifort zsh: command not found: ifort % source /opt/intel/oneapi/setvars.sh :: initializing oneAPI environment ... -zsh: ZSH_VERSION = 5.8 args: Using "$@" for setvars.sh arguments: :: advisor -- latest :: compiler -- latest :: dal -- latest :: dev-utilities -- latest :: dnnl -- latest :: ipp -- latest :: ippcp -- latest :: mkl -- latest :: tbb -- latest :: vtune_profiler -- latest :: oneAPI environment initialized :: % ifort -v ifort version 2021.5.0
- うまくいった、か?
source /opt/intel/oneapi/setvars.sh
を
.zshrc
に入れておきます。 - しかし、実際にコンパイルするとエラーが出ます。
libraryの場所を付けないといけない2。
% cat > a.f write(*,*)" OK" end % ifort a.f ld: library not found for -lSystem % ifort -L/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib a.f % ./a.out OK %
- aliasでifortにlibraryの場所を付けることにしました。
alias ifort='ifort -L/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib'
を
~/.zshenv
に入れておくことにします。
~/.zshrc
に入れると、例えば、#!/bin/zsh ifort a.f
みたいなスクリプトをファイルaに入れて動かすときに、
source a
としなければならず、./a
ではエラーが出るから3。
その他
-
導入理由は、gfortranでコンパイル中に実行時記憶領域が足りなくなり、
gfortran -mcmodel=large
が現在サポートされていないということで・・・賢いコードに書き換えるの大変だし。前に購入して使用したことのあるIntel fortranが無償で使えるとのことで試してみました。 -
結果的に必要なかったようですが、
Command line tools for Xcodeを再インストールしました4。13.3 beta3だとOSが対応せず(Montereyが必要)、13.3 beta2をインストール。
ただし、Command line tools for Xcodeを再インストールしても、
ld: library not found for -lSystem
のエラーは無くなりませんでした。
参考サイト
どうも有り難うございます。書いて下さったの見つけると本当に嬉しいですよね。。。
Windowsだけれども、ほぼ一緒なので:
M1 Macの話:
ライブラリのありか:
どこにaliasを書いたらよいかの参考:
そして、本当に有り難いことでございますね:
-
最初に見たのはここです。https://fortran66.hatenablog.com/entry/2021/02/24/015532 ↩
-
最初に見たのはここです。https://plaza.rakuten.co.jp/copekuroshio/diary/202112020000/ ↩
-
読み込む順番とか。https://suwaru.tokyo/zshenv/ ↩
-
いつもお世話になっています。https://oku.edu.mie-u.ac.jp/~okumura/macosx/ ↩