我是新來的並行編程和openmp的世界,所以這可能是一個徒勞無益的問題,但我不能真正拿出好的答案,我經歷過,所以我希望有人能夠在這個問題上提出一些看法。C/OpenMP - 與threadprivate和指針向量的問題
我想要實現的是爲每個線程分配一個dinamically分配的矩陣(整數)的私有副本,它將處理以下並行部分,但只要執行流進入所述區域,假定專用矩陣保留一個空值。
對此指令有任何限制我不知道?單維動態數組似乎一切正常。
的代碼片段是以下一個...
#define n 10000
int **matrix;
#pragma omp threadprivate(matrix)
int main()
{
matrix = (int**) calloc(n, sizeof(int*));
for(i=0;i<n;i++) matrix[i] = (int*) calloc(n, sizeof(int));
AdjacencyMatrix(n, matrix);
...
/* Explicitly turn off dynamic threads */
omp_set_dynamic(0);
#pragma omp parallel
{
// From now on, matrix is NULL...
executor_p(matrix, n);
}
....
非常感謝。我完全忽略了這一點。 – c3900