並列処理の不具合と対策


並列処理動作に関する問題について、いくつかの例をあげてみます

普段使用するデバッグツールの無い環境を考えてみる マルチコアデバッグとは少し離れますが、デバッグ環境が十分ではない時のことを考えてみます。 普段使うデバッグツールはgdb等のデバッガやprintfと思います。これらの用途は。

意図的にライブロック起こすことの難しさについて考えてみる 今回挑戦したのは、2つのスレッドプログラムが相手に合わせてミューテックス変数のロックを譲り合う処理を繰り返すことで発生するライブロック現象でした。...

ライブロックとは“動いているのだが進まない”という状況を指します。 たとえば、道を歩いていて向こうから来た人を避けようとするとき、相手が自分と同じ方向に動いてしまう。これを繰り返すような状況もライブロックとなります。

前回のブログでは、排他処理区間を絞ると同時に2つのミューテックス変数を使うように改造した結果、再びプログラムが終わらなくなりました。今回はこの問題の調査と対策を行います。

並列処理プログラムのデバッグも、逐次処理と同じ方法で行うことができます。 デバッガでは、スレッドの情報を見ることもできます。

並列処理の不具合と対策について、ブログをはじめます。