あなたのMacBookAirで並列計算をする可能性は無いでしょう.しかし,MacOSXは計算クラスターと同じ系統のソフトウェアですから,あなたのMacBookAirにも並列計算システムをインストールしておけば,プログラム開発を手元で行うことができるようになります.
パッケージの利用方法
ここのopenmpiなんちゃらをインストール.使い方だと?あれ?どうするんだったっけ。多分Boostと類似した方法だろうな
再配布パッケージの作成方法
豚の時
豚で作っとかないと, AppleM1でXCodeできねえよ.だりーからロゼッタでな.
#------------------------------- # [1] X86_64ターミナル #------------------------------- cd openmpi-4.0.0 make distclean ./configure --prefix=/usr/local CC=clang CXX=clang++ LDFLAGS=-Wl,-headerpad_max_install_names -disable-mpi-fortran make all mkdir x86_64 find . -name \*dylib -not -type l |while read file; do cp $file x86_64 ; done
これで, x86_64の内部に
lipo -info x86_64/* Non-fat file: x86_64/libmca_common_monitoring.50.dylib is architecture: x86_64 Non-fat file: x86_64/libmca_common_ompio.41.dylib is architecture: x86_64 Non-fat file: x86_64/libmca_common_sm.40.dylib is architecture: x86_64 Non-fat file: x86_64/libmpi.40.dylib is architecture: x86_64 Non-fat file: x86_64/libompitrace.40.dylib is architecture: x86_64 Non-fat file: x86_64/libopen-pal.40.dylib is architecture: x86_64 Non-fat file: x86_64/libopen-rte.40.dylib is architecture: x86_64
ができた.
#------------------------------ # [2] ARM64ターミナル #------------------------------- cd openmpi-4.0.0 make distclean ./configure --prefix=/usr/local CC=clang CXX=clang++ LDFLAGS=-Wl,-headerpad_max_install_names -disable-mpi-fortran make all mkdir arm64 mv x86_64 .. find . -name \*dylib -not -type l |while read file; do cp $file arm64 ; done mv ../x86_64 .
これで, arm64の内部に
lipo -info arm64/* Non-fat file: arm64/libmca_common_monitoring.50.dylib is architecture: arm64 Non-fat file: arm64/libmca_common_ompio.41.dylib is architecture: arm64 Non-fat file: arm64/libmca_common_sm.40.dylib is architecture: arm64 Non-fat file: arm64/libmpi.40.dylib is architecture: arm64 Non-fat file: arm64/libompitrace.40.dylib is architecture: arm64 Non-fat file: arm64/libopen-pal.40.dylib is architecture: arm64 Non-fat file: arm64/libopen-rte.40.dylib is architecture: arm64
ができた.
#------------------------------ # [2] ARM64ターミナル #------------------------------ fswatch -x /usr/local/ > files.log & sudo make install mkdir universal cd x86_64 for file in * do lipo -create -arch x86_64 $file -arch arm64 ../arm64/$file -output ../universal/$file done cd .. sudo cp universal/* /usr/local/lib lipo -info universal/* Architectures in the fat file: ../universal/libmca_common_monitoring.50.dylib are: x86_64 arm64 Architectures in the fat file: ../universal/libmca_common_ompio.41.dylib are: x86_64 arm64 Architectures in the fat file: ../universal/libmca_common_sm.40.dylib are: x86_64 arm64 Architectures in the fat file: ../universal/libmpi.40.dylib are: x86_64 arm64 Architectures in the fat file: ../universal/libompitrace.40.dylib are: x86_64 arm64 Architectures in the fat file: ../universal/libopen-pal.40.dylib are: x86_64 arm64 Architectures in the fat file: ../universal/libopen-rte.40.dylib are: x86_64 arm64 # kill %1 fswatch_analyze.sh -c _binary files.log pkgbuild --identifier openmpi --root _binary openmpi-4.0.0-osx11.2.pkg
Intelの時
MacOSのclangコンパイラは剛速ですから,10分程度しかかかりません.
- OpenMPIサイトからopenmpi-X.X.X.tar.gzをダウンロード
- tar xf ~/Downloads/openmpi-X.X.X.tar
- cd openmpi-X.X.X
- ./configure --prefix=/usr/local CC=clang CXX=clang++ LDFLAGS=-Wl,-headerpad_max_install_names -disable-mpi-fortran
これで,gccではなくLLVMのコンパイラが設定される. Fortranは利用しないように設定される. - make all
- fswatch -x /usr/local > openmpi.log &
- sudo make install
- kill %1
これで mpicxx とか mpif90 とかのコマンドが動作すればOK.
ついでなので、バイナリー配布パッケージを作る。
- インストールしたファイルのコピーを作成
fswatch_analyze.sh -c openmpi-binary < openmpi.log
- pkgbuild --identifier openmpi --root openmpi-binary openmpi-1.8.2-osx10.9.pkg
参考文献