Google グループは Usenet の新規の投稿と購読のサポートを終了しました。過去のコンテンツは引き続き閲覧できます。
表示しない

[Q] programming on smp

閲覧: 0 回
最初の未読メッセージにスキップ

Hiroki Kashiwazaki

未読、
2003/11/20 19:00:532003/11/20
To:
柏崎@北海道です。

# 情報系としては非常に阿呆な質問をする事をお許し下さい。

今まで 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

Shinji KONO

未読、
2003/11/20 20:32:342003/11/20
To:
河野真治 @ 琉球大学情報工学です。

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,
河野真治 @ 琉球大学工学部情報工学科,

Hiroki Kashiwazaki

未読、
2003/11/21 0:29:212003/11/21
To:
柏崎@北海道です。

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へぇ~

Y.Sone

未読、
2003/11/21 12:45:202003/11/21
To:
曽根です

# ド素人

Hiroki Kashiwazaki wrote:
>
> で、CPUを2つ同時に利用するプログラムを書いて計算時間を短縮しようと、
> ようやく重い腰を上げたのですが、どのようにそれを実現するのかを全く知
> りません。

それって OSの役割だという話を聞いたことがあるような気がするのですが。

--

Yasushi Shinjo

未読、
2003/11/22 11:37:152003/11/22
To:
新城@筑波大学情報です。こんにちは。

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 でしょうか。

\\ 新城 靖 (しんじょう やすし) \\
\\ 筑波大学 電子・情報       \\

新着メール 0 件