2016-11-23 12 views
0

OpenMPを使用してアプリケーションを実装しました.Ubuntu 16.04でGCCを使用してコンパイルしたアプリケーションで、アプリケーションのオーバーヘッドを計算します。 (私のアプリケーションのバイナリファイルは、例えばxyz.exeのためである。)そのために私のプログラムにEPCCのOpenMP Microbenchmarkスイートを使用する方法

私はEPCC OpenMPのマイクロベンチマークスイートを使用しようとしています。スイートをmakeした後、syncbench./syncbench)というベンチマークの1つを端末上で実行しようとしました。しかし、私はOpenMP実装(xyz.exe)でベンチマークを使用する方法について知りたいと思います。私はスイート(https://www.epcc.ed.ac.uk/research/computing/performance-characterisation-and-benchmarking/epcc-openmp-micro-benchmark-suite)のEPCCの公式ウェブページとインストールコードで利用可能なREADMEを検索しようとしましたが、どのように正確に行うことができませんでした。

誰かが独自の実装にこのスイートを使用している場合は、ベンチマークを実装とどのようにマージしたか教えてください。

私は並列コンピューティングとベンチマークに慣れていますので、私の質問が簡単なことがあればよろしくお願いします。

+0

それは混乱だったので、私は、タイトルを変更しました。最初に、OpenMPの独自の実装があると思いました。 –

+0

@VladimirF:変更に感謝します。また、自分で実装しています。混乱のために申し訳ありません、私は再び私のクエリを編集しました。 – krishtof

+0

いいえ、あなたの意図はOpenMP自体の実装なので、OpenMPの実装はありません。そこが肝心だ。 –

答えて

0

あなたは、マイクロベンチマークとプロファイラを混乱させると思います。マイクロベンチマーク(EPCCのような)は、特定の小さなコード・フラグメントのパフォーマンスを測定します(EPCC OpenMPベンチマークの場合、OpenMP構成のパフォーマンス)。プロファイラはコードのパフォーマンスを測定し、時間がどこに費やされたかを示します。

したがって、コードの動作を測定するには、マイクロベンチマークではなく、インテルVtune、HPCツールキット、タウなどのプロファイラが必要です。

[FWIW、私はインテル®VTuneに直接ではないインテルのために働く、しかし]

+0

@JimCrownie:私は既にVTuneアンプを使用しています。しかし、このプロファイラは、OpenMPの構造体によってどのくらいのオーバヘッドが導入されているかはわかりません(#pragma omp parallelなど)。だから、私はちょうど私のC + +のOpenMPコードで各構造によって導入された正確なオーバーヘッド時間を計算する必要があります。 – krishtof

+0

これは簡単ではありません。 OpenMPランタイムの中で(あなたが好きなプロファイラを使って)時間を見ることができますが、ランタイムのオーバーヘッドとして負荷不均衡が表示されます(これはそうではありません)。 OpenMPのためのコンパイル(共有データにアクセスする際の余分な迂回)は、そこには見えません。 –

関連する問題