« 夢かうつつか | メイン | ゆとり教育とは言うけれど・・・ »
2009年07月07日
マイコンと並列処理
昔から、マイコンで並列処理って、どうやったらいいのかなあ、と考えていた。
せっかく1個あたりのマイコンは、VAXぐらいの性能は十分にあるわけで、
物理的に小さいことを生かせば、まあ、いわばメニーコアといえなくもない。
たとえばUSBコネクタつきのマイコンがあって、OSの1つのスレッドを担当させる。
USBハブでどんどん増やしていけば、マルチスレッド。
もちろんスレッドのほうが多いときは、1つのマイコンで複数のスレッドを担当させる。
マイコン(コア)の数が多いほど、マルチスレッドの処理能力があがる。
そのコア数は、動的に変更可能なわけだ。
昔、恩師が、デバイスとマテリアルの違い、という話をしていた。
マテリアルは、半分にしたら性能も半分になるもの。例えば「おもり」は、半分にすれば、「重さ」という性能は半分になる。
デバイスは、半分にしたら機能を損なうもの。例えばコンピュータ。
では、コンピュータがマテリアルになるためには?みたいな、ほとんど与太話だったが、この話を聞いたときから、ずっと心のどこかにひっかかっていたんだけど、このマイコンでマルチスレッドの話は、これに通じる話になるんじゃないだろうか。
マテリアルは、その構成要素(例えば原子や分子)の粒度が非常に小さいので、半分にしたら機能が半分になるわけで、コンピュータも、その構成要素の粒度を小さくすればマテリアルになるわけで、この話も理にかなっているといえなくもない。
並列計算機的には、素結合共有メモリなわけで、マイコン間の通信がボトルネックになるのは明らかなので、ここがポイントの予感。
あまりにも漠然とした話なので、問題をなにか具体化することを、ちょっと考えてみよう。
投稿者 akita : 2009年07月07日 08:41
コメント
なるほど
この話をヒントに
ボトルネックになるバスをあえて低粒度にすると
並列性、スケラビリティーが共に高いものができるかも
とか考えてみました。
ここでの粒度というのがバス幅なのかバス占有時間
なのか共有データのサイズそのものなのかはたまた
まったく別のファクターなのか
見極める必要がありそうですけど…
バス自体をインテリジェンスにしちゃえば
って結構おもしろそー
投稿者 ぎしちょう : 2009年07月13日 21:46
ぎしちょうさん、こんにちは(おひさしぶりです)
低粒度なバス、ですか。なるほど。低粒度というか、キャパシティの十分なバス、みたいな感じですかね。
バスがイニシアチブをとるコンピュータ、って、どんなもんなんですかね。
投稿者 akita : 2009年07月17日 21:03
うぅ〜ん DDMPとか?
イメージ的には生物の神経ネットワークみたいのが
思いうかびます。
投稿者 ぎしちょう : 2009年07月21日 21:38
DDMPですか・・・データフローマシン、ですよね。なんか違うかな?
投稿者 akita : 2009年07月27日 21:37
これはどうでしょう?
http://www.xmos.com/
投稿者 ぎしちょう : 2009年08月18日 20:04
これは見逃していました。節穴。
http://www.atmarkit.co.jp/fsys/zunouhoudan/091zunou/xmos_cpu.html
http://www.kumikomi.net/archives/2009/05/lsixmos_semiconductorxs1-g.php
あたりに解説がありますが、面白そうですね。(産業的にはアレかもしれませんけど)
Digi-Keyからも買えるようですね。
ただ、個人的には、イメージしているのと、ちょっと違うかなあ・・・
投稿者 akita : 2009年08月19日 08:36
私も産業的にアレなものにしか興味ないので
これで、バスアバータを能動的に切り替えたり
したら近いかなっと
投稿者 ぎしちょう : 2009年08月20日 10:04
そうですね、通信のところが、なんとなく違うかな・・・
投稿者 akita : 2009年08月20日 17:18
スレッド毎の通信を流せるらしいですけど
投稿者 ぎしちょう : 2009年08月21日 17:40
ふーむ。
投稿者 akita : 2009年08月21日 18:18