このアプローチを使用して、C++ 11 で動的プログラミング アルゴリズムを並列化しようとしています。
void buildBaseCases() {
cout << "Building base cases" << endl;
for (unsigned int i = 0; i < BOARD_SIZE; ++i)
{
buildBaseCase(i);
}
cout << "Done building base cases" << endl;
}
したがって、私の並列化されたバージョンは次のようなものになります。
void buildBaseCases() {
cout << "Building base cases" << endl;
#pragma omp parallel
{
#pragma omp for
for (unsigned int i = 0; i < BOARD_SIZE; ++i)
{
buildBaseCase(i);
}
}
cout << "Done building base cases" << endl;
}
ただし、これにより、valgrind がメモリ リークについて不平を言うようになります。openMP の使用方法を誤解していますか、それとも怪しいことが起こっていますか?