最近の SDPA の開発においては、pthread だけではなく OpenMP も用いているが、ソフトウェア配布については以下のような問題がある。
1: gcc 4.1.x だと OpenMP 2.5 のプレビューサポートになっているため性能が非常に悪い。RedHat 5.x (CentOS 5.x)では gcc のバージョンが 4.1.2 になっている。Vine Linux 5.x でも gcc 4.1.2 だが、OpenMP 自体がサポートされていない。個人的には CentOS 5.x と Vine Linux 5.x に gcc 4.4.2 をインストールすることによって、この性能低下の問題を解決しているが、デフォルトの状態で SDPA を make すると、SDPA 7.3.1 (pthread 版)よりも性能が低下する。
2: OpenMP 3.0 には新機能が多いが、1 の理由にて利用することが難しい。
3: CPU 数とコア数が多い場合では(Istanbul 4-way 24 コアなど)、OpenMP の性能が pthread 版よりも下回るようになる。
論文だけ作成して、ソフトウェアを公開しないのであれば、このような問題を考慮する必要はないのだが、まだ公開用のソフトウェアで OpenMP を使うには様々な問題がある。
1: gcc 4.1.x だと OpenMP 2.5 のプレビューサポートになっているため性能が非常に悪い。RedHat 5.x (CentOS 5.x)では gcc のバージョンが 4.1.2 になっている。Vine Linux 5.x でも gcc 4.1.2 だが、OpenMP 自体がサポートされていない。個人的には CentOS 5.x と Vine Linux 5.x に gcc 4.4.2 をインストールすることによって、この性能低下の問題を解決しているが、デフォルトの状態で SDPA を make すると、SDPA 7.3.1 (pthread 版)よりも性能が低下する。
2: OpenMP 3.0 には新機能が多いが、1 の理由にて利用することが難しい。
3: CPU 数とコア数が多い場合では(Istanbul 4-way 24 コアなど)、OpenMP の性能が pthread 版よりも下回るようになる。
論文だけ作成して、ソフトウェアを公開しないのであれば、このような問題を考慮する必要はないのだが、まだ公開用のソフトウェアで OpenMP を使うには様々な問題がある。