- 1 名前:デフォルトの名無しさん [2006/01/18(水) 08:31:11 ]
- 最近のCPUはマルチコアが技術トレンドになっています。
それに伴い、ソフトウェアは並列化というパラダイムシフトが 求められています。効率のよく並列化を実現するためにはアル ゴリズムやデータ構造といった部分を根本から見直す必要が あります。しかし、トレンドができてからあまり時間が経って ないため、そいういったノウハウが蓄積されていません。 そこで、マルチコアを生かすためのソフトウェア設計というのは どういうものか?という議論をするためのスレッドを立てました。 ソフトウェアの並列化に対して考えのある人や、インターネット 上のリソース、論文等があればどんどん書き込んだりリンクを 貼ってください。 【関連スレ】 OpenMPプログラミング pc8.2ch.net/test/read.cgi/tech/1102483474/l50
- 151 名前:デフォルトの名無しさん mailto:sage [2006/01/24(火) 18:51:41 ]
- スレッドプールってサーバなんかのトランザクション処理以外にも使うんだ?
どんな用途で使ってるの?
- 152 名前:デフォルトの名無しさん mailto:sage [2006/01/24(火) 18:56:57 ]
- スレッドプールはイベント駆動との中間みたいなもんか。
中で滞るものがあってもある程度緩衝材になるってのが シングルスレッドの純なイベント駆動に対するメリット? 同時に資源の消費しすぎを抑えられるってことね。
- 153 名前:デフォルトの名無しさん mailto:sage [2006/01/24(火) 19:00:38 ]
- イベントディスパッチの代わりにプールからスレッドを起動するのか。何か重そうな。
- 154 名前:デフォルトの名無しさん mailto:sage [2006/01/24(火) 19:11:53 ]
- 例えば、Winsock2系で(非標準だけど)最速といわれているIOCPは
スレッドプールを利用した仕組みだよ。
- 155 名前:デフォルトの名無しさん mailto:sage [2006/01/24(火) 19:17:25 ]
- >>151
プールに既にあるから起動しなくて良い。ので高速。 現状のシングルスレッドでのイベントディスパッチャが、 スレッド数1のスレッドプールに相当します。 例えば10,000程度の物をアレコレ処理するとき、 10,000個スレッドを作らずに、論理CPU数x2程度の スレッドに効率よく処理を分散できるとか。
- 156 名前:デフォルトの名無しさん mailto:sage [2006/01/24(火) 19:23:45 ]
- ふぅん、面白そうだね。ちょっと調べて実装してみたいな。
サンクス。
- 157 名前:デフォルトの名無しさん mailto:sage [2006/01/24(火) 19:45:30 ]
- とはいえ話にあったBGMにはスレッドプールは向かないんじゃね?
詰まっていて鳴らせませんじゃすまないし。
- 158 名前:デフォルトの名無しさん mailto:sage [2006/01/24(火) 19:54:09 ]
- 元々リニアにスケールする処理→スレッドプール
特殊な処理をメインスレッドから外出ししたい→普通にスレッド作る ...なんじゃないの。
- 159 名前:デフォルトの名無しさん mailto:sage [2006/01/24(火) 20:09:39 ]
- スレッドプールはシングルスレッドでもいいんだけどマルチプロセッサ
に不可分散させたい時に便利だってことかー?
- 160 名前:デフォルトの名無しさん mailto:sage [2006/01/24(火) 20:14:23 ]
- 簡単に別スレッド使える構文が欲しい。C++では何度も導入の
意見が出て却下され続けてるそうだが、 make_thread for(i=0; i<100; i++){ hogrhoge....; } って書いたら勝手にスレッド作ってメインは続行、for内は 独立したスレッドで動き出すみなたいな。 CreateThreadしたりオブジェクト作ったりマンドクセ
- 161 名前:デフォルトの名無しさん mailto:sage [2006/01/24(火) 20:18:40 ]
- 現状のsmpのままだとメモリのボトルネックがもっとひどい事にならない?
コア数が増えるとクロスバースイッチとか導入するPCも出るのかな?
- 162 名前:デフォルトの名無しさん mailto:sage [2006/01/24(火) 20:21:31 ]
- >>159
シングルコア・シングルプロセッサの場合でも、 とあるスレッドがI/Oで待たされてる間に他のスレッドで 他の処理ができる(かもしれない)、という普通のマルチ スレッドの利点も提供される。 イベントやトランザクションを処理するのに用いる。 スレッドは、1粒度の処理を行ったらプールに戻って 次に利用されるまでイベント待ちなどで待機する。 ずーっと続くセッションみたいなものの処理には無意味。 普通は>>155の「論理CPU数x2」とかよりもっと多くのスレッドを使う。
- 163 名前:デフォルトの名無しさん mailto:sage [2006/01/24(火) 20:22:31 ]
- >>160
スレッド生成クラスとラムダで事足りるからじゃないの? make_thread終了の同期とる方法をOSから隠蔽する方が面倒くさそうだし。
- 164 名前:デフォルトの名無しさん mailto:sage [2006/01/24(火) 20:33:48 ]
- >スレッド生成クラスとラムダ
それなあに?
- 165 名前:デフォルトの名無しさん mailto:sage [2006/01/24(火) 20:36:15 ]
- どっちかっていうと閉包欲しいよ閉包。
ちょっとスレッドとかにも便利だよ。
- 166 名前:デフォルトの名無しさん mailto:sage [2006/01/24(火) 20:50:57 ]
- make_thread foo();
ってやったら別スレッドで関数起動してくれるのが欲しい。
- 167 名前:デフォルトの名無しさん mailto:sage [2006/01/24(火) 20:52:28 ]
- 216.55.183.63/pdc2005/slides/TLN309_Sutter.ppt
- 168 名前:デフォルトの名無しさん mailto:sage [2006/01/24(火) 20:55:31 ]
- BGMの補充に関してはいわゆるブロッキングキューでいい
充填する側はキューサイズがいっぱいだとキューがあくまで待つ そして取り出す側はキューが取り出せる状態になるまで待つ 取り出す側が待つようだと音が途切れてるので意味はないけど、 充填する側をキューサイズでコントロールできるとバッファのサイズを コントロールしたり自前でリングバッファ持ったり待機させたりとか 面倒なことはしないですむ ロジックだけに集中できるってことだーね こういうのをJavaとかは用意してる ほかにもカウントダウンラッチとかサイケリックバリアとか優先度つきキューとかもある もうロック処理も優先順位つけたり細かく動けるようになったし 使い方は難しいがロックフリーでスレッドセーフのアトミックもある ソフトに限らずハードも異なるクロックでキュー使うの普通だし そういう考え方は必要だと思う おいしいところは真似しないとな
- 169 名前:デフォルトの名無しさん mailto:sage [2006/01/24(火) 20:59:42 ]
- で、まあ、今話題になっているような内容は
マルチコアとは直接関係無く 普通にマルチスレッド、或いはマルチプロセッサに関する話題でして。 ↓以下ループ
- 170 名前:デフォルトの名無しさん mailto:sage [2006/01/24(火) 21:33:12 ]
- 一々、茶々入れんと気が済まんのか。御主は。
- 171 名前:デフォルトの名無しさん mailto:sage [2006/01/24(火) 21:45:26 ]
- 普通にマルチスレッドの話でいいんでないの?
スレの名前も並列化だけだし。 マルチコアが普及することによって・・・というだけでしょ。
- 172 名前:デフォルトの名無しさん mailto:sage [2006/01/24(火) 21:52:45 ]
- あっちよりこっちが賑わってるのはスレタイの勝利ですか
- 173 名前:デフォルトの名無しさん mailto:sage [2006/01/24(火) 21:58:02 ]
- >>172
あっちってOpenMPスレ?
- 174 名前:デフォルトの名無しさん mailto:sage [2006/01/24(火) 22:14:53 ]
- マルチスレッドって名前付いてるスレ
- 175 名前:デフォルトの名無しさん mailto:sage [2006/01/24(火) 22:25:37 ]
- まあ、賑わってるって言ったって、住人の顔ぶれは
ほとんど変わらないと思うけどな。
- 176 名前:デフォルトの名無しさん mailto:sage [2006/01/24(火) 22:31:25 ]
- あっちはC+Win32ベースでしかも基本的なところから先に進んでない
単純な排他制御だけではお話になりませぬ ロジックとしてどういうのがいいかという話のレベルまでいってないんだよな >>1とかみてもこっちのほうが広い目というかもっと上位の話題にみえる マルチコアを生かすのに簡単なのがマルチスレッドってだけで マルチスレッド以外で現実的な並列プログラミングの方法があれば・・・というところだろう
- 177 名前:デフォルトの名無しさん mailto:sage [2006/01/24(火) 23:14:45 ]
- このスレッドの場合は極端な事を言い出しても、
まだまだ使い古されて無い技術だから叩きづらいんだよ だから好き勝手に色々な事が言える
- 178 名前:デフォルトの名無しさん mailto:sage [2006/01/24(火) 23:16:55 ]
- >>164
多分、どっかの誰かが作ったスクリプト言語だったと思う
- 179 名前:デフォルトの名無しさん mailto:sage [2006/01/24(火) 23:19:21 ]
- まあ結局、並列化を効率よくやろうとすると、自前でスクリプト言語を作るか、
現時点で存在するスクリプト言語に頼るかの、二者択一になってくるんだよな
- 180 名前:デフォルトの名無しさん mailto:sage [2006/01/24(火) 23:20:46 ]
- あるいは、同期機能を駆使してC++で作るとか・・・
- 181 名前:デフォルトの名無しさん mailto:sage [2006/01/24(火) 23:23:25 ]
- でも、自前でスクリプト言語を作ったりすると、
わざわざマルチスレッドにする必然性が、 高速化以外には全く無くなったりする罠。w
- 182 名前:デフォルトの名無しさん mailto:sage [2006/01/24(火) 23:28:21 ]
- Javaもまあ、スクリプト言語の一種といえば一種か
- 183 名前:デフォルトの名無しさん mailto:sage [2006/01/24(火) 23:36:41 ]
- >>160
一カ所のメモリーに対する多重アクセスを防ぐのが難しくなるからかと
- 184 名前:デフォルトの名無しさん mailto:sage [2006/01/24(火) 23:36:58 ]
- >>178
Boost か何かのライブラリの機能でしょ。
- 185 名前:デフォルトの名無しさん mailto:sage [2006/01/24(火) 23:38:03 ]
- >>179
スクリプト言語は、GC という並列化と相性が悪い物を抱え込む事になる。
- 186 名前:デフォルトの名無しさん mailto:sage [2006/01/24(火) 23:38:23 ]
- 何でマルチコアの話で「スクリプト言語」がでてくるんだ?
- 187 名前:デフォルトの名無しさん mailto:sage [2006/01/24(火) 23:40:51 ]
- 気にしちゃダメ
- 188 名前:デフォルトの名無しさん mailto:sage [2006/01/24(火) 23:44:35 ]
- >>186
スレッドの管理が面倒だからかと 面倒な処理は、誰かが勝手にやってくれる方が楽だからな
- 189 名前:デフォルトの名無しさん mailto:sage [2006/01/25(水) 00:15:33 ]
- >>160
Javaならすぐかけるのにね
- 190 名前:デフォルトの名無しさん mailto:sage [2006/01/25(水) 00:31:21 ]
- そろそろC++も言語にスレッドを組み込んでしまって、何らかの
シンタックスシュガーが欲しいところ。
- 191 名前:デフォルトの名無しさん mailto:sage [2006/01/25(水) 01:46:14 ]
- たしかにJavaだと
Thread t = new Thread(){ public void run(){ for(int i=0;i<100;i++){ hogehoge } } }.start(); hugehuge//メインスレッドの処理 t.join();//おわるまでまつ とインナークラスでかけるな スタック変数とのやり取りでは面倒なことになるが
- 192 名前:デフォルトの名無しさん mailto:sage [2006/01/25(水) 02:00:13 ]
- スレッドの話はスレ違いだろ。スレッドだけにスレ違いw
- 193 名前:デフォルトの名無しさん mailto:sage [2006/01/25(水) 06:15:51 ]
- >>191
へ〜、Javaだと仮想関数をそんな風に作れるんだ・・・
- 194 名前:デフォルトの名無しさん mailto:sage [2006/01/25(水) 09:46:54 ]
- マルチコア時代もJavaで決まり!!!
ドントネット死滅ケテーイ(禿藁嘲笑)
- 195 名前:デフォルトの名無しさん mailto:sage [2006/01/25(水) 11:01:49 ]
- >>191
記述は楽なんだけど、外側のローカル変数を受け継いで欲しい。 中の処理にパラメータはどうやって渡すのがお行儀いいの? >>193 仮想関数?
- 196 名前:デフォルトの名無しさん mailto:sage [2006/01/25(水) 12:24:58 ]
- >>195
受け継ぐだろ。finalにするだけで。 final必要にしたのは、リークが見つかりにくくなるからとSUN社員のブログか何かに書いてあった。 ぜんぜん並列と関係ないな…。
- 197 名前:デフォルトの名無しさん mailto:sage [2006/01/25(水) 12:54:27 ]
- final宣言されたローカル変う右派コンストラクタでコピーされて渡されてる
そもそもfinalは変更が不可能なのでお手軽に変数を渡すわけにはいかないよ 普通にクラス作ればいいだけだけどね
- 198 名前:デフォルトの名無しさん mailto:sage [2006/01/25(水) 12:58:30 ]
- >>191
>>160の例はそういうことじゃなくて、i=0からi=99までの初期状態を持つ 100個のスレッドの生成と実行と待ち合わせが簡易な構文でできればなー、 という話なのでは? そうじゃないならCでも関数一個定義するだけだからそう面倒じゃないし、 このスレ的に迫力ないし。 >>196 ホント?Javaっていつのまにかクロージャが使えるように成ってたんだ。 世の中には信じられないようなことが起きているなあ。
- 199 名前:デフォルトの名無しさん mailto:sage [2006/01/25(水) 13:42:21 ]
- Javaのそれをクロージャと呼ぶと、変な人が湧いてくるよ。
- 200 名前:デフォルトの名無しさん mailto:sage [2006/01/25(水) 15:58:45 ]
- >>133
お前はスレッドの優先度を設定しないアホプログラマか。
- 201 名前:デフォルトの名無しさん mailto:sage [2006/01/25(水) 16:55:05 ]
- Win32限定なら、QueueUserWorkItem()一発かな。
自動的にスレッドプールを作って関数を実行してくれる。
- 202 名前:デフォルトの名無しさん mailto:sage [2006/01/25(水) 19:01:32 ]
- >>198
匿名内部クラスでぐぐれ
- 203 名前:デフォルトの名無しさん mailto:sage [2006/01/25(水) 23:28:05 ]
- マルチスレッドなんて時代遅れ。
これからはマルチコア。これだね。
- 204 名前:デフォルトの名無しさん mailto:sage [2006/01/26(木) 00:12:15 ]
- >>199
コンパイラ・スクリプトエンジン相談室によく出没するあいつらか?
- 205 名前:デフォルトの名無しさん mailto:sage [2006/01/26(木) 00:13:24 ]
- Lispこそがすべての起源。
Lispを知らずしてプログラミングを語るべからず。
- 206 名前:デフォルトの名無しさん mailto:sage [2006/01/26(木) 01:06:43 ]
- >>200
いや、プライオリティの問題もあるが、それだけじゃない。
- 207 名前:デフォルトの名無しさん mailto:sage [2006/01/26(木) 03:25:18 ]
- マルチコアだと重いタスクを裏に回せるのがメリットかね。
シングルコアで重いタスクを裏に回しても、裏のタスクの 進行が遅くなるか表のタスクが足を引っ張られることが 多い。 マルチコアなら重いタスク専門に1コア割り振れるから 表はノーペナルティ(に近い速度)で動ける。 まあ重いったって基本的にはI/Oとメモリを大量に使う 処理ぐらいしかないんだけどな。
- 208 名前:デフォルトの名無しさん mailto:sage [2006/01/26(木) 03:36:50 ]
- ×マルチコアなら
〇マルチプロセッサ(HTT含)なら
- 209 名前:デフォルトの名無しさん mailto:sage [2006/01/26(木) 08:43:17 ]
- で、結局、バス幅とバスクロックの壁はどうにかなりますか?
- 210 名前:デフォルトの名無しさん mailto:sage [2006/01/26(木) 09:03:54 ]
- >>206
いくらプライオリティが低くても、 一旦CPUを割り当てられたら、割り込みがかかるまで、一定時間はCPUを占有する、 という問題はあるけれど、ユーザのインタラクティブな操作は割り込みをかけるので問題なし。
- 211 名前:デフォルトの名無しさん mailto:sage [2006/01/26(木) 09:07:08 ]
- スループットを犠牲にしてでもレスポンスを良くしたければ、
CPUの割り当て時間を短くしてしまうのも手ですよ。 たとえばWindowsの場合は、HALによっては変更をサポートしてる。 ちなみにデフォルト値がWindows2000の場合、 マルチプロセッサだとシングルプロセッサの1.5倍の時間に設定される。 WindowsXPの場合、シングルプロセッサでも、マルチプロセッサと同じ時間に設定される。 WindowsXPがモッサリな原因の1つが、1.5倍に設定されたことだよ。
- 212 名前:デフォルトの名無しさん mailto:sage [2006/01/26(木) 13:16:58 ]
- >>211
アフィニティを下げたら各コアのキャッシュが汚れるから、デュアルコア時のメリット薄いんじゃないかな。 シェアードキャッシュなら良いんだろうけど、普通 L1 はシェアしないでしょ。
- 213 名前:デフォルトの名無しさん mailto:sage [2006/01/26(木) 14:46:16 ]
- インテルのデュアルって肩並べて爆熱してるだけのツインプロセッサじゃないのか?
- 214 名前:デフォルトの名無しさん mailto:sage [2006/01/26(木) 15:46:58 ]
- IntelCoreしらんのか
- 215 名前:デフォルトの名無しさん mailto:sage [2006/01/26(木) 17:54:54 ]
- しらんがな
- 216 名前:デフォルトの名無しさん mailto:sage [2006/01/26(木) 18:13:20 ]
- >211から>212へ行く話の流れがわからない。
>212は何に関するaffinityのことを言っているの? CPUの割り当て時間との関係は?
- 217 名前:デフォルトの名無しさん mailto:sage [2006/01/26(木) 23:50:22 ]
- Windows では Thread Affinity って言葉は使わないのかな。
と思ったが、>>211 は CPU Quantum の事を言っていたのか... スマソ。勘違いしてた。
- 218 名前:デフォルトの名無しさん mailto:sage [2006/01/27(金) 22:22:57 ]
- Windowsでアフィニティと言えば、
プロセスやスレッドを特定のCPUだけにしか割り当てないようにアプリがOSにお願いすることだよね。
- 219 名前:デフォルトの名無しさん mailto:sage [2006/01/28(土) 05:00:41 ]
- それは UNIX で Processor Bind と呼んでる機能かな。
- 220 名前:デフォルトの名無しさん mailto:sage [2006/01/29(日) 18:42:42 ]
- 名前を前例に倣わんのはMSの悪いところ。とはいえスレッド関連は
NTのほうがUNIXより早いんかね?
- 221 名前:デフォルトの名無しさん mailto:sage [2006/01/29(日) 22:15:40 ]
- お前ら並列プログラミングを語る前にLispについて学べ
- 222 名前:デフォルトの名無しさん mailto:sage [2006/01/29(日) 22:23:30 ]
- >>221
なんで?いまの並列化言語は論理型のほうがすすんでないか?
- 223 名前:デフォルトの名無しさん mailto:sage [2006/01/29(日) 22:43:33 ]
- Lispを知らずしてプログラミング言語を語るべからず
ム板にいながらこんな常識すら知らないとは・・・
- 224 名前:デフォルトの名無しさん mailto:sage [2006/01/29(日) 22:46:33 ]
- >>223
各所で Lisp を貶めるのは止めてくれ
- 225 名前:デフォルトの名無しさん mailto:sage [2006/01/29(日) 22:57:15 ]
- >>223
おまえみたいなのがいるからLisp使いがバカにされる
- 226 名前:デフォルトの名無しさん mailto:sage [2006/01/29(日) 23:23:26 ]
- >>223はこういう念仏を唱えるだけのアホウがいる、という話かと思ったら
アホウ当人だったのか。 こいつ、どうせLispスレじゃ何にもレスしてないよ。 以前もRuby使えないくせにあちこちのスレにRuby万歳突撃やってた基地外がいたが、 同一人物かもしれん。
- 227 名前:デフォルトの名無しさん mailto:sage [2006/02/02(木) 19:13:07 ]
- そんなことしてるのがリアルに居るとは信じられんが、カナシス
- 228 名前:デフォルトの名無しさん mailto:sage [2006/02/02(木) 23:35:39 ]
- 正直なところ、Lisp知らん奴が語ってるのって、幼稚なんだよね。
本質でない、些細な部分に無駄に労力を費やしてるって感じ。 議論も設計もコーディングもスマートにやれるのがLisp、 これを学ばない手はないね。
- 229 名前:デフォルトの名無しさん mailto:sage [2006/02/02(木) 23:41:51 ]
- >>228
>>224
- 230 名前:デフォルトの名無しさん mailto:sage [2006/02/03(金) 03:19:53 ]
- Lispって何でもありすぎる。あれならマシン語で
プログラミングしてるのと代わらんような。 適度に制限されたフレームを提供するのが言語の大事な役割 というキガス。
- 231 名前:デフォルトの名無しさん mailto:sage [2006/02/03(金) 04:00:13 ]
- >>230
>適度に制限されたフレーム こういうのは時間とともに綻びが生じて来るから、新しいパラダイムが来たら 無理矢理建て増しするハメになるよ。既定のフレームに沿わなくてはいけない 環境では、未知の問題への適応能力も自ずと低下してしまうから、Lisp の 出自を考えると受け入れられないだろうね。 とは言っても、Lisp は元祖超高級言語なわけで、マシン語と比較する物では 無いでしょう。適度な強制が好きなあなたには Python をお勧めします。 あ、それから…、 ここは並列化のスレなんで、言語の善し悪しの話は完璧にスレ違いです。 お引き取りください。
- 232 名前:デフォルトの名無しさん mailto:sage [2006/02/03(金) 04:49:07 ]
- 俺はlisp知らんけど、
もし本当にlispが並列処理向きだったとして 現状のlispインタプリタは、マルチスレッドで並列処理してるのか? 仮にマルチスレッド動作しているとしても 並列可能な処理数はかなり大幅に増減すると思うのだが(for_eachとかあったよな?) 全部並列にやろうとするのか?スレッド数も増減させて。 まあ、スレッドプールとか使ってうまくやっているのかも知れないが。
- 233 名前:デフォルトの名無しさん mailto:sage [2006/02/03(金) 04:57:20 ]
- >>232
>もし本当にlispが並列処理向きだったとして Common Lisp の事なら、そもそも ANSI 規格では並列化は考慮されていない。 フリーの実装に限って言えば、マルチスレッドのコンパイラは少ない。 並列/分散処理の研究に Lisp が使われてたりはあったと思う。
- 234 名前:デフォルトの名無しさん mailto:sage [2006/02/03(金) 05:03:49 ]
- 並列化言語の側も盛り上がってないし、今の並列処理の枠組みは pthread とかに
依存しているんで、今後も C とか Java でどうするかって話が主流なんじゃないかな。 関数型言語にもちっと頑張って欲しい所。
- 235 名前:デフォルトの名無しさん mailto:sage [2006/02/03(金) 09:51:27 ]
- どの言語がいいだの悪いだのはモノ作れるようになってから語れ
('A`)
- 236 名前:デフォルトの名無しさん mailto:sage [2006/02/03(金) 09:57:14 ]
- 自分で言語を作るのは、手間がかかるんだよ。w
続きは「コンパイラ・スクリプトエンジン」のスレッドでやらないか?
- 237 名前:デフォルトの名無しさん mailto:sage [2006/02/03(金) 21:26:44 ]
- 別に実装の話まで入り込む必要は無いんだけど、並列化を支援する言語のフィーチャーに
どんな物があるのかは興味がある。
- 238 名前:デフォルトの名無しさん mailto:sage [2006/02/04(土) 00:05:15 ]
- >>237
そういう話題は、「マルチスレッドプログラミング相談室」で。
- 239 名前:デフォルトの名無しさん mailto:sage [2006/02/04(土) 05:24:48 ]
- あっちは実践、こっちは理論や研究レベルってことで、こっちでもいいんじゃない?
並列化の支援というか、上にもあったと思うけど、 関数型言語なんかはプログラマが並列化なんか気にせずに並列化できたりする、理屈の上では。 これなんか実際に、後から何スレッドで動かすか指定するみたい。 www.haskell.org/haskellwiki/GHC/Concurrency#Multiprocessor_GHC
- 240 名前:デフォルトの名無しさん mailto:sage [2006/02/04(土) 05:28:19 ]
- と思ったら普通にプログラムの方でも指定するみたいだな。
並列に出来るからって勝手に全部並列化したらオーバーヘッドの方が大きくなっちまうか。
- 241 名前:デフォルトの名無しさん mailto:sage [2006/02/04(土) 13:27:34 ]
- ウザいLisp厨のせいで折角のふいんきが台無しだな
- 242 名前:デフォルトの名無しさん mailto:sage [2006/02/11(土) 19:50:33 ]
- スレ頓挫か?
- 243 名前:デフォルトの名無しさん mailto:sage [2006/02/11(土) 20:06:40 ]
- なんかネタがねぇ。だれかネタ提供してくれ。
www.coins-project.org/ そうそう、こういうのを最近みつけた。 日本のコンパイラ界の重鎮、中田育男先生とか、その他にも Javassistの千葉滋先生とかオールスターメンバーっぽい。 SIMDによる自動並列化や、自動的に普通のコードをOpenMPに 変換してくれたりするらしい。関連した論文もたくさんでて いるみたい。 個人的には大学で研究やっている先生方が、どの程度の実用的な コンパイラがつくれるか注目している。マイクロソフトやインテル なんかとも張り合えると思っているんでだけど、期待しすぎ?
- 244 名前:デフォルトの名無しさん [2006/02/11(土) 20:12:43 ]
- たまにはageとく
- 245 名前:デフォルトの名無しさん mailto:sage [2006/02/11(土) 21:05:00 ]
- -‐-
__ 〃 ヽ ヽ\ ノノノ)ヘ)、!〉 (0_)! (┃┃〈リ はわわ〜マルチが245ゲットですぅ〜〜 Vレリ、" lフ/ (  ̄ ̄ ̄《目 | ===《目 |__| ‖ ∠|_|_|_|_ゝ ‖ ∧__∧ |__|_| ‖ ┝・∀・┥トララーも2ゲット。 | | | ‖ ( ) |__|__| ‖ |〓 | 〓| | \\ 皿皿 (__) __).
- 246 名前:デフォルトの名無しさん mailto:sage [2006/02/12(日) 10:34:53 ]
- トララーがワカンネ
- 247 名前:デフォルトの名無しさん mailto:sage [2006/02/12(日) 23:55:41 ]
- OSがプリエンプティブであればマルチコアかどうかは
さほど問題ではないと思うのだがどうか。
- 248 名前:デフォルトの名無しさん mailto:sage [2006/02/13(月) 00:18:59 ]
- >>247
それは必要条件であって十分条件じゃない。 そもそも何に対して問題無いって言ってる訳さ? スケジューラがプリエンプティブに出来ていたら、カーネルが ジャイアントロックしても問題無い? 大体、マルチコアつっても色々ある訳だが、どのマルチコアを 指して問題無いって言ってるんだ? 非対称コアなのか対称なのか、キャッシュは共有されている のかいないのか、スレッディングはあるのか無いのか、それは SMT なのか CGMT なのか FGMT なのか?? NUMA なマルチプロセッサとマルチコアじゃ最適化ポイントが 全然違うんだぜ。 それに、マルチコアは OS だけの問題じゃ無い。コンパイラは CPU の実装を理解して最適化を掛けているのか、アプリは MT でスケールするように作られているのか??? ネタ振りとしてはこれくらいで良いか?
- 249 名前:デフォルトの名無しさん mailto:sage [2006/02/13(月) 10:57:19 ]
- シングルスレッド最強
- 250 名前:デフォルトの名無しさん mailto:sage [2006/02/13(月) 20:52:13 ]
- シングルスレッドで作って、適当にexecすればいいじゃん。
何を悩んでいるのかわからない。
- 251 名前:デフォルトの名無しさん mailto:sage [2006/02/13(月) 20:58:46 ]
- もう面倒くさいよ。
|

|