これからはErlangやScala、CCRのようなメッセージ伝達並列性が主流になる.
939 :
デフォルトの名無しさん:2010/05/26(水) 17:20:01
WindowsおよびはUnixでC++を使ってプログラミングしています。
4コアのCPUを使っていて、1スレッドのプログラムを実行したとき、
タスクマネージャで見ると使うコアが次々と変わっていくのですが
これを抑止する方法はありませんか?
Windows(Win32)ならsetThreadAffinityMask()
便乗で質問させて下さい。
スケジューリングから外して、このコアはこのプロセス(スレッド)専用だからねっ!!ってできますか?
そりゃ、無理だ。
DeviceDriverの挙動までは手が出せないからねぇ
>>943 うわーーー、知らなかった。
ありがとうございます。
Solarisなんて随分触ってなかったけど、ちょっとOpenSolarisでもいじってみます。
OpenMPで各スレッドをそれぞれのコアに貼り付けるにはどうしたらいいのでしょうか?
Linux、g++です。
947 :
デフォルトの名無しさん:2010/11/21(日) 08:47:05
あげ
948 :
デフォルトの名無しさん:2010/11/21(日) 10:52:53
Corei3なんですけどどうすればSSE2命令を並列に実行できますか?
949 :
デフォルトの名無しさん:2010/11/21(日) 10:56:46
GPUに汎用計算させたほうが行列演算は高速になりますか?
要はどうしたらいいんですか?
何をしたい訳?
それが判らないから聞いているんです。
ヲレには心当たりが無い。残念だったな。
まずは、パンツを脱ぐんだ
既にノーパンで全部剃ってるけどな。舐めても安全。
>>955 おいらの義妹はそんな下品なことは言わない。
マルチコアってマルチスレッドで効果があるみたいだけど
マルチプロセスだとどうなの?
windowsとかのバックグラウンドプロセスにも効果でてる?
>>957 M$のOSはしらんが、make -j<N> とかやるとちゃんと効いてるわな <Unix系OS
>>957 Windows のマルチプロセスは組みにくい。fork() にあたるものがない。
逆に、p-thread って誰得?と時々思う。
960 :
957:2011/01/27(木) 03:21:14
つまりですよ、マルチコアを意識して
マルチスレッドプログラミングをわざわざ書かなくても
常に他のプロセスにコアが割り当てられているから
アプリ側はふつうにシングルスレッドプログラムで
作れば十分なんじゃないかなーと思って聞いてみたわけです
十分かどうかは処理の内容によるでしょ。
スレッドの切り替えよりプロセスの切り替えの方がコストが掛かるし、
データの受け渡しも大掛かりになる。
ピクセル単位の画像処理なんかはスレッドを使うのが普通だろうし、
ウェブサーバとかなら I/O 待ちの時間が多いからマルチプロセスでも
良いんじゃねとか、そんな感じ。
不足すればHWを買い換えるなりすればいいから、好きな方で実装すればいい
963 :
デフォルトの名無しさん:2011/02/04(金) 02:10:38
マルチコアになったら関数型言語が主流になりますか?
でも、マルチコアにしてまで計算能力を向上させる意味ってあるんですか?
マルチコアになることのメリットが良く分かりません。
例えば、携帯電話とか、マルチコアになって何か凄いことができるようになったり
しますか?
>>963 >マルチコアになったら関数型言語が主流になりますか?
ならない。副作用が無いと並列度を抽出し易いとかは、絵に描いた餅。
>でも、マルチコアにしてまで計算能力を向上させる意味ってあるんですか?
あるよ。計算能力が上がれば今まで無かった様なプログラムが作れる様になったり、
プログラマが楽出来たりする。
>マルチコアになることのメリットが良く分かりません。
クロックを上げる方向の性能向上が頭打ちになったからマルチコアになったのであって、
シングルコアで性能が出せるならシングルコアの方が良かった。
>例えば、携帯電話とか、マルチコアになって何か凄いことができるようになったり
>しますか?
デュアルコアになると、レスポンスが向上したり、バックグラウンドでプロセスを動かし
続けたり出来て、分かり易い恩恵があるよ。マルチコアと言っても、携帯ならデュアルで
十分で、クアッドとかは要らないだろうね。
965 :
デフォルトの名無しさん:2011/02/04(金) 09:46:23
>>964 なるほど。
マルチコアの時代でもC++やJavaが主流のままなのでしょうか?
HPCの世界はもう既にマルチコアの時代だけど、C/C++ばかりだねぇ。
967 :
デフォルトの名無しさん:2011/02/04(金) 10:54:24
>>966 速さを重視する分野でC/C++を使うのは分かるんですが、生産性と両立させなければ
ならないような分野ではどうなんでしょうか?スレッド管理を手動で行う言語では、
大規模開発ではバグを誘発するような気がします
問題は、C/C++以外の言語をHPC用にチューンするコストを誰が掛けるかだな。
一応 Intel の TBB とかもあるけど、広範に受け入れられているかというとどうなんだろうね。
あ、C/C++ 以外の言語か。HPC は特殊な世界だから、カリカリにチューニング出来る
C や C++ が当分はのして行くと思うけどな。CPU 使用時間単位で課金されたら、
誰でもそうすると思われ。
971 :
デフォルトの名無しさん:2011/02/19(土) 17:07:21
行列の計算ですが高速化する方法ありますか?
for(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];
}
なるほど。まずは質問を投機的にマルチスレッド化したわけですね。
ワロタw
ダメだこりゃ。
976 :
デフォルトの名無しさん:2011/02/19(土) 19:43:08.14
根拠は?
並列構文使えば勝手に並列化してくれる
それが最適化されてるか検証が面倒。
hpc用にcで最適化するってのもなんだかなあと思う。
そこまでして性能出さないと予算取りにくいほど不景気なんだろうけど。
電気自動車の性能を上げる為にマイコン積まずにフルマニュアル化しましたみたいなもので。
違うな。要求性能が決まっているとしたら、pc100台要るところを1%高速化すれば1台減らせるんだよ。
1台じゃ高が知れているけど、それが10%で10台となればそれを達成するための人件費を設備費が上回ってくる。
でもその為に本来の研究者の利用者がc覚えたり最適化手法を覚えたりって、研究が停滞するだけだと思うけど。
まあ実際は助手とかに丸投げして助手がhpc使いこなすのに膨大な労力と時間を浪費してるだけだとは思うが。
んなもん、研究者が書いたものをSIerに高速化させるんだよ。
研究者が直接最終版までコーディングするなんてどんな低予算研究なんだ?
>>981 論文読むなりして、研究者が書いたものを高速化できるほど、頭のいい人間を
抱えているSIerは稀にしかない
SIerって土方の集まりだろ
歳三?
SIerは土方を丸投げするだけだから、知識はさらにない。
逆に今日びコードの書けない研究者はいらない子。
歳三?
肘肩腰。神速三段腹