Skip to main content
QUICK REVIEW

[論文レビュー] Optimizing ccNUMA locality for task-parallel execution under OpenMP and TBB on multicore-based systems

Markus Wittmann, Georg Hager|arXiv (Cornell University)|Dec 30, 2010
Parallel Computing and Optimization Techniques参考文献 9被引用数 12
ひとこと要約

本論文は、ccNUMAシステムにおけるタスク並列ワークロードにおいて、データローカリティを最適化するソフトウェアレイヤーを提案する。この手法では、タスクをローカリティ固有のキューに並べ替えることで、スレッドが自身のローカルメモリドメインからのデータを処理するように保証する。各ドメイン内での動的ロードバランシングを維持しつつ、非ローカルメモリアクセスを最小限に抑え、OpenMPおよびTBBワークロードにおいて顕著な性能向上を達成する。特に不規則なワークロードやロードバランシングの偏りが生じる状況で顕著である。

ABSTRACT

Task parallelism as employed by the OpenMP task construct or some Intel Threading Building Blocks (TBB) components, although ideal for tackling irregular problems or typical producer/consumer schemes, bears some potential for performance bottlenecks if locality of data access is important, which is typically the case for memory-bound code on ccNUMA systems. We present a thin software layer ameliorates adverse effects of dynamic task distribution by sorting tasks into locality queues, each of which is preferably processed by threads that belong to the same locality domain. Dynamic scheduling is fully preserved inside each domain, and is preferred over possible load imbalance even if nonlocal access is required, making this strategy well-suited for typical multicore-mutisocket systems. The effectiveness of the approach is demonstrated by using a blocked six-point stencil solver as a toy model.

研究の動機と目的

  • 非ローカルメモリアクセスによる性能劣化を、ccNUMAシステムにおけるタスク並列アプリケーションで解消すること。
  • OpenMPやTBBのプログラミングモデルに変更を加えずに、効果的なデータローカリティ最適化を可能にすること。
  • 各ローカリティドメイン内での動的ロードバランシングを維持しつつ、ドメイン間メモリアクセスを最小限に抑えること。
  • 不規則なワークロードやロードバランシングが偏った状況におけるローカリティキューの有効性を、実際のccNUMAハードウェア上で評価すること。
  • TBBのアフィニティパーティショナーやラウンドロビンメモリ配置といった既存のメカニズムと、本手法を比較すること。

提案手法

  • タスクの対象メモリドメインに基づき、複数のローカリティキューにタスクを並べ替えるユーザーレベルのソフトウェアレイヤーを導入すること。
  • 各スレッドを特定のローカリティドメインに割り当て、主にそのローカルキューからのタスクを処理するように保証すること。
  • 各ローカリティドメイン内での動的スケジューリングを維持することで、タスクが非ローカルデータにアクセスしてもロードバランシングが保たれるようにすること。
  • ロードバランシングの不均衡が生じた場合に、ローカリティを厳密に守ることを優先せず、負荷バランスを最適化するためのワークスティーリングメカニズムを用いてタスクをドメイン間で再配分すること。
  • 標準のOpenMPタスク機構およびTBBのparallel_forに、カスタムパーティショナーやコンcurrentキューを組み合わせて実装すること。
  • スレッド-コアアフィニティと、実行時におけるローカリティドメインIDの検出を活用し、タスクを適切なキューにマッピングすること。

実験結果

リサーチクエスチョン

  • RQ1軽量なソフトウェアレイヤーは、ccNUMAシステムにおけるタスク並列アプリケーションのデータローカリティを効果的に改善できるか?
  • RQ2本手法のローカリティキュー機構は、TBBのネイティブアフィニティパーティショナーよりも性能とスケーラビリティにおいて優れているか?
  • RQ3不規則なワークロードやロードバランシングが偏った状況において、このアプローチは非ローカルメモリアクセスをどの程度低減し、帯域幅の利用効率を向上させられるか?
  • RQ4メモリローカリティ最適化を実現しながら、動的ロードバランシングを維持できるか?
  • RQ5本手法は、スパース行列ソルバーやステンシル計算といった実際の科学的ワークロードに対しても効果的に適用可能か?

主な発見

  • ローカリティキュー機構は、非ローカルメモリアクセスを顕著に低減し、特に不規則なワークロードやロードバランシングが偏った状況においてccNUMAシステムでの性能を向上させる。
  • AMD Istanbulシステムでは、本手法がラウンドロビンメモリ配置に近い最適性能に達し、ナーブな動的スケジューリングを上回る性能を示した。
  • TBBのアフィニティパーティショナは本手法と同等の性能を達成したが、後者はより高い制御性と拡張性を備えている。
  • TBBのparallel_do構文と組み合わせたローカリティキューの利用は、組み込みパーティショナーよりも利点を有する可能性があるが、本研究では完全に評価されていない。
  • 厳密なスレッド-コアアフィニティがなくても、ローカリティドメインIDが実行時に取得可能であるため、本手法は有効に機能する。
  • スパース行列ソルバーにおいて、共有キャッシュレベルとキューを関連付けることで、時間的ブロッキングと通信-計算のオーバーラップを実現できる。

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

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

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

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