打开MP导致内存泄漏

时间:2012-10-03 18:17:23

标签: c++ parallel-processing openmp

我正在尝试在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的方式,还是有什么可疑的东西?

1 个答案:

答案 0 :(得分:1)

事实证明根本没有问题。这与此处描述的问题重复: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36298