タスク並列性とは? わかりやすく解説

タスク並列性

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2019/05/08 08:27 UTC 版)

ナビゲーションに移動 検索に移動

タスク並列性(タスクへいれつせい、: task parallelism)は、複数のプロセッサを用いて演算を行う並列コンピューティングの形態の一つである。タスク並列性は、異なる並列計算ノードに実行プロセスあるいはスレッドを分配し、それぞれ異なるタスクを実行させることに焦点を置いている。並列性の別の形態であるデータ並列性と対照をなす。関数並列性 (function parallelism) あるいは制御並列性 (control parallelism) とも。

詳細

並列計算が可能な環境、例えばマルチソケットあるいはマルチコアによるマルチプロセッサのシステムにおいて、タスク並列性は各プロセッサが異なるスレッド(あるいはプロセス)を同一または異なるデータに対して実行することで得られる。一般的なケースでは、各実行スレッドは作業の実行に伴い他の実行スレッドと通信を行う。通信はワークフローの一部として、あるスレッドから次のスレッドにデータを渡す(双方のスレッドが参照可能な同一メモリ空間内のデータを書き換える)ことで行われる。

単純な例として、タスク "A" と "B" を実行するとき、ある CPU "a" にタスク "A" を行わせ、同時に別の CPU "b" にタスク "B" を行わせることで、単一のCPUに両方のタスクを順番に逐次実行させる場合と比べて処理の実行時間を短縮させることが可能である。通常、タスクを実行するCPUをアプリケーションソフトウェアレベルで明示的に指定することはほとんどなく、プロセスまたはスレッドといった抽象化された実行単位を割り当てるだけにとどめて、実際の計算ノード(例えばローカルコンピュータ上のマルチコアCPUにおける各プロセッサコアや、ネットワーク上の仮想化されたサーバーインスタンスなど)へのプロセス/スレッド割り当てはオペレーティングシステムやフレームワークが担当する。したがって、計算ノードのビジー状況によっては、分配したタスクが異なる計算ノードで実行されず、単一の計算ノードで逐次実行されるということも起こりうる。

タスク並列性は、データの並列性ではなく処理の分散した(並列化された)性質に焦点を置く。実際のプログラムのほとんどはタスク並列性とデータ並列性の間のどこかに落ち着く。

下記の擬似コードでタスク並列性を示す。タスクは下記に示すようなif文で割り当てることができる。

program:
...
if CPU="a" then
   do task "A"
else if CPU="b" then
   do task "B"
end if
...
end program

本プログラムの目的は総和 ("A+B") を求めることである。上記のようなコードを記述し2プロセッサのシステム上で動作させると、ランタイムでは下記のようなコードが実行される。

  • 並列計算の環境では、いずれの CPU も同じデータ[要説明]にアクセスを行う。
  • "if" 節により、CPU ごとに違いが生じる。CPU "a" は "if" で真になり、CPU "b" は "else if" で真になり、両方の CPU がコードブロックを同時に動作させ、異なるタスクを同時に実行する。

CPU "a" で実行されるコード:

program:
...
do task "A"
...
end program

CPU "b" で実行されるコード:

program:
...
do task "B"
...
end program

この概念は、任意の数のプロセッサに対して一般化できる。

参考文献

  • Quinn Michael J, Parallel Programming in C with MPI and OpenMP McGraw-Hill Inc. 2004. ISBN 0-07-058201-7

関連項目


タスク並列性

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/07/25 13:20 UTC 版)

並列計算」の記事における「タスク並列性」の解説

詳細は「タスク並列性」を参照 タスク並列性は、「同じまたは異なデータに関する全く異な計算並列実行可能である」という並列プログラム特性である。データ並列性がほぼ同じ計算並列実行するのとは対照的である。問題大きくなっても、それに比例してタスク並列性が高くなることはない。

※この「タスク並列性」の解説は、「並列計算」の解説の一部です。
「タスク並列性」を含む「並列計算」の記事については、「並列計算」の概要を参照ください。

ウィキペディア小見出し辞書の「タスク並列性」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



タスク並列性と同じ種類の言葉


固有名詞の分類


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「タスク並列性」の関連用語

タスク並列性のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



タスク並列性のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのタスク並列性 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaの並列計算 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS