0
我想使用OpenMP任務乘以兩個矩陣。這是一個基本的代碼:什麼是在OpenMP中使用任務指令的正確方法
long i, j, k;
for (i = 0; i < N; i ++)
for (j = 0; j < N; j ++)
for (k = 0; k < N; k ++)
c[i * N + j] += a[i * N + k] * b[k * N + j];
所以,我想在列級別使用的任務,然後我修改這樣的代碼:
long i, j, k;
#pragma omp parallel
{
#pragma omp single
{
for (i = 0; i < N; i ++)
#pragma omp task private(i, j, k)
{
for (j = 0; j < N; j ++)
for (k = 0; k < N; k ++)
c[i * N + j] += a[i * N + k] * b[k * N + j];
}
}
}
當我運行一個程序,我得到的消息是這樣的:
分割故障(核心轉儲)
現在,我知道我錯過了一些片,卜噸不知道它是什麼。任何想法?