Finkはとても便利です。いろいろなOSSアプリが様々なボランティアの手によってメンテされています。アプリの必要とされるライブラリなども用意されていて、依存するライブラリも自動的にサーバからダウンロードしてくれます。初期の頃は全てソースコードから自分のMac上でコンパイル・リンク(ビルド)作業がされていましたが、バイナリインストールも大分用意されるようになって、インストール時間が短縮されました。
便利なFinkですが、時々、自分の設定とは異なる場合があります。ソースコードからビルドする際、オプションはそのアプリのメンテナーの設定が反映されます。例えば、Open MPIパッケージは、2017年4月3日現在、1.10.4がインストールされますが、これはMPI_THREAD_MULTIPLEスイッチがオフの状態になっています。これをオンにしたい場合、自分でFinkとは別にインストールしなければならなくなってしまいます。
そこで、ここでは、そのオプションを変更する方法について、解説いたします。
Finkのパッケージは全て、ディレクトリ、
/sw
以下に存在します。様々なディレクトリが内包していますが、/sw/fink/10.9-libcxx/stable/main/finkinfo/devel/openmpi.info
というファイルが存在します。この中には、このopenmpiというパッケージの依存情報や、configureのオプションが記述されています。この記述の内、ConfigureParams:
--preix=%p \
--datadir=%p/share/doc \
--sysconfdir=%p/etc/%n \
--sharedstatedir=%p/var/%n/shared \
--localstatedir=%p/var/%n/local \
--libdir=%p/lib/%n \
...
--enable-mpi-thread-multiple
を追加します。その後、%> fink rebuild openmpi
とすることで、新しく追加したオプションが反映されます。確認のため、
%> ompi_info -c | grep -i thread
ConfigureParams: Thread support: posix (MPI_THREAD_MULTIPLE: yes, OPAL support: yes, OMPI progress: no, ORTE progress: yes, Event lib: yes)
FT Checkpoint support: no (checkpoint thread: no)