📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
| (同じ利用者による、間の7版が非表示) | |||
| 4行目: | 4行目: | ||
<br> | <br> | ||
Boostのライセンスは、全てのユーザが最小限の制限でBoostライブラリを使用することを推奨している。<br> | Boostのライセンスは、全てのユーザが最小限の制限でBoostライブラリを使用することを推奨している。<br> | ||
<br><br> | |||
== BoostにおけるOpen MPI == | |||
OpenMPI (Open Message Passing Interface) は、Boostライブラリ自体の一部ではないが、Boost.MPIというコンポーネントと密接に関連している。<br> | |||
<br> | |||
Boost.MPIは、C++でMPI (Message Passing Interface) プログラミングを行うためのインターフェースを提供するBoostライブラリである。<br> | |||
MPIは並列計算や分散メモリシステムでのプログラミングに広く使用されているAPI規格である。<br> | |||
<br> | |||
Open MPIは、このMPI規格の実装の1つである。<br> | |||
Boost.MPIは、Open MPIを含む様々なMPI実装と連携して動作するように設計されている。<br> | |||
Boost.MPIの主なメリットは、C++の抽象化を提供して、MPIプログラミングをより簡単かつ型安全にすることである。<br> | |||
<br> | |||
また、Boostの他のライブラリ (例: Boost.Serialization) との統合も図られている。<br> | |||
<br> | |||
Boost.MPIを使用する場合は、Open MPI等のMPI実装がシステムにインストールされている必要がある。<br> | |||
Boost.MPIは、これらの実装の上に構築され、より高レベルのC++インターフェースを提供する。<br> | |||
<br> | |||
Boost.MPIをビルドする場合は、システムにOpen MPI等のMPI実装がインストールされていることが前提となる。<br> | |||
Boostのビルド時には、MPI実装のヘッダーファイルとライブラリへのパスを正しく指定する必要がある。<br> | |||
<br> | |||
Boost.MPIは、基盤となるMPI実装 (Open MPI等) の性能特性を維持しつつ、C++の利点を活かしたインターフェースを提供する。<br> | |||
また、異なるMPI実装間での互換性も考慮されている。<br> | |||
<br> | |||
Open MPIはMPIの実装の1つであり、Boost.MPIはこのようなMPI実装を利用してC++で並列プログラミングを行うためのインターフェースを提供するBoostコンポーネントである。<br> | |||
Open MPIはBoost自体の一部ではないが、Boost.MPIを使用する場合の基盤となる重要なソフトウェアの1つとして位置付けられている。<br> | |||
<br><br> | <br><br> | ||
== Boostのインストール == | == Boostのインストール == | ||
==== | ==== RHEL / SUSE ==== | ||
Boostをビルドするため、依存関係のライブラリをインストールする。<br> | Boostをビルドするため、依存関係のライブラリをインストールする。<br> | ||
sudo zypper install libicu-devel xz-devel libbz2-devel libzstd-devel python-devel | # SUSE | ||
sudo zypper install libicu-devel xz-devel libbz2-devel libzstd-devel python-devel python3-devel \ | |||
openmpi-devel # オプション | |||
<br> | <br> | ||
[https://www.boost.org/users/download/ Boostの公式Webサイト]にアクセスして、Boostをダウンロードする。<br> | [https://www.boost.org/users/download/ Boostの公式Webサイト]にアクセスして、Boostをダウンロードする。<br> | ||
| 15行目: | 42行目: | ||
tar xf boost_<バージョン>.tar.gz | tar xf boost_<バージョン>.tar.gz | ||
cd boost_<バージョン> | cd boost_<バージョン> | ||
<br> | |||
<u>ビルド時において、コンパイラを指定する場合は、環境変数 <code>CC</code> および <code>CXX</code> を指定する。</u><br> | |||
<syntaxhighlight lang="sh"> | |||
# 例 : | |||
export CC=gcc-14; \ | |||
export CXX=g++-14 | |||
</syntaxhighlight> | |||
<br> | <br> | ||
Boostをビルドおよびインストールする。<br> | Boostをビルドおよびインストールする。<br> | ||
| 64行目: | 99行目: | ||
* <code>--toolset</code>オプション | * <code>--toolset</code>オプション | ||
*: ビルドに使用するツールセットを指定する。 | *: ビルドに使用するツールセットを指定する。 | ||
<br> | |||
必要ならば、~/.profileファイル等に環境変数を追記する。<br> | |||
vi ~/.profile | |||
<br> | |||
<syntaxhighlight lang="c++"> | |||
# ~/.profileファイル | |||
export LD_LIBRARY_PATH="/<Boostのインストールディレクトリ>/lib:$LD_LIBRARY_PATH" | |||
export BOOST_ROOT="<Boostのインストールディレクトリ>" | |||
export BOOST_LIBRARYDIR="/<Boostのインストールディレクトリ>/lib" | |||
export CPPFLAGS="-L$/<Boostのインストールディレクトリ>/include $CPPFLAGS" | |||
</syntaxhighlight> | |||
<br> | <br> | ||
| 111行目: | 159行目: | ||
# 64ビット向けライブラリの場合 | # 64ビット向けライブラリの場合 | ||
<Boostのインストールディレクトリ>\stage\lib\x64 | <Boostのインストールディレクトリ>\stage\lib\x64 | ||
<br> | <br><br> | ||
== Boostライブラリの確認 == | |||
Boostライブラリが使用できるかどうかを確認するため、以下に示すサンプルコードをビルドおよび実行する。<br> | Boostライブラリが使用できるかどうかを確認するため、以下に示すサンプルコードをビルドおよび実行する。<br> | ||
<syntaxhighlight lang="c++"> | <syntaxhighlight lang="c++"> | ||
// boost.cpp | |||
#include <iostream> | #include <iostream> | ||
#include <vector> | #include <vector> | ||
| 160行目: | 212行目: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<br> | <br> | ||
ソースコードをコンパイルする。<br> | |||
g++ -I/<Boostのインクルードディレクトリ>/include boost.cpp -o boost | |||
<br> | |||
コンパイルしたファイルを実行する。<br> | |||
./boost | |||
# 出力例 | # 出力例 | ||
boostバージョン:107600 | boostバージョン:107600 | ||
| 176行目: | 234行目: | ||
__FORCETOC__ | __FORCETOC__ | ||
[[カテゴリ: | [[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Windows10]][[カテゴリ:C++]] | ||