# 情報系としては非常に阿呆な質問をする事をお許し下さい。
今まで 1CPU マシンでプログラムを書いていましたが、今年の春に 2CPU の
SPARC マシンが届いて、当初は「CPUを2つ使うプログラムを書くの(を勉強
すること)も面倒だし、計算プロセスを 2つ同時に実行して、1計算あたり
の計算効率はにばーいにばーい」と喜んでいました。さすがにそれは阿呆だ
ろうと当初から分かっていましたのですが、問題を先伸ばしにしていました。
で、CPUを2つ同時に利用するプログラムを書いて計算時間を短縮しようと、
ようやく重い腰を上げたのですが、どのようにそれを実現するのかを全く知
りません。「SMP プログラミング」といったキーワードでぐぐると、MPI の
プログラミングに関するページがヒットしますが、MPI プログラミングと同
様の手法でコーディングしてコンパイルすると 2CPU を使うバイナリが生成
されるのでしょうか。
実際に試してみるのが一番という気もする…。
--
柏崎 礼生 (Hiroki Kashiwazaki)@HUIIC
Ph.D candidate in the Division of Electronics & Information
Engineering, Hokkaido University
mailto:r...@cc.hokudai.ac.jp
Tel:+81-11-706-2998
In article <86d6bm...@xh6.cc.hokudai.ac.jp>, Hiroki Kashiwazaki <r...@cc.hokudai.ac.jp> writes
> で、CPUを2つ同時に利用するプログラムを書いて計算時間を短縮しようと、
> ようやく重い腰を上げたのですが、どのようにそれを実現するのかを全く知
> りません。「SMP プログラミング」といったキーワードでぐぐると、MPI の
> プログラミングに関するページがヒットしますが、MPI プログラミングと同
> 様の手法でコーディングしてコンパイルすると 2CPU を使うバイナリが生成
> されるのでしょうか。
SMPでMPIが出て来るのかなぁ。MPI は、どっちかっていうとPCクラ
スタみたいなもの向きかなぁ。
SPARC Dual CPU ならば、スレッドを使う方が良いんじゃないかな。
CPUの割当てを指示する必要があるのでいろいろやってみてね。
スレッドは低レベルなので、高レベルなものが欲しいなら、
http://supertech.lcs.mit.edu/cilk/
なんてもの面白いかもね。
---
Shinji KONO @ Information Engineering, University of the Ryukyus,
河野真治 @ 琉球大学工学部情報工学科,
At 21 Nov 2003 01:32:34 GMT,
Shinji KONO wrote:
> SMPでMPIが出て来るのかなぁ。MPI は、どっちかっていうとPCクラ
> スタみたいなもの向きかなぁ。
だと僕も思っていたんですよね。メインフレーム上で MPIプログラミング
みたいな講義が以前あって、MPI は、そこでちまちまいじった事があるの
ですが、SMP とはまた違うよなあと。
> SPARC Dual CPU ならば、スレッドを使う方が良いんじゃないかな。
> CPUの割当てを指示する必要があるのでいろいろやってみてね。
なるほど。やってみます。こんなの見つけました。docs.sun.com は宝の
山ですな。
http://docs.sun.com/db/doc/806-7118?l=ja&q=%a5%de%a5%eb%a5%c1%a5%b9%a5%ec%a5%c3%a5%c9
> スレッドは低レベルなので、高レベルなものが欲しいなら、
>
> http://supertech.lcs.mit.edu/cilk/
>
> なんてもの面白いかもね。
5へぇ~
# ド素人
Hiroki Kashiwazaki wrote:
>
> で、CPUを2つ同時に利用するプログラムを書いて計算時間を短縮しようと、
> ようやく重い腰を上げたのですが、どのようにそれを実現するのかを全く知
> りません。
それって OSの役割だという話を聞いたことがあるような気がするのですが。
--
In article <86d6bm...@xh6.cc.hokudai.ac.jp>
Hiroki Kashiwazaki <r...@cc.hokudai.ac.jp> writes:
> 柏崎@北海道です。
> で、CPUを2つ同時に利用するプログラムを書いて計算時間を短縮しようと、
> ようやく重い腰を上げたのですが、どのようにそれを実現するのかを全く知
> りません。
問題の性質によるのですが、性質がよくて単にデータを分割しても
いいという話なら、1番お奨めは、今までの逐次のプログラムを2
個同時に走らせることです。たとえば、全部で 100 個のデータに
ついて計算するなら、前半 50 個と後半 50 個にわけて、2つ走ら
せるわけです。問題の性質がよくて依存関係がないものなら、これ
でOK。
> 「SMP プログラミング」といったキーワードでぐぐると、MPI の
> プログラミングに関するページがヒットしますが、MPI プログラミングと同
> 様の手法でコーディングしてコンパイルすると 2CPU を使うバイナリが生成
> されるのでしょうか。
MPI よりは、POSIX Threads (Pthreads) を使う方がいです。ルー
プ間で依存関係があるなら、バリア同期を使うかタスクバッグがい
いでしょう。2CPUでも、バランスが完全に取れるとは限らない
ので、問題を10個くらいに分割するのがいいかと思います。
ニュースグループは、Followup-To: fj.comp.parallel でしょうか。
\\ 新城 靖 (しんじょう やすし) \\
\\ 筑波大学 電子・情報 \\