2

私は、太陽放射の反射を計算するためのC ++コードを作成しました(レイトレーシングの原理に基づいています)。私はいくつかの加速技術を含めました。私の記事では、これらのアルゴリズムを正当化する必要があります。私は純粋にタイムベースからそれを行うつもりでしたが、@ weberc2によるコメント、これが最善の解決策ではないと信じています。

私は、ボトルネックなどを特定するのに役立つ、VerysleepyAMDCodeAnalystなどのコード分析ソフトウェアを見てきました 。

スーパーバイザーはおそらくプログラミングの知識が非常に乏しいため、時間ベースの分析が最も論理的であるように思われます...

例:「同じシナリオをGridアクティブに実行すると、計算精度が20%向上し、時間に2秒のペナルティがあります...」

シングルスレッドプログラムです。時間を使うのは本当に危険ですか?助言がありますか。皆さん、ありがとうございました

4

2 に答える 2

2

同意しません。時間の比較はまったく問題ありませんが、制限があります。

1回の実行では何も言いません。これが、表示する統計ツールとテストがある理由A is distinct then Bです。

いくつかのテストケースとさまざまな条件で、一連のテストを実行します。データ(実行時間)を2つの異なるリストに保存してから、統計的検定を実行して、一方が他方よりも優れていることを示します。

統計量検定からの「答え」はP値です。P値は「あなたが間違っている確率はどれくらいですか」と言います。たとえば、一連のテストがあり、統計テストを実行してを見つけたとしますP_Value = 0.01。これは、99%の確率で2つのサンプルが異なることを意味し、平均が低い方が優れていると結論付けることができます。

統計的検定のデファクトスタンダード(少なくとも私の分野では)は、ウィルコクソンの対応のある符号付き検定です。


PS統計的検定は、テストされた条件の仮定を「証明」します。たとえば、AMD CPUで実行した場合、Intel CPUで何が起こるかについては何も述べていません(命令セットによって「悪化」する可能性があります)。その中でより良い)。

ただし、それにもかかわらず、AIや情報検索などの分野の記事で非常に受け入れられ、広く使用されていることに注意してください。

于 2012-11-08T14:21:23.693 に答える
0

「新しいバージョンは、p=0.99 で古いバージョンの 50% の時間で実行される」ということが監督者にとって何かを意味するかどうかは、ビジネスにとってのアルゴリズムの重要性に関する監督者の知識に依存します。多くの場合、1 つの関数の測定値の統計的分析は、それを改善しようとしているプログラマーにとっては非常に便利なツールですが、管理者にとっては無意味です。

おそらく、このコードは最適化されています。これは、ビジネスにとって重要な部分が高速化によって改善されるためです。通常、これはスーパーバイザーに結果を報告する際に話し合うべきことです。エンジニアリング シミュレーションを 1 日ではなく 1 日で実行できます。」

スーパーバイザーが関心を持っているビジネス目標の観点から考えると、最適化中に実行される特定のタイプの時間測定 (実時間または合計 CPU またはユーザー CPU またはメモリ フットプリント) は通常明らかです。

于 2012-11-08T15:37:20.097 に答える