【发布时间】:2018-11-08 12:11:29
【问题描述】:
我希望通过并行循环获得最佳性能:
// EXAMPLE
for (;;) {
// DO SOMETHING
for(;;) {
// DO SOMETHING
}
}
我知道关于示例的三种并行化方式:
// EXAMPLE - FIRST LOOP PARALLEL
#pragma omp parallel for
for (;;) {
// DO SOMETHING
for(;;) {
// DO SOMETHING
}
}
// EXAMPLE - FIRST AND SECOND LOOP PARALLEL NO NESTED
omp_set_nested(0); // default option
#pragma omp parallel for
for (;;) {
// DO SOMETHING
#pragma omp parallel for
for(;;) {
// DO SOMETHING
}
}
// EXAMPLE - FIRST AND SECOND LOOP PARALLEL NESTED
omp_set_nested(1);
#pragma omp parallel for
for (;;) {
// DO SOMETHING
#pragma omp parallel for
for(;;) {
// DO SOMETHING
}
}
这样做的最佳方法是什么?或者我应该在哪些情况下使用其中一种?
谢谢。
【问题讨论】:
标签: c parallel-processing openmp