2012-10-03 34 views
0

我试图在并行使用这种方法的C++ 11 动态规划算法:打开MP导致内存泄漏

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的方式,还是有什么可怕的事情发生?

+0

buildBaseCase中发生了什么?你在哪里清理? – slugonamission

+0

由于我刚刚设置了骨架,buildBaseCase是空的。 – ansjob

回答