自明並列探索 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
...