[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends-ml 10927] Re: Doug Lea 本



高橋(徹)です。

# 新人教育ではやることが多過ぎて、とてもマルチスレッドまで
# 踏み込めない・・・

   "The Murayama <locutus@xxxxxxxxxxxxxxxx>"さんは書きました:

> 「それぞれの処理の記述をシンプルにする(けど処理速度は微妙に遅くなる)」
> はマルチスレッドの範疇ではあっても,普通は並列処理の範疇には入らない.
> 「マルチスレッド」は「設計モデル」とかの世界で議論するのも可能でしょう.
そうです。なので、設計で検証することが可能と考えていました。
大抵ユニプロセッサ機で実行するので、マルチスレッドにしても実際には逐次処理
になってしまいます。処理のボトルネックとしては、プログラム内の同期以外にも
コンテクストスイッチ等のオーバーヘッドがかかってしまうことになります。

> これに対し並列処理の主題は「並列マシンを使った高速化」です.よって
> パフォーマンスの向上が第一の課題になります.逐次より遅くなったのでは,
> 高価な並列マシンを使う意味がないんですよ.だから実装のことも無視できない
> し,ハードウエアのことも知っていないと「並列プログラミング」は難しいです.
これはマルチプロセッサ機での話と思われますが、疎結合分散環境での並列処理も
「並列プログラミング」に含まれるのでしょうか?(素朴な疑問)
# そういえば最近グリッドコンピューティングという言葉が飛び交っています

> 並列プログラムでは,いわば通信で得られるデータの内容までが変化
> するような物なんですよ.しかも微妙なタイミングの影響も受ける.
> だから同期処理を変化させると受け取るデータも変わるし,そのデータを
> 元に行う条件分岐も全部変わる.だから扱いが難しい.
世の中全ては分かりかねますが、マルチプロセッサ機で並列度を上げて処理速度を
向上させよう、というニーズはそれほど多くないかと思います。用語として並列
プログラミングといっていても、実は処理の単純化で使用していることが多いのか
と思います。処理の高速化で使用したい分野で思いつくものとしては、
シミュレーション分野や解析(数値計算)分野でしょうか。計算結果(データ)が
影響を受けると結果が間違うことになりますね。

---
TAKAHASHI Toru