nAG Fortran コンパイラ

技術情報

Apple Silicon (Arm) Mac 版 nAG Fortran + MPICH 動作検証

(2025年10月31日)

【ご注意】
本ページは、Apple Silicon (Arm) Mac 環境において、nAG Fortran コンパイラ (nagfor) と MPICH (MPI実装) を組み合わせて利用する手順を検証した技術参考情報です。

記載されている手順やバージョンは一例であり、お客様の特定の環境での動作を保証するものではありません。また、本構成はnAGの公式サポート対象外となる場合がありますので、あらかじめご了承ください。

目的

Apple Silicon (Arm) Mac 版の nAG Fortran コンパイラ (Release 7.2) を使用し、MPICH (4.3.2) をソースからビルドして、簡単な Fortran MPI プログラムが並列実行できることを確認します。

検証結果

nAG Fortran コンパイラでビルドした MPI Fortran プログラムを、mpiexec -n 4 でマルチプロセス実行できることを確認しました。

テスト環境
  • ハードウェア: Apple Silicon (ARM64 / Apple M2 相当)
  • OS: macOS Ventura 13.2.1
  • Fortranコンパイラ: nAG Fortran Compiler Release 7.2 (Build 7231)
    nagfor -V
    NAG Fortran Compiler Release 7.2(Shin-Urayasu) Build 7231
    Product NPMA872NA for Apple Arm Mac OSX 64-bit
    Copyright 1990-2024 The Numerical Algorithms Group Ltd.
  • MPI: MPICH 4.3.2 (ソースからビルド)
  • C/C++コンパイラ: /usr/bin/clang, /usr/bin/clang++
手順 1. MPICH の入手

作業用ディレクトリ(例: ~/MPI-Test)にて、MPICH 4.3.2 のソースコードを取得・展開します。

cd ~
mkdir -p MPI-Test
cd MPI-Test

curl -L -O http://www.mpich.org/static/downloads/4.3.2/mpich-4.3.2.tar.gz
tar -xf mpich-4.3.2.tar.gz
手順 2. ビルド用ディレクトリの作成

ソースディレクトリ内にビルド専用ディレクトリを作成します。

cd mpich-4.3.2
mkdir build-nag
cd build-nag
手順 3. configure (ビルド構成)

MPICH に対し、使用するコンパイラ (C/C++: clang, Fortran: nagfor) を指定します。

重要: ここでは共有ライブラリ (dylib) を作成せず、静的ライブラリ (.a) のみを作成する構成とします。

../configure \
    CC=/usr/bin/clang \
    CXX=/usr/bin/clang++ \
    FC=/usr/local/bin/nagfor \
    F77=/usr/local/bin/nagfor \
    --prefix=$HOME/mpich-nag \
    --disable-debuginfo \
    --disable-shared \
    --enable-static

以下のオプションを指定しています。

  • CC, CXX: C/C++ コンパイラ (clang)
  • FC, F77: Fortran コンパイラ (nagfor)
  • --prefix: インストール先 (ここではホームディレクトリ配下を指定)
  • --disable-shared --enable-static: Dylib のビルドを無効化し、静的ライブラリのみを有効化します。
手順 4. ビルド & インストール

configure が完了したら、ビルドとインストールを実行します。

make -j4
make install

これで --prefix で指定したディレクトリ (例: $HOME/mpich-nag) 以下に mpiexecmpifort がインストールされます。

手順 5. PATH の設定

インストールした MPICH のコマンドを実行できるよう PATH を設定します。

export PATH=$HOME/mpich-nag/bin:$PATH
which mpifort
which mpiexec

which コマンドで、インストール先のパス (例: /Users/ユーザ名/mpich-nag/bin/mpifort) が表示されることを確認します。

手順 6. 動作確認 (MPI Hello World)

以下の簡単な Fortran MPI プログラム (hello_mpi.f90) を作成します。

program hello_mpi
  use mpi
  implicit none
  integer :: ierr, rank, nprocs

  call MPI_Init(ierr)
  call MPI_Comm_rank(MPI_COMM_WORLD, rank, ierr)
  call MPI_Comm_size(MPI_COMM_WORLD, nprocs, ierr)

  print *, 'Hello from rank', rank, 'of', nprocs

  call MPI_Finalize(ierr)
end program hello_mpi

mpifort (内部で nagfor を呼び出すラッパー) を使ってコンパイルします。

mpifort -o hello_mpi hello_mpi.f90

mpiexec を使用して、4プロセスで実行します。

mpiexec -n 4 ./hello_mpi

以下の実行結果(順序は前後する場合があります)が得られれば、正常に動作しています。

 Hello from rank           0 of           4
 Hello from rank           1 of           4
 Hello from rank           2 of           4
 Hello from rank           3 of           4
まとめ

以上の手順により、Apple Silicon (Arm) Mac 環境において、nAG Fortran コンパイラ (Release 7.2) と MPICH 4.3.2 (静的リンク構成) を組み合わせ、Fortran MPI プログラムをコンパイル・並列実行できることが確認できました。

  • MPICH の configure 時に FC=/usr/local/bin/nagfor を指定します。
  • --disable-shared --enable-static を指定して静的ライブラリとしてビルドします。
  • 生成された mpifort でコンパイルし、mpiexec で並列実行が可能です。
関連情報
MENU
Privacy Policy / Trademarks