Główne pojęcia
Trinity上の計算ノードの性能差を特定し、機械学習とプロキシアプリケーションを活用して、パフォーマンスの低い計算ノードの影響を最小限に抑え、クラスターの効率を高める。
Streszczenie
本論文では、Trinity上のパフォーマンス最適化のプロセスについて説明する。
まず、Trinity上の9,400以上の計算ノードの中で、パフォーマンスの低い計算ノードを特定するために、以下の取り組みを行った:
4種類のテスト(CPUスピード、メモリスピード、I/Oシステム、ノード間通信)を実施し、kMeansクラスタリングアルゴリズムを使ってパフォーマンスの低い計算ノードを特定した。その結果、CPUスピードに大きなばらつきがあることが分かった。
標準的なHPLベンチマークでは4時間以上かかるため、短時間で実行できるプロキシアプリケーションを開発した。OpenMPとMPIを使った10種類のアプリケーションを作成し、それぞれのパフォーマンス分布を分析した。
プロキシアプリケーションの結果とHPLの結果を線形回帰分析し、HPLの平均パフォーマンスを予測する式を導出した。さらに、マハラノビス距離を使ってアウトライアーを特定した。
機械学習手法(ランダムフォレスト、ブースティング、ニューラルネットワーク)を適用し、アウトライアーの特定精度を高めた。
最後に、パフォーマンスの低い計算ノードへの対策として、トリミング、交換、優先度の低い処理への割り当てなどの方策を検討している。
Statystyki
Trinity上の9,327台の計算ノードのうち、HPLの平均パフォーマンスから3.5標準偏差以下の12台がアウトライアーとして特定された。
マハラノビス距離を使うと、33台のアウトライアーのうち20台以上を特定できた。
Cytaty
"Trinity上の計算ノードの数は増え続けており、クラスターの速度は最も遅い計算ノードによって制限される。そのため、遅い計算ノードを特定し、可能であれば性能を改善し、クリティカルな処理では遅い計算ノードの使用を最小限に抑えることが重要である。"
"HPLベンチマークは広く使われているが、大規模メモリを必要とするため、Trinity上の計算ノードでは4時間以上の実行時間を要する。そのため、HPLの結果を近似できる短時間で実行可能なプロキシアプリケーションの開発が必要である。"