LoginSignup
8
14

M1 macにIntel fortranをインストールした

Last updated at Posted at 2022-02-26

概要

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 ToolkitHPC Toolkit から行いました。

それぞれのページに行って、登録を行い、Operating System (macOSを選ぶ)、Select distribution (Online&Offlineしか選べない)、Installer Type (OnlineでもOfflineでも出来た)を選び、右下のDownloadから.dmgファイルをダウンロードします。

  1. Base Toolkitダウンロードのページ
    Get the Intel® oneAPI Base Toolkit

  2. HPC Toolkitダウンロードのページ
    Get the Intel® oneAPI HPC Toolkit

インストール(Base Kit)

  1. dmgファイルを展開。Base Kitからインストールする。
    bootstrapper.app
  2. bootstrapper.appをダブルクリックで開く。
    Offline用のファイルだと、結構 検証に時間が掛かる。数分待つと、セキュリティの警告の後に
    Continue
    のメニューが出て、「Continue」で、インストール画面になります。(この時点でDockには、oneAPIのアイコンが3つ並んでいる)
    最初に入れたM1 MacでPythonがインストール出来なかったので(使わないし)
    Custom Installationで、それ以外を選んでInstall しました。
    I accept..のチェックマークをチェック、下の方のCustomizeをクリックすると、
    Continue
  3. 適当に選んで、下の白抜き右向き矢印で次へ。
    Continue
  4. データを集めてもらってもいいことにして、Installへ。
    Install
  5. しばらく待つとインストール完了です。
    Finish

インストール(HPC Kit)

  1. dmgファイルを展開。bootstrapper.appを開く。こちらはRecommended Installationで「Continue」
    Continue
  2. Xcodeは使っていないので、Skip.
    Skip Xcode IDE configuration
  3. 後はデータ分析に同意してInstallして終了。

環境変数

Terminalで走らせるので、環境変数の設定をTerminalから行います。

  1. 取り敢えず、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
    
  2. うまくいった、か?
    source /opt/intel/oneapi/setvars.sh
    

    .zshrcに入れておきます。

  3. しかし、実際にコンパイルするとエラーが出ます。

    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
    % 
    
  4. 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

以上で終了です。いや、これからコードを書くんですが。

その他

  1. 導入理由は、gfortranでコンパイル中に実行時記憶領域が足りなくなり、gfortran -mcmodel=large が現在サポートされていないということで・・・賢いコードに書き換えるの大変だし。前に購入して使用したことのあるIntel fortranが無償で使えるとのことで試してみました。

  2. 結果的に必要なかったようですが、
    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を書いたらよいかの参考:

そして、本当に有り難いことでございますね:

  1. 最初に見たのはここです。https://fortran66.hatenablog.com/entry/2021/02/24/015532

  2. 最初に見たのはここです。https://plaza.rakuten.co.jp/copekuroshio/diary/202112020000/

  3. 読み込む順番とか。https://suwaru.tokyo/zshenv/

  4. いつもお世話になっています。https://oku.edu.mie-u.ac.jp/~okumura/macosx/

8
14
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
14