openmp

    0热度

    1回答

    我对OpenMP相当陌生,并且我尝试了一些Monte Carlo代码并行化。 我有一个for循环必须连续运行它调用new_value()功能: for(int i = 0; i < MAX_VAL; i++) new_value(); 该功能打开每次调用并行区域: void new_value() { #pragma omp parallel default(shared) {

    0热度

    1回答

    这是迄今为止我所知道的常规合并排序完美工作,但我不确定我为openMP并行合并排序所做的操作是否正确。目标是通过将openMP并入并使用从一类应用程序中获取的数据来优化合并排序。对于我所认为的数据,我认为它是线程,因为使用多线程应该优化它。有关我应该在哪里实施线索或提示的任何建议? void mergeSort(int arr[], int start, int end) { if(s

    0热度

    1回答

    我开始使用C++中的openMP,并且遇到了并行for循环与减少。当我运行下面的函数时,出现错误:“* ./main.out'中的错误:双重空闲或损坏(fasttop):0x00007fe2a00008c0 *”。 ***更新:谢谢大家的帮助!我根据您的建议编辑了该功能(请参阅下文),并且它可以正常运行。但是我仍然没有看到任何加速,并且当我运行顶部时,%CPU字段永远不会超过100%。有什么想法吗

    0热度

    1回答

    之间的行动所以,我大致有这样的代码: for (int i = 0; i != 10000; ++i) { doAction(i); for (int j = 0; j != 10000; ++j) { ... } } 而且我想使用OpenMP来parallellize它。据我所知,在这种情况下,一个简单的collapse不会做;我尝试使用单独的#p

    1热度

    2回答

    我有两组线程,一组由n个线程执行,另一组由m个线程执行。我想在同一时间启动它们,但我得到的是,该组第1分开始,然后组2 //group 1 #pragma omp parallel num_threads(n) { #pragma omp for for (int i = 0; i < n; i++) { function1(i); } } //g

    0热度

    1回答

    我想编译包含OpenMP的Fortran代码。我正在复制使用来自其他代码的OpenMP。它内置一次成功昨日再下一次,我建立了它,我得到以下错误: ../MAXBRG3D.f90:3:4: USE OMP_LIB ! USED WITH OMP FUNCTIONS 1 Fatal Error: Can't open module file 'omp_lib.mod' for rea

    0热度

    1回答

    首先,请记住,我不是OpenMP的非常频繁的用户......好吗? 现在我们已经过去了,是否有条件的critical? 我在这条线并行for循环内特别感兴趣: (...) #pragma omp critical myMapOfVectors[i].push_back(someNumber); (...) 我想有它critical当且仅当运行这个特定的行具有相同的i(

    0热度

    1回答

    我正在使用C++编写Producer-consumer problem以及在使用OpenMP时如何实现显示器? 我无法找到像OpenMP中conditional_variable任何东西,我不能执行等待/通知上像维基百科例如某些条件。

    1热度

    1回答

    我想并行化一个编码函数,我尝试在for处添加一个简单的pragma,但结果是错误的。我认为迭代是依赖的(通过code变量),因此它们不能直接并行化。 int encodePrimeFactorization(int number){ int code = 0; for (int i=PF_NUMBER-1; i>=0 ; i--){ code = code * 2;

    0热度

    1回答

    我编程上的骑士登陆,其具有68芯和4个超线程/核心节点。我正在研究混合MPI/OpenMP应用程序。 我的问题是,如果4个超线程意味着用作OpenMP的 线程或者我如何使用他们?当我运行使用 以下方案我的程序: export OMP_NUM_THREADS=1 mpirun -np 68 ./app 它的运行速度比当我使用的方案更快: export OMP_NUM_THREADS=4 mp