0

プロジェクトのコードをコンパイルする必要があり、多くのエラーが発生します。コードが間違って記述されているためではありませんが、コンパイルを試みる前に代入する必要がある変数があると思います。並列計算用に設計されているため、実際のコードはもう少し長くなりますが、以下は並列処理を行わないより単純なバージョンです。このプログラムの目的と入力変数は何ですか。

int main(int argc, char *argv[]) {
  int n = ...;
  float *x, *y;
  x = new float[n+1];
  y = new float[n+1];

  ... // fill x, y

  // do computation
  float e = 0;
  for (int i=1; i<n; ++i) {
   x[i] += ( y[i+1] + y[i-1] )*.5;
   e += y[i] * y[i];
  }

  ... // output x, e

  delete[] x, y;
  return 0;
} 
4

1 に答える 1

1

わかった。コードは主に例または概念実証であるようです。Parallel Forは、特別な「ForEach」関数といくつかのデータグリッドに関するものだと思います...

サイトのサンプルの1つを変更しました(もっと読みやすい例が必要な場合)。ここから撮影

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

    int Repeat = 100000;        // Will perform the computation 100,000 times.

    Grid1 *Grd = new Grid1(0, Repeat+1);
    DistArray X(Grd), Y(Grd);   // Some data grid arrays (used for the computations)


    // Set X and Y...
    ForEach(int i, it,
    X(i) = 0;
    Y(i) = 1*i; )


    Grid1IteratorSub it(1, Repeat, Grd);

    float E = 0;    // One of the return values

    // Do the computations:
    ForEach(int i, it,
    X(i) += ( Y(i+1) + Y(i-1) )*.5;
    E += sqr( Y(i) ); )

    // Output the modified data:
    cout << "X: " << X;
    cout << "E: " << E;

    return 0;

}

** ParallelForを見た後に編集

于 2013-02-22T06:02:29.303 に答える