Skip to main content
QUICK REVIEW

[論文レビュー] A Case for Malleable Thread-Level Linear Algebra Libraries: The LU Factorization with Partial Pivoting

Sandra Beltrán Catalán, José R. Herrero|arXiv (Cornell University)|Nov 19, 2016
Parallel Computing and Optimization Techniques被引用数 5
ひとこと要約

本稿では、部分ピボット付きLU因子分解におけるスレッドの動的バランスを実現する、可変的(malleable)スレッドレベルBLASライブラリを提案する。実行中にスレッドの再割り当てを可能とするWorker Sharing(WS)とEarly Termination(ET)を用い、6コアのIntel Xeonシステム上で、ランタイムベースの手法と同等の性能を達成しつつ、オーバーヘッドを低減し、動的ブロックサイズチューニングを実現する。

ABSTRACT

We propose two novel techniques for overcoming load-imbalance encountered when implementing so-called look-ahead mechanisms in relevant dense matrix factorizations for the solution of linear systems. Both techniques target the scenario where two thread teams are created/activated during the factorization, with each team in charge of performing an independent task/branch of execution. The first technique promotes worker sharing (WS) between the two tasks, allowing the threads of the task that completes first to be reallocated for use by the costlier task. The second technique allows a fast task to alert the slower task of completion, enforcing the early termination (ET) of the second task, and a smooth transition of the factorization procedure into the next iteration. The two mechanisms are instantiated via a new malleable thread-level implementation of the Basic Linear Algebra Subprograms (BLAS), and their benefits are illustrated via an implementation of the LU factorization with partial pivoting enhanced with look-ahead. Concretely, our experimental results on a six core Intel-Xeon processor show the benefits of combining WS+ET, reporting competitive performance in comparison with a task-parallel runtime-based solution.

研究の動機と目的

  • マルチスレッドBLASルーチンにおける静的スレッド割り当てが原因で生じる密行列因子分解における負荷不均衡を解消すること。
  • 実行中にアイドル状態のスレッドを再割り当てすることで、部分ピボット付きLU因子分解の性能を向上させること。
  • 複雑なランタイムに依存するのを減らすために、ワークロードバランスを実現する軽量で可変的なスレッドレベルのメカニズムを導入すること。
  • 現代のマルチコアアーキテクチャ上での可変的BLASフレームワークにおけるWorker Sharing(WS)とEarly Termination(ET)の有効性を評価すること。

提案手法

  • 実行時におけるスレッド数の調整が可能なBLISの可変的スレッドレベル実装を開発し、BLASカーネルに参加するスレッド数を動的に制御できるようにする。
  • 完了したパネル因子分解タスクからスレッドを再割り当てし、まだ実行中のトレーリングアップデートタスクに割り当てるWorker Sharing(WS)を実装する。
  • 高速に終了するタスクが完了を通知し、遅延するタスクを早期に終了させることで、因子分解を次のイテレーションに進めるEarly Termination(ET)を設計する。
  • ブロッキングされたLU因子分解にWSとETを統合し、実行中に動的ブロックサイズの適応を実現する。
  • 6コアのIntel Xeon E5-2603 v3上で実行トレースとパフォーマンス測定を用い、静的およびOmpSsベースの手法と比較して本手法の有効性を評価する。
  • 性能、スケーラビリティ、メモリ効率を評価するために、タスク並列OmpSsベースの実装と結果を比較する。

実験結果

リサーチクエスチョン

  • RQ1可変的BLASによる動的スレッド再割り当ては、部分ピボット付きLU因子分解における負荷バランスを改善できるか?
  • RQ2一方のタスクが他方より先に完了する場合、Worker Sharing(WS)はアイドル時間の短縮にどの程度効果的か?
  • RQ3パネル因子分解がトレーリングアップデートよりも高負荷である場合、Early Termination(ET)は性能向上にどの程度寄与するか?
  • RQ4高度なタスク並列ランタイム(OmpSs)と比較して、可変的BLASアプローチのパフォーマンスとメモリフットプリントはどのように異なるか?
  • RQ5可変的アプローチは、実行中にアルゴリズム的ブロックサイズを自動的にチューニングできるか?手動チューニングの必要性を低減できるか?

主な発見

  • 可変的BLASフレームワークにおけるWorker SharingとEarly Termination(WS+ET)の組み合わせは、6コアのIntel Xeonプロセッサ上でOmpSsベースのタスク並列実装と同等の性能を達成する。
  • 小規模な問題サイズでは、LU ETバージョンがすべての静的ルックアヘッドバージョンを上回り、ETによるブロックサイズの動的調整のおかげで特に顕著な性能向上を示す。
  • 固定ブロックサイズ(bo = 192)を用いた場合、可変的LU ETバージョンは広い問題次元範囲で高いパフォーマンスを維持し、不適切なチューニングに対しても頑健であることが示された。
  • 一方、OmpSsベースの実装(LU OS)は、不適切なブロックサイズ選択に対して顕著なパフォーマンス低下を示しており、可変的アプローチの動的適応の利点が顕著に現れている。
  • 可変的BLASアプローチは静的実装を上回るパフォーマンスを発揮し、ランタイムベースの代替手法と比較して顕著に小さいメモリフットプリントを実現した。
  • 実験結果から、可変的スレッドレベルライブラリは、複雑なランタイムのオーバーヘッドなしに動的負荷バランスを効果的に活用できることを示しており、今後のマルチコアアーキテクチャにとって有望な手法である。

より良い研究を、今すぐ始めましょう

論文設計から論文執筆まで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。