int i;
#pragma omp parallel for
for (i=0; i<N; i++) {
....
}
良く見たらこんな感じで i が共有されてる状態になってた。
private を使うか、
int i;
#pragma omp parallel for private (i)
for (i=0; i<N; i++) {
....
}
i のスコープをループ内に限定してやれば、
#pragma omp parallel for
for (int i=0; i<N; i++) {
....
}
ちゃんと速くなった。