自明並列探索 mapper
¶
mapper_mpi
はパラメータ空間中の候補点をあらかじめ用意しておいて、そのすべてで \(f(x)\) を計算することで最小値を探索するアルゴリズムです。
MPI 実行した場合、候補点の集合を等分割して各プロセスに自動的に割り振ることで自明並列計算を行います。
前準備¶
MPI 並列を行う場合は、 mpi4py をインストールしておく必要があります。:
python3 -m pip install mpi4py
入力パラメータ¶
[param
] セクション¶
探索パラメータ空間を定義します。
mesh_path
が定義されている場合はメッシュファイルから読み込みます。
メッシュファイルは1行がパラメータ空間中の1点を意味しており、
1列目がデータ番号で、2列目以降が各次元の座標です。
mesh_path
が定義されていない場合は、 min_list
, max_list
, num_list
を用いて、
各パラメータについて等間隔なグリッドを作成します。
mesh_path
形式: string型
説明: メッシュ定義ファイルへのパス。
min_list
形式: 実数型のリスト。長さはdimensionの値と一致させます。
説明: パラメータが取りうる最小値。
max_list
形式: 実数型のリスト。長さはdimensionの値と一致させます。
説明: パラメータが取りうる最大値。
num_list
形式: 整数型のリスト。長さはdimensionの値と一致させます。
説明: パラメータが取りうる数。
アルゴリズム補助ファイル¶
メッシュ定義ファイル¶
本ファイルで探索するグリッド空間を定義します。
1 + dimension
列のテキストファイルで、
1列目にメッシュのインデックス、
2列目以降は探索パラメータ \(x\) に対応する値を記載します。
また、 #
から始まる行はコメントとして無視されます。
以下、2次元パラメータ空間探索のサンプルを記載します。
1 6.000000 6.000000
2 6.000000 5.750000
3 6.000000 5.500000
4 6.000000 5.250000
5 6.000000 5.000000
6 6.000000 4.750000
7 6.000000 4.500000
8 6.000000 4.250000
9 6.000000 4.000000
...
出力ファイル¶
ColorMap.txt
¶
各メッシュでの候補パラメータと、その時の R-factor
が記載されたファイルです。
入力ファイルの [solver]
- [param]
セクションにある、
string_list
で定義された変数の順番でメッシュデータは記載され、
最後に R-factor
の値が記載されます。
以下、出力例です。
6.000000 6.000000 0.047852
6.000000 5.750000 0.055011
6.000000 5.500000 0.053190
6.000000 5.250000 0.038905
6.000000 5.000000 0.047674
6.000000 4.750000 0.065919
6.000000 4.500000 0.053675
6.000000 4.250000 0.061261
6.000000 4.000000 0.069351
6.000000 3.750000 0.071868
...