你想達到什麼目的?你爲什麼想讓內環分裂?
是什麼讓你認爲它具有平行內循環的優點?
不管怎麼說,平行化他們的問題是什麼?
Live On Coliru
#include <omp.h>
int main()
{
for (int i=0; i <100; ++i)
{
int m = 5000;
#pragma omp parallel for
for (int j=0; j<m; ++j)
{
}
#pragma omp parallel for
for (int j=m; j<2*m; ++j)
{
}
}
}
如果你只想做手工分塊,看一下:schedule clauses
如果你想在哪支球隊線程運行的明確控制哪些部分:
Live On Coliru
#include <omp.h>
#include <iostream>
int main()
{
int id = 0;
#pragma omp parallel
{
int m = 5000;
std::cout << "parallel section #" << ++id << "\n";
{
#pragma omp single
std::cout << "first single section\n";
for (int j=0; j<m; ++j)
{
}
}
{
#pragma omp single
std::cout << "second single section\n";
for (int j=m; j<2*m; ++j)
{
}
}
}
}
輸出:
parallel section #1
parallel section #2
first single section
parallel section #3
parallel section #4
second single section
什麼是'V','W'和'in'? – 2014-12-05 21:28:12
'V'和'W'都是常數; 'W = 0','V = 1',所以清晰的數組是'2(n + 1)'大小 – notnull 2014-12-06 15:54:08