【マルチコア】並列化について語る【使いこなせ】
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん
2006/01/18(水) 08:31:11それに伴い、ソフトウェアは並列化というパラダイムシフトが
求められています。効率のよく並列化を実現するためにはアル
ゴリズムやデータ構造といった部分を根本から見直す必要が
あります。しかし、トレンドができてからあまり時間が経って
ないため、そいういったノウハウが蓄積されていません。
そこで、マルチコアを生かすためのソフトウェア設計というのは
どういうものか?という議論をするためのスレッドを立てました。
ソフトウェアの並列化に対して考えのある人や、インターネット
上のリソース、論文等があればどんどん書き込んだりリンクを
貼ってください。
【関連スレ】
OpenMPプログラミング
http://pc8.2ch.net/test/read.cgi/tech/1102483474/l50
0937デフォルトの名無しさん
2010/03/13(土) 06:31:22http://techon.nikkeibp.co.jp/article/TOPCOL/20091209/178442/
この記事を思い出した。
理想はともかく現実的にはこういうアプローチも必要なんだろうね。
0938デフォルトの名無しさん
2010/03/13(土) 14:27:450939デフォルトの名無しさん
2010/05/26(水) 17:20:014コアのCPUを使っていて、1スレッドのプログラムを実行したとき、
タスクマネージャで見ると使うコアが次々と変わっていくのですが
これを抑止する方法はありませんか?
0940デフォルトの名無しさん
2010/05/26(水) 17:53:410941デフォルトの名無しさん
2010/05/26(水) 17:55:29スケジューリングから外して、このコアはこのプロセス(スレッド)専用だからねっ!!ってできますか?
0942デフォルトの名無しさん
2010/05/26(水) 19:20:17DeviceDriverの挙動までは手が出せないからねぇ
0943デフォルトの名無しさん
2010/05/26(水) 19:41:55Solaris では processor_bind(2) を使えば、スレッドを CPU に完全に貼付ける事が出来るよ。
同じ事をするコマンドで pbind(1M) というコマンドもあります。1スレッドのプログラムなら
コンテクストスイッチが無くなる分、性能も良くなります。
http://docs.sun.com/app/docs/doc/816-5167/processor-bind-2
http://docs.sun.com/app/docs/doc/816-5166/pbind-1m
http://developers.sun.com/solaris/articles/solaris_linux_app.html
>>941
Solaris では psrset(1M) コマンドで CPU のプールを作って、それをあるプロセス(スレッド)
だけに割り当てる事が出来るよ。psrset -f でその CPU がインタラプトを処理しない様にも
設定出来るから、デバイスドライバにも影響されず、ほぼ完全に CPU を占有出来ます。
http://docs.sun.com/app/docs/doc/816-5166/psrset-1m
http://developers.sun.com/solaris/articles/solaris_processor.html
http://docs.sun.com/app/docs/doc/816-5166/psradm-1m
0944デフォルトの名無しさん
2010/05/26(水) 22:17:14うわーーー、知らなかった。
ありがとうございます。
Solarisなんて随分触ってなかったけど、ちょっとOpenSolarisでもいじってみます。
0945デフォルトの名無しさん
2010/05/27(木) 15:18:38Linux、g++です。
0946デフォルトの名無しさん
2010/06/05(土) 06:47:40OpenMPプログラミング
0947デフォルトの名無しさん
2010/11/21(日) 08:47:050948デフォルトの名無しさん
2010/11/21(日) 10:52:530949デフォルトの名無しさん
2010/11/21(日) 10:56:460950デフォルトの名無しさん
2010/11/26(金) 23:03:020951デフォルトの名無しさん
2010/11/27(土) 02:17:480952デフォルトの名無しさん
2010/11/27(土) 02:35:330953デフォルトの名無しさん
2010/11/27(土) 02:43:010954デフォルトの名無しさん
2010/11/27(土) 15:58:500955デフォルトの名無しさん
2010/11/27(土) 16:24:340956デフォルトの名無しさん
2010/12/19(日) 03:41:25おいらの義妹はそんな下品なことは言わない。
0957デフォルトの名無しさん
2011/01/24(月) 16:01:47マルチプロセスだとどうなの?
windowsとかのバックグラウンドプロセスにも効果でてる?
0958デフォルトの名無しさん
2011/01/24(月) 18:19:30M$のOSはしらんが、make -j<N> とかやるとちゃんと効いてるわな <Unix系OS
0959デフォルトの名無しさん
2011/01/24(月) 22:40:02Windows のマルチプロセスは組みにくい。fork() にあたるものがない。
逆に、p-thread って誰得?と時々思う。
0960957
2011/01/27(木) 03:21:14マルチスレッドプログラミングをわざわざ書かなくても
常に他のプロセスにコアが割り当てられているから
アプリ側はふつうにシングルスレッドプログラムで
作れば十分なんじゃないかなーと思って聞いてみたわけです
0961デフォルトの名無しさん
2011/01/27(木) 03:59:01スレッドの切り替えよりプロセスの切り替えの方がコストが掛かるし、
データの受け渡しも大掛かりになる。
ピクセル単位の画像処理なんかはスレッドを使うのが普通だろうし、
ウェブサーバとかなら I/O 待ちの時間が多いからマルチプロセスでも
良いんじゃねとか、そんな感じ。
0962デフォルトの名無しさん
2011/01/27(木) 06:35:580963デフォルトの名無しさん
2011/02/04(金) 02:10:38でも、マルチコアにしてまで計算能力を向上させる意味ってあるんですか?
マルチコアになることのメリットが良く分かりません。
例えば、携帯電話とか、マルチコアになって何か凄いことができるようになったり
しますか?
0964デフォルトの名無しさん
2011/02/04(金) 02:42:36>マルチコアになったら関数型言語が主流になりますか?
ならない。副作用が無いと並列度を抽出し易いとかは、絵に描いた餅。
>でも、マルチコアにしてまで計算能力を向上させる意味ってあるんですか?
あるよ。計算能力が上がれば今まで無かった様なプログラムが作れる様になったり、
プログラマが楽出来たりする。
>マルチコアになることのメリットが良く分かりません。
クロックを上げる方向の性能向上が頭打ちになったからマルチコアになったのであって、
シングルコアで性能が出せるならシングルコアの方が良かった。
>例えば、携帯電話とか、マルチコアになって何か凄いことができるようになったり
>しますか?
デュアルコアになると、レスポンスが向上したり、バックグラウンドでプロセスを動かし
続けたり出来て、分かり易い恩恵があるよ。マルチコアと言っても、携帯ならデュアルで
十分で、クアッドとかは要らないだろうね。
0965デフォルトの名無しさん
2011/02/04(金) 09:46:23なるほど。
マルチコアの時代でもC++やJavaが主流のままなのでしょうか?
0966デフォルトの名無しさん
2011/02/04(金) 10:40:140967デフォルトの名無しさん
2011/02/04(金) 10:54:24速さを重視する分野でC/C++を使うのは分かるんですが、生産性と両立させなければ
ならないような分野ではどうなんでしょうか?スレッド管理を手動で行う言語では、
大規模開発ではバグを誘発するような気がします
0968デフォルトの名無しさん
2011/02/04(金) 10:56:560969デフォルトの名無しさん
2011/02/05(土) 00:02:490970デフォルトの名無しさん
2011/02/05(土) 00:14:14C や C++ が当分はのして行くと思うけどな。CPU 使用時間単位で課金されたら、
誰でもそうすると思われ。
0971デフォルトの名無しさん
2011/02/19(土) 17:07:21for(j=0;j<16;j++){
o=FG[a[j]]^FG[u1.m[j]];
p=FG[b[j]]^FG[u.m[j]];
for(i=0;i<16;i++){
d1[j]^=t[o][h1[p][i]];
d2[j]^=t[o][h2[p][i]];
}
buf[j]=d1[j];
buf[j+16]=d2[j];
}
0972デフォルトの名無しさん
2011/02/19(土) 17:08:400973デフォルトの名無しさん
2011/02/19(土) 17:34:160974デフォルトの名無しさん
2011/02/19(土) 17:38:290975デフォルトの名無しさん
2011/02/19(土) 19:38:09フォートランで書くといいと思うよ
0976デフォルトの名無しさん
2011/02/19(土) 19:43:08.140977デフォルトの名無しさん
2011/02/19(土) 20:04:11.600978デフォルトの名無しさん
2011/02/19(土) 22:04:24.31hpc用にcで最適化するってのもなんだかなあと思う。
そこまでして性能出さないと予算取りにくいほど不景気なんだろうけど。
電気自動車の性能を上げる為にマイコン積まずにフルマニュアル化しましたみたいなもので。
0979デフォルトの名無しさん
2011/02/20(日) 01:06:10.881台じゃ高が知れているけど、それが10%で10台となればそれを達成するための人件費を設備費が上回ってくる。
0980デフォルトの名無しさん
2011/02/20(日) 10:18:56.57まあ実際は助手とかに丸投げして助手がhpc使いこなすのに膨大な労力と時間を浪費してるだけだとは思うが。
0981デフォルトの名無しさん
2011/02/20(日) 10:37:52.88研究者が直接最終版までコーディングするなんてどんな低予算研究なんだ?
0982デフォルトの名無しさん
2011/02/21(月) 07:48:34.87論文読むなりして、研究者が書いたものを高速化できるほど、頭のいい人間を
抱えているSIerは稀にしかない
0983デフォルトの名無しさん
2011/02/21(月) 10:52:41.290984デフォルトの名無しさん
2011/02/21(月) 19:55:31.100985デフォルトの名無しさん
2011/02/21(月) 20:47:49.72逆に今日びコードの書けない研究者はいらない子。
0986デフォルトの名無しさん
2011/02/21(月) 21:00:12.240987デフォルトの名無しさん
2011/02/21(月) 21:04:16.14レス数が950を超えています。1000を超えると書き込みができなくなります。