ASAHIネット(
[URL]のjouwa/salonからホットコーナー(
[URL] )に転載したものから。
---
[URL]
のKenjiさんのコメント。
ブログのコメント欄に書くには、ちょっと長くなるので。
[URL]
超並列時代を迎える苦痛
ほんとねえ。昔、マッシブパラレル(超並列)といっても数百台のマシン、そ
れもでかいマシンが並べてという話だったのが、チップ上でそういうことをや
る時代が近づいているというんだもんね、おっとろしかこつばい、鮎原さん。
鮎原さんは、いいってば。
>問題の処理前の分割を行って並列処理を容易にする
これ、状態や参照の共有があると、大変ということです。
それがないようにしろと。
論理型の宣言的並行・並列性や関数型は、それがないんですよね。
変数は書き換え不可能な単一代入だしね(数学の変数と同じ)。
だから、ErlangやOzは並行・並列プログラミングが楽なんです。何万個も軽
量スレッドを生成できるし、並行・並列用の言語抽象もプログラミング言語が
備えているし。
CTMだと、第5章「メッセージ伝達並列性」で解説してあります。5.7で
Erlangとそのプログラミングを紹介して、OzでErlangのreceive操作を実装し
てみせてます。
Erlangって、最初はPrologで書いたんですね。それで、パターンマッチに
Prologの単一化の名残りがある。
[URL]
Erlang, Oz/Mozart, Prolog, 単一化
でも書いた話。
>共有資源のロックの頻度をできるだけ少なくする
これが、藤田さんがイプシロンを作るときに、並列CGで苦労したところ。
ピンボールゲームのようなリアルタイムのソフトを書くのに、ロックがはい
ると許容できないくらい遅くなるそうです。
あ、Intelのマルチコアのプロセッサは、キャッシュのコヒーレンスを維持
してくれないことがあるといってなあ。どういうときだっけ。忘れた。^^;
[URL]
リトルウイングから新Scheme\(^O^)/
セコメントをする