14

さまざまなマシンでコンパイルして実行できる簡単なベンチマーク プログラムを書きたいと思っています。商用/オープンソースで入手可能なオプションを使用するのではなく、スレッド化とアルゴリズムの最適化手法をいじる独自のオプションが必要です。

フィボナッチ数列の n 番目の数を再帰的に計算し、数千回シード/rand() することを含む、私が既に使用しているカップルがあります。

比較的単純であるが、同時に計算集約型の (そしておそらく数学関連の) 他のアルゴリズムはありますか?

(これらの操作は C 言語で実装されることに注意してください。)

4

14 に答える 14

9

アッカーマン関数は通常楽しいものですが、一生のうちに終わらせたい場合は、非常に大きな入力を与えないでください。

于 2009-07-15T18:57:38.880 に答える
3

フラクタル

(さまざまな解像度で) C のフラクタル ソース (opengl なし)

于 2009-07-15T19:00:25.367 に答える
3

独自のものを作りたいとおっしゃっていたことは承知していますが、既存のベンチマークを参考にしてインスピレーションを得ることができるかもしれません。コンピューター言語ベンチマーク ゲームは、一連のベンチマークを通じて多くのプログラミング言語を実行してきました。おそらく、ベンチマークを見ていくつかのアイデアを得ることができます.

私の頭の上のいくつかの簡単なアイデア:

  • 行列の乗算: 2 つの大きな行列の乗算は比較的計算集約的ですが、キャッシュを考慮する必要があります。

  • 素数の生成

  • 整数因数分解

  • ODE を解くための数値的手法 - ルンゲクッタなど

于 2009-07-15T19:02:06.563 に答える
2

大きな行列の反転。

于 2009-07-15T18:57:46.727 に答える
2

大きな素数を計算したり、整数を因数分解したりできます。

于 2009-07-15T18:59:28.423 に答える
2

NAS Parallel Benchmarksをご覧ください。これらはもともとNASAが MPI を使用するスーパーコンピューター用に Fortran で作成したものですが (現在もその方法で利用できます)、現在利用可能な C、Java、および OpenMP の実装もあります。

これらのほとんどは、科学計算で使用される数値アルゴリズムを代表することを目的としているため、非常に計算集約的です。

于 2009-07-15T19:00:07.487 に答える
1

プロジェクト eulerには本当に素晴らしいものがいくつかあります。それらはすべて数学に関連しており、より高い値を使用したい場合は時間がかかる可能性があります。

于 2009-07-15T19:18:58.527 に答える
1

数千または数百万のpi桁を計算してみてください。そのタスクにはかなりの数の公式があります。

于 2009-07-15T19:03:05.623 に答える
0

並列処理を試したい場合は、多くの行列計算を行ってください。使用できる行列のサイズはメモリによって制限されますが、必要なだけ反復を行うことができます。

これにより、最新の CPU に搭載されている SIMD 命令にストレスがかかります。

于 2009-07-15T19:10:24.690 に答える
0

非常に大きな入力セットで tsort (Turbo Sort) を試すことができます。これは一般的な操作であると理解しています。

于 2009-07-15T19:32:08.093 に答える
0

素数を見つけるのはかなり時間がかかると考えられています。

于 2009-07-15T18:59:09.517 に答える
0

これは多くの追加を行います:

int c = 0; 
for (int n = 0; n < INT_MAX; n++)
    for (int m = 0; m < INT_MAX; m++)
        c++;

std::cout << c;
于 2009-07-15T18:59:57.817 に答える
0

ランゲージ シュートアウトのベンチマークをチェックしてください: http://shootout.alioth.debian.org/

ただし、ベンチマークは単なるベンチマークであり、必ずしも現実世界について多くのことを教えてくれるわけではなく、逆に誤解を招く可能性があります.

于 2009-07-15T19:02:30.277 に答える
0

NP-Complete問題のヒューリスティックは、CPU を集中的に使用するコードを取得するための楽しい方法です。Karps NP-Complete の問題の 1 つに対して、「解決策」をコーディングできます:) 。

于 2009-07-15T21:16:36.387 に答える