0

行列の乗算を実行する単純な Fortran コードがあり、このように OpenMP で並列化されています

!$OMP PARALLEL DO PRIVATE(...) SHARED(...) SCHEDULE(STATIC,N/128)

チャンク サイズを比較的大きくし、チャンク数をプロセッサ数の倍数 (4、8、16 など) にします。

ただし、行列のサイズが非常に大きくなった場合は、チャンク サイズをキャッシュ サイズよりも小さく設定する方が理にかなっているようです (少なくとも、試してみる価値はあります)。プロセッサのキャッシュ サイズを考慮した移植可能なコードを作成する簡単な方法はありますか? または、OpenMP でサポートされていませんか?

4

1 に答える 1