Fluxにおけるパラメトリック分散(Linux)

概要

本章では、Linux OSでのFluxにおけるパラメトリック分散の確立について説明します。分散コンピューティングにより、同じFluxプロジェクトの複数の独立した構成を分散させながら、計算時間を節約することができます。たとえば、Magnetic Transientプロジェクトは、シナリオ内で変化する形状パラメータ(サイズ、形状など)または物理パラメータ(供給電流の値、速度など)など、さまざまなパラメータの値に関して分散されることがあります。複数のプロジェクトを同時に実行して、これらすべての構成のシミュレーションを行いますが、分散コンピューティングの主なパラメータは次のものです:
  • コアの数(Fluxの並列実行数)
ここでは次の各トピックについて説明します:
  • 原理
  • 単一マシン上でLinux OSによってパラメトリック分散を設定する方法
  • 用途の例。

原理

パラメトリック分散により、シナリオ内で変化するI/Oまたは形状パラメータのさまざまな値による有限要素問題の複数の独立した構成を、逐次処理ではなく並列処理で実行することで、計算時間を節約することができます。分散コンピューティングを設定するには、独立した構成を持つすべてのサブプロジェクトを計算するために、Fluxマスタープロジェクトが必須です。

Fluxマスタープロジェクトは、他のすべてのスレーブプロジェクト(分散)を制御し、下の図 1に示すように、解析プロセス時にFluxのすべてのサブプロジェクトが取得したすべての結果を収集する役目を果たします。


図 1. パラメトリック分散を示す画像。Fluxマスターが、独立した構成の形状またはI/Oパラメータを持つ複数のFlux Slaveを制御している。
このLinux構成では、各Flux Slaveが同じ特性を持っています:
  • ただ1つのコアですべてが実行されます。
  • Flux Slaveに割り当てられるメモリの量は、Flux Masterと同じ値に設定されます。Flux MasterでメモリがDynamicに設定されている場合、Flux Slaveも動的メモリで起動されます。

単一マシン上でLinux OSによってパラメトリック分散を設定する方法

Flux 2DFlux 3Dでは、パラメトリック分散のオプション(Flux Slaveの並列実行数)がSupervisorのオプションで設定されることがあります。あるいは、Supervisorの右下にあるDistribution managerボタンをクリックします。Flux Skewモジュールでは、この機能はまだ使用可能でないため、自動的に逐次モードで実行されます。

どの場合でも、パラメトリック分散は次のように設定できます:

  • パラメトリック分散は、下に示すように、Supervisorの右下にあるDistribution managerボタンをクリックすることで開始できます。


    図 2. Flux Supervisorのdistribution managerボタン
  • 追加のDistribution managerウィンドウが表示され、パラメトリック分散に対していくつかのリソースを許可するように求められます(Flux Slaveの並列実行数)。Allowをクリックします。
  • さらにDistribution managerでは、次のように、Number of concurrent Fluxの入力が求められます:


    図 3. Distribution managerで、Number of concurrent Fluxの入力が求められる。
    注: この数はマシン上で使用できるコアの数と直接的にリンクし、可変パラメータの数が、Fluxの並列実行数(Number of concurrent Flux)に自動的に分散されます。
  • 最後に、Useをクリックして、パラメトリック分散を完了します。
  • Distribution managerは、Supervisorのオプションで開始することもできます。Parallel ComputingメニューのDistributed ComputingセクションにあるParametric Distributionで、Set ressourcesボタンをクリックします。
Supervisorで分散が設定された後は、Fluxシナリオで次のように採用できます:
  • 選択したScenarioで、Parametric distributionボックスをオンにします。
    注: すべての可変パラメータは、下の図 4に示すように、シナリオのControl parametersタブControlled parametersとして宣言される必要があります。


図 4. シナリオのGUIボックスが、(1)有効化されたパラメトリック分散と、(2)複数の可変パラメータのリストで強調表示されている。

用途の例

対象となるパラメトリック分散を示すために、Flux 2D Transient Magneticアプリケーションを使用して、3相8極の永久磁石同期機械(PMSM)をモデリングするプロジェクトについて考えてみましょう。このシミュレーションは、速度が課せられた0度から90度までの回転子の角度位置によって制御されるもので、時間依存シナリオです。パラメトリック分散の間、Fluxは時間ステップごとにすべてのパラメータの組み合わせ結果を計算します。


図 5. Flux 2Dで記述された3相8極の永久磁石同期機械(PMSM)
目標は、次の2つのパラメータでパラメトリック分散を実行することです:
  • シナリオによって制御されるI/Oパラメータとして宣言される速度で、回転するメカニカルセットによって使用される速度。
  • 下に示すように、磁石外弧値αが形状パラメータで設定されている磁石の形状。


    図 6. 形状パラメータでパラメータ化された磁石外弧値が、シナリオの実行時に可変パラメータとして選択されることがある。
どちらのパラメータも電気機械のパフォーマンスに影響する可能性があります。すべてのパラメータをまとめた表を以下に示します:
表 1. パラメータとその変動範囲についてまとめた表
  磁石外弧値α(角度) 速度(rpm)
最小値 130 1300
最大値 170 1700
ステップ値 10 100
上の表に示すように、解析のステップ数はおよそ2525 (5*5*101)で、時間ステップが101のシナリオに対して速度の値が5つ、磁石外弧値が5つあります。
注: 並列実行のFluxでは時間ステップを分離できないので、Transient Magneticアプリケーションを解析するには、ステップ間の強力な時間関係が必要であることに注意します。この関係はMagneto Staticアプリケーションには存在しません。
Distribution managerで設定された異なるNumber of concurrent Fluxを使用するさまざまなタイプの分散によって得られた結果が図 7にプロットされます。これと同時に、Number of concurrent Fluxの別の値を使用する2525の時間ステップで同じシナリオが解析されます。並行実行が1つだけのFlux(逐次計算)の計算時間が基準と見なされ、解析時間の100%に設定されます。


図 7. Fluxの並行実行数の関数での時間計算の変化を表したグラフ。