タグ

ブックマーク / blog.unfindable.net (2)

  • スパコンで約2時間36分かかったという、5×5の魔方陣の全解列挙を、パソコンで試す(C ) | 配電盤

    魔方陣の解の列挙は並列化しやすそうな問題ですが、ここでの方針では、探索効率を上げるためには条件分岐が不可欠なので、(「数」を求めるだけだとしても)GPGPUでうまくやる方法がわかりません。そこで、CPUに載っているコアのみで並列化します(Xeon Phiなら簡単なのでしょうか→追記参照)。 一番外側の、0から(1<<25)-1まで変化する変数iのループをOpenMPで並列化します(schedule(guided)では遅くなります。schedule(auto)はVisual C++でサポートされたら試します)。変数iは上の図の緑の部分(カンで5個にしました)を各数5ビットで表現し、つなげたものです。マスに入りうる数は1から25までなので、5ビットというのはちょっと冗長ですが、とりあえずはよしとしましょう。 出力はバイナリ形式で、1つの解に25バイト使います(1つのマスに入る数を1バイトで表現

    スパコンで約2時間36分かかったという、5×5の魔方陣の全解列挙を、パソコンで試す(C ) | 配電盤
    kasumani
    kasumani 2014/03/16
    スパコンで約2時間36分かかったという、5×5の魔方陣の全解列挙を、パソコンで試す(C++) 筑波大学のスパコン「T2K-Tsukuba」で約2時間36分かけて5×5の魔方陣(≠魔法陣)の全解を求めたというニュースがありました。 Tags: fro
  • プログラマがC言語にこだわるべきでない0番目の理由 by Inquisitor

    新しいプログラミング言語を作りたいと思ったら、そのプロトタイプはCのような低級言語ではなく、高級言語で実装したほうがいいのではないでしょうか。もちろん実行時のパフォーマンスなどのために、最終的にC言語で実装するということはあるかもしれませんが(相対的な話ではありますが、C言語を低級あるいは低水準と呼ぶのが許せないという人は、K&Rの1ページ目を参照してください。日語訳では「はじめに」のp.2です。)。 Cは比較的“低水準”の言語である。この性格付けは非難の意味を込めているのではない。これは単に、Cが普通のコンビュータで扱う種類の、すなわち文字、数、アドレスを扱えるようになっているという意味である。もちろん、これらのデータを組み合わせて、現実の機械で実行されるような普通の算術論理演算でいろいろな処理を行なうことができる。(p. 2) 以下、題 プログラマがC言語を学ぶべきたった一つの理由

    プログラマがC言語にこだわるべきでない0番目の理由 by Inquisitor
    kasumani
    kasumani 2012/01/06
  • 1