1
OpenMPを使用しているため、間違った結果に問題があります。ここでOpenMPネストループ並列処理
コードです:
#pragma omp parallel shared(L,nthreads,chunk) private(tid,i,j){
tid = omp_get_thread_num();
if (tid == 0)
{
nthreads = omp_get_num_threads();
printf("Starting matrix multiple example with %d threads\n",nthreads);
printf("Initializing matrices...\n");
}
#pragma omp for schedule (static, chunk)
for(i=0; i<SIZE_A;i++){
for(j=0; j<SIZE_B;j++){
if(A[i]==B[j]){
if(i==0 || j==0)
L[i][j]=1;
else
L[i][j] = L[i-1][j-1] + 1;
}
// or reset the matching score to 0
else
L[i][j]=0;
}
}
}
あなたはなぜ私はwrond結果を得ています、どう思いますか? 変更する必要はありますか?
ありがとうございます!
フム...それはいくつかのインテルの男によって解決し、私はそれを変更しようとしたが、再帰的な解決策は非常に遅く、最適化が非常によく説明されていません...あなたの助けのフリストいただきありがとうございます、最長共通部分の問題です:) – vanste25