1

再帰のシリアル プログラム コードを書きました。ICC と GCC で異なる出力ファイル名でコンパイルしました。ホットスポットを検出するために Intel Advisor XE 2013 を使用した場合、GCC コンパイル コードはすべてのテストに合格しましたが、正しくは警告が表示されたWarning: Advisor does not support the GNU OpenMP Runtime module and may report false positives.ので、データ共有の問題を回避するために、ICC で注釈付きコードをコンパイルし (その後、ターミナルでファイルをテスト)、インポートしました。ソースディレクトリと出力ファイルを使用して新しいプロジェクトに。しかし、その生成の問題 (スタックごと)Collection has stopped. Application exit code: 127により、NO DATA エラーが発生します。
コードは次のとおりです。

#include<stdio.h>
#include "/opt/intel/include/omp.h"  //just for the sake of testing include directory
#include "/opt/intel/advisor_xe_2013/include/advisor-annotate.h" 

long Fibonacci(long);

int main(int argc, char *argv[])

{
    double toc,tic=omp_get_wtime();
    int n, i = 0, c;
    n=45;
    printf("Fibonacci series\n");
    ANNOTATE_SITE_BEGIN(SITE1);
    for ( c = 1 ; c <= n ; c++ )
    {
        ANNOTATE_ITERATION_TASK( MyTask1 );  // This annotation identifies an entire body as a task. 
        printf("%ld\n", Fibonacci(i));
        i++;
    }ANNOTATE_SITE_END();  // End the parallel code region, after task execution completes
return 0;
}

long Fibonacci(long n)
{

    long x,y;

    if ( n == 0 )
        return 0;
    else if ( n == 1 )
        return 1;
    else
        {    
            x=Fibonacci(n-1);
            y=Fibonacci(n-2);
            return ( x+y ); 
        }
} 

Run : Intelのライブラリをインクルードすること icc serFib.c -o F123ICC2 -openmp -O2 -ldl -g -I $(ADV_DIR)
ADV_DIRです/opt/intel/advisor_xe_2013/include/
-OpenMP

注 1のパス/opt/intel/composerxe/binとライブラリ パスを設定しました/opt/intel/lib/intel64
注 2 yama の ptrace 変数をすでに 0 に設定しました
注 3 ICC コンパイル コード (ここでは F123ICC2) が実行され、端末で適切な結果が表示されます。
注 4 127 コード (Linux の場合) はpath/command not found用であることを知っています。

4

0 に答える 0