Garbage Collection

塵も積もれば山

目次

Blog 利用状況

ニュース

C++とかC#とか数学ネタを投下していく予定です。

[その他のページ]
日々の四方山話を綴った日記出水の日記帳

書庫

日記カテゴリ

[アルゴリズム]マルチコア

ネタ元>WindowsとC++:高性能アルゴリズムについて調べる

上記の記事を読むと、マルチコアで動作する時、
同じコアで実行するメモリは近くに配置し、
違うコアで実行するメモリは遠くに配置するべき、と書いています。

さて、以前書いたシェアソートの並列動作なのですが、
横ソートにおいては上記のマルチコア動作に向くメモリ配置になっています。

しかし、縦ソートに至っては並列動作に向かないパターンです。
良くないパターンとして紹介されている物と全く同じです。

今回の場合は”#pragma omp parallel for”を使ったものなので
自分でカリカリ内部動作を書いた場合とは違うのかもしれません。
ただ、キャッシュの読み直しという単語がちらほら見えるので、
ハードウェアの仕様のような感じで、ソフトウェア側でどうにかならない気がします。

シェアソートの縦ソートが遅いとなるといよいよ出番もないですね…。

#ということで、教えて詳しい人!

投稿日時 : 2008年10月30日 6:33

Feedback

# re: [アルゴリズム]マルチコア 2008/10/30 10:51 774RR

紹介記事だけど、シングルコアマルチコアに関係なく
現代CPUではソースレベルでキャッシュヒット率を考慮しとけ
と読めた。

でも。
仮想アドレス空間にマップされた実メモリアドレスがプログラマの勝手な期待通りに連続している保証はどこにもない
わけで、その辺はまた話が別かも。

# re: [アルゴリズム]マルチコア 2008/10/31 1:00 れい

> シェアソートの縦ソートが遅いとなるといよいよ出番もないですね…。

なんかもう手段のためには目的を選ばない、って感じですね。

# re: [アルゴリズム]マルチコア 2008/10/31 4:17 出水

>774RRさん
.NetFrameworkみたいな所だとますます手だし出来ないですね~
コンパイラが考えることで、プログラマはあんまり考えなくていいのかも

>れいさん
ソーティングネットワークのAKSはちょっと理解できてないんですけど、
今のところ効率よく分割/戻り値なしという条件なら
シェアソート以上のアルゴリズムがないなぁなんて思ってたんですよ

O(nlogn)系で効率よく分割出来て戻り値なしの方法がうまく出来ないか、
出来ないなら無さそうな理由がうまく説明できるか、ってところが整理できなくて
どーしたもんかな~と思ってたところにコレ

もうあいつのことは忘れます

# re: [アルゴリズム]マルチコア 2008/10/31 7:00 ちゃっぴ

ccNUMA 環境だと違ってくるとかそういう話?

現状だと Opteron とか Itanium とかじゃないと関係無さそう。

タイトル
名前
Url
コメント