Skip to main content
QUICK REVIEW

[論文レビュー] An Efficient Thread Mapping Strategy for Multiprogramming on Manycore Processors

Ashkan Tousimojarad, Wim Vanderbauwhede|arXiv (Cornell University)|Mar 31, 2014
Parallel Computing and Optimization Techniques参考文献 6被引用数 6
ひとこと要約

本論文では、マルチスレッドマルチプロ gramm ing環境におけるロードバランスの向上を目的として、manycoreプロセッサ向けに拡張された最低負荷(XLL)スレッドマッピング戦略を提案する。リアルタイムのCPU使用率に基づいてスレッドをコアに動的に割り当てることで、XLLは単一およびマルチプロ gramm ingワークロードの両方において、ネイティブLinuxスケジューラを上回る性能を発揮し、特にコア数やスレッド数が多い状況で顕著である。

ABSTRACT

The emergence of multicore and manycore processors is set to change the parallel computing world. Applications are shifting towards increased parallelism in order to utilise these architectures efficiently. This leads to a situation where every application creates its desirable number of threads, based on its parallel nature and the system resources allowance. Task scheduling in such a multithreaded multiprogramming environment is a significant challenge. In task scheduling, not only the order of the execution, but also the mapping of threads to the execution resources is of a great importance. In this paper we state and discuss some fundamental rules based on results obtained from selected applications of the BOTS benchmarks on the 64-core TILEPro64 processor. We demonstrate how previously efficient mapping policies such as those of the SMP Linux scheduler become inefficient when the number of threads and cores grows. We propose a novel, low-overhead technique, a heuristic based on the amount of time spent by each CPU doing some useful work, to fairly distribute the workloads amongst the cores in a multiprogramming environment. Our novel approach could be implemented as a pragma similar to those in the new task-based OpenMP versions, or can be incorporated as a distributed thread mapping mechanism in future manycore programming frameworks. We show that our thread mapping scheme can outperform the native GNU/Linux thread scheduler in both single-programming and multiprogramming environments.

研究の動機と目的

  • マルチプロ gramm ing環境下でコア数が増加するmanycoreシステムにおいて、従来のSMP Linuxスケジューラのパフォーマンス劣化を解消すること。
  • スレッド数がコア数を超える場合やワークロードのサイズにばらつきがある場合に、ラウンドロビン(BLL)などの既存のスレッドマッピングポリシーに見られる非効率性を特定すること。
  • マルチスレッド・マルチプロ gramm ingワークロードにおけるロードバランスの向上とターンアラウンド時間の短縮を実現する、低オーバーヘッドでヒューリスティックに基づくスレッドマッピング技術の開発。
  • スレッドマッピングが、非線形にスケーラブルでないアプリケーションにおいて特にパフォーマンスに大きな影響を与えることの実証。
  • 将来のmanycoreプログラミングフレームワークのOpenMPタスクモデルと互換性があり、拡張可能な実用的ソリューションの提供。

提案手法

  • 各コアにおけるリアルタイムCPU使用率(有用作業に費やされた時間)を測定し、現在の負荷を推定する。
  • 新しいスレッドを、現在の負荷が最も低いコアに割り当てる。このヒューリスティクスにより、すでにビジーなコアに過剰に負荷をかけるのを回避する。
  • XLLアルゴリズムを軽量なランタイムメカニズムとして実装し、pragmaや分散スレッドマッパーとしての統合に適した構造とする。
  • 64コアのTILEPro64プロセッサ上でBOTSベンチマーク(NQueens、Strassen、Sort、Health)を用いて技術を評価する。
  • 単一およびマルチプロ gramm ingワークロード下で、XLLをネイティブLinuxスケジューラ、静的マッピング、BLL(ラウンドロビン)と比較する。
  • 複数の実験的シナリオにおいて、スレッド数や入力サイズを変化させた状況で、ターンアラウンド時間を主なパフォーマンス指標として用いる。

実験結果

リサーチクエスチョン

  • RQ1manycoreシステムにおいてコア数やスレッド数が増加するにつれて、ネイティブLinuxスレッドスケジューラのパフォーマンスはどのように劣化するか?
  • RQ2リアルタイムCPU負荷に基づく動的スレッドマッピングは、マルチプロ gramm ing環境下でどれほどロードバランスを向上させ、ターンアラウンド時間を短縮できるか?
  • RQ3ラウンドロビン(BLL)マッピングは、異種のワークロードと変動するスレッド数を伴うマルチプロ gramm ingシナリオでなぜ失敗するのか?
  • RQ4CPU使用率に基づく低オーバーヘッドのヒューリスティクスは、単一およびマルチプロ gramm ingワークロードの両方で、既存のスケジューラを上回る性能を発揮できるか?
  • RQ5スレッド数がアプリケーションのスケーラビリティに与える影響は何か?また、最適なマッピングは非線形にスケーラブルでないアプリケーションにおけるパフォーマンス劣化をどのように緩和できるか?

主な発見

  • XLLマッピング戦略は、すべてのベンチマークとワークロードにおいて、ネイティブLinuxスケジューラと比較してターンアラウンド時間を顕著に短縮した。
  • 最初のマルチプロ gramm ingシナリオ(3つのHealthプログラム)では、XLLは空きコアを効率的に再利用することでBLLを上回った。これは、すでにビジーなコアにスレッドを強制的に割り当てるのを避けることができたためである。
  • 2番目のシナリオ(4つの異なるプログラムが同時に実行)では、XLLはLinuxおよびBLLと比較して、4つのプログラムすべてでより低いターンアラウンド時間を達成し、一貫したロードバランスを実現した。
  • 3番目のシナリオ(10個の同一のSortプログラム)では、XLLが優れたパフォーマンスを発揮した。特に1つのプログラムあたり16スレッドを使用した場合、63スレッドよりも優れており、スレッド数が多いからといって必ずしもパフォーマンスが向上するわけではないことを確認した。
  • XLL技術のオーバーヘッドは非常に小さく、数秒程度の短時間実行プログラムに対しても無視できるため、リアルタイムおよび高スルーレート環境に適している。
  • 本研究では、スレッドマッピングがパフォーマンスに極めて重要な要因であることが確認された。静的またはラウンドロビンポリシーでは、manycoreシステムにおける動的かつ異種のワークロードに効果的に適応できないことが明らかになった。

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

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

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

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