この記事では、CPUhの概念とその重要性について説明します。
CPUhとは、SimScaleプラットフォームのジョブに使用されたリソースの数を知るためにSimScaleが使用する単位です。現在、CPUhを消費するジョブはシミュレーションとメッシュ処理です。
CPUhの消費量は、使用されたコア数とジョブの終了時間によって異なります。例えば、2コアのマシンでシミュレーションを1時間実行すると、2CPUhが消費されます。任意のジョブのCPUh使用量を計算するには、以下の式を使用します:
$$CPUh = 実行に要した時間 \times 使用したコア数$$
CPUhの残高を確認する
使用可能なCPUhを確認する最も簡単な方法は、 ダッシュボードにアクセスすることです:
CPUhの節約
CPUhの使用にはいくつかの要因が影響します。主な要因を以下に示します。
初期条件
Initial conditions (初期条件)は、各ソリューションフィールドの開始値を定義します。現実的で期待値に近い初期条件を設定することで、収束速度を速めることができます。例えば、実験から得られた値を初期条件として使用することができます。
Mesh (メッシュ操作)
メッシュサイズは、ジョブの実行に必要な計算工数に大きく影響します。メッシュ密度が高いほど結果の精度は向上しますが、CPUhの消費量も増加します。
メッシュを生成する際、 Number of processors (使用するコア数)をAutomatic (自動)に設定することができます。こうすることで、プラットフォームがメッシュ設定に基づいて最適なコア数を自動的に選択します。
Simulation control
Simulation controlでは、シミュレーション操作のNumber of processors (使用するコア数)を定義できます。
Automatic (自動)を設定すると、プラットフォームはメッシュサイズとシミュレーションされる物理に基づいて、シミュレーションに最も経済的なコア数を選択します。
Simulation controlで使用するリソースを管理し、適切なコア数を割り当てることができます。例えば、シミュレーションを高速に実行する必要がある場合、最大96コアを割り当てることができます( これはProfessionalユーザーのみ利用可能)。
また、コア数は計算に使用できるメモリ量にも関係することを覚えておくことが重要です。したがって、手動でコア数を定義する場合は、 メモリ不足にならないように適切なコア数を選択してください。
Result control
Result controlでは、指定したWrite interval (書き込み頻度)でシミュレーションの追加結果を得ることができます。しかし、出力したい結果が増えるほど、より多くのデータを計算して保存する必要があります。この処理は処理時間を消費しますので、必要な結果出力のみを使用するようにしてください。
Numerics
Numericsは、消費するCPUhにも影響します:
- Relaxation factor (緩和係数): シミュレーションの安定性と収束速度を制御します。Relaxation factor (緩和係数)を高くすると、シミュレーションの収束が早まり、その結果、CPUhの消費量が減少します。しかし、この場合、結果の不正確さや発散の原因となる変動が大きくなります。
- Solver tolerance (ソルバーの許容誤差): 公差はシミュレーションの残差を制御します。残差が小さいほど良い結果が得られますが、残差を小さくするためには、より多くの計算リソースが必要となり、その結果、より多くのCPUhを使用することになります。
- Numerical scheme (数値スキーム): シミュレーションに関連する方程式の解法を決定します。1次スキームは精度が劣りますが、2次スキームと比較して、より少ないCPUhで、より早く収束します。