言葉遣い

酔漢師匠のはてな駐屯地の「組み込みに必要な「言語」知識」の中でさらっと書かれている以下の部分がとても手堅い表現だな〜と感じました。

並行プログラミングがITでも常識になりつつある

その辺のIT系商業サイトの記事だと並列処理だとかマルチスレッドなんて書いてしまうところだと思うのですが、本当に習得すべきものの適切な表現は「並行プログラミング」ですね。
汎用OS上の話ならGUIアプリケーションが普通になりだした頃に常識になってほしかった感じはしますが(なぜ遅れて今なのかというと、マルチスレッドだけれどもSMP-unsafeであるプログラムがマルチコアCPU上では内在していた欠陥を露呈してこけるようになったからだと思います)。

Wikipediaの「並行性」の項に

一般に並行プログラミングは並列プログラミングよりも範囲が広いとされ、様々な形態の通信および相互作用に関係する。

とあるのですが、並列処理はその前後に必ず並行性制御が入りますし、マルチスレッドを用いる場合でも並列処理は複数あるその目的の一つに過ぎません。プログラムが論理的な整合性という意味で望み通り動作するかどうかというのは並行性制御に関わる話なので、より広く習得すべきなのは並行プログラミングになります。

「むずかしそう(ノ_・。)」って嫌がられそうなのですが、酔漢師匠が「DSPはお気楽に扱えます」というのと同じぐらいには簡単なです(・・
前提知識として数学がいらず、日常の体験から理解できることが多い分、並行処理の方がきちんと向き合った時の敷居は低いと思うのですが〜。

あと最近見たものだと「Intel Thread Building Blocks 2.0」のサイトの機能説明で並行(concurrent)と並列(parallel)が正しく区別された上で明示されているのも素敵だと思いました。