競合状態、相互排他、同期、並列スローダウンとは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > ウィキペディア小見出し辞書 > 競合状態、相互排他、同期、並列スローダウンの意味・解説 

競合状態、相互排他、同期、並列スローダウン

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

並列計算」の記事における「競合状態、相互排他、同期、並列スローダウン」の解説

並列プログラムにおけるサブタスクをスレッドと呼ぶ。システムによってはさらに小さく軽量なスレッドであるファイバー使っており、もっと大きな単位であるプロセス使っているシステムもある。いずれにしても並列プログラムのサブタスクをここではスレッドと呼ぶ。 スレッドは、スレッド間で共有している何らかの変数更新することがよくある2つスレッド命令実行順序一定ではない。例えば、次のようなプログラム考える。 スレッド A スレッド B 1A: 変数 V を読む 1B: 変数 V を読む 2A: 変数 V の値に1を加算 2B: 変数 V の値に1を加算 3A 変数 V に値を書き戻す 3B: 変数 V に値を書き戻す 命令1B1A3Aの間に実行され場合、または命令1A1B3Bの間に実行され場合、このプログラム間違ったデータ生成する。これを競合状態と呼ぶ。プログラマ相互排他のためにロックを使わなければならないロックとはプログラミング言語構成要素であり、あるスレッド変数制御獲得すると、それがアンロックされるまで他のスレッドから読み書きできないようにする。ロック獲得したスレッドクリティカルセクションプログラムの中で何らかの変数排他的にアクセスする必要がある部分)を実行でき、それが完了したらそのデータアンロックする。 従って、プログラム正しく実行するには、上のプログラムを以下のようにロック使って書き直す必要があるスレッド A スレッド B 1A: 変数 V をロック 1B: 変数 V をロック 2A: 変数 V を読む 2B: 変数 V を読む 3A: 変数 V の値に1を加算 3B: 変数 V の値に1を加算 4A 変数 V に値を書き戻す 4B: 変数 V に値を書き戻す 5A: 変数 V をアンロック 5B: 変数 V をアンロック 一方スレッド変数 V をロックできた場合、もう一方は V がアンロックされるまで待たされることになる。これによってプログラム正し実行保証されるロックプログラム正し実行保証には必須だが、それによってプログラムの実行速度大幅に低下する複数変数ロックには複数ロックが必要であり、それによってデッドロック発生する可能性生じる。不可分なロック複数変数一度ロックするのであるその場合、対象変数群の一部ロックできなければ全体ロックできない見なされる個別ロックされる2つ変数ロックする必要のあるスレッド2つ存在したとして、一方スレッド一方変数だけをロックし、もう一方スレッドがもう一方変数だけをロックするという状況発生しうる。このような場合双方スレッドロックできていない変数ロックしようとして待ち続け結果としてデッドロックとなる。 多く並列プログラムでは、サブタスク群が同期し動作することを要求する。この用途使われるものとしてバリアがある。バリア一般にソフトウェアロックを使って実装される。その種のアルゴリズムとしてLock-freeとWait-freeアルゴリズムがある。これはロックバリア使わず全て実現するのである。ただし、実装難しくデータ構造設計慎重に行う必要がある並列化によって必ず性能向上するとは限らない一般にタスク細分化してスレッド数を増やしていくと、スレッド間の通信費やす時間増大していく。すると、ある時点通信オーバーヘッド処理時間支配するようになり、それ以上並列化スレッド数の増加)は単に処理時間遅延を招くことになる。この現象並列スローダウンと呼ぶ。

※この「競合状態、相互排他、同期、並列スローダウン」の解説は、「並列計算」の解説の一部です。
「競合状態、相互排他、同期、並列スローダウン」を含む「並列計算」の記事については、「並列計算」の概要を参照ください。

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



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

辞書ショートカット

すべての辞書の索引

「競合状態、相互排他、同期、並列スローダウン」の関連用語

1
10% |||||

競合状態、相互排他、同期、並列スローダウンのお隣キーワード
検索ランキング

   

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



競合状態、相互排他、同期、並列スローダウンのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

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

©2024 GRAS Group, Inc.RSS