0

Windows Server 2003 Enterprise X64 Edition で Intel Visual FORTRAN を使用して fortran90 コードをコンパイルしています。32 ビット構造のコードをコンパイルし、自動および手動のベクトル化オプションを使用する場合。コードはコンパイルされ、ベクトル化されます。8 コア システムで実行すると、コンパイルされたコードは CPU の 70% を使用し、ベクトル化が機能していることを示しています。しかし、64 ビット コンパイラでコードをコンパイルすると、コードがベクトル化されていると表示されますが、実行すると、CPU 使用率が約 12% しか表示されず、8 つのコアのうち 1 つのコアが完全に使用されます。は、コードがベクトル化されていることを示していますが、ベクトル化は機能していません。

X64 Edition Windows 上にあり、逆の結果が表示されることを期待していたので、私にとっては奇妙です。64 ビット Windows で 64 ビット アーキテクチャ用にコンパイルされたコードを実行する方がよいと考えました。

コンパイルされたコードが 64 ビットのコンパイル済みバージョンで複数のコアをフルに活用できない理由を知っている人はいますか?

4

1 に答える 1

2

Windows 版の Intel Fortran コンパイラは使用していません。Mac と Linux だけです。インテルの命名法では、「ベクトル化」は、単一のプロセッサー/コアで利用可能な小規模な並列命令/マルチメディア拡張 SSE、SSE2、SSE3、SSSE3、SSE4 を使用します。複数のプロセッサ/コア間で自動的にマルチスレッド実行できるこれらのコンパイラの特徴は「並列化」です。オプションは -vec または /Qvec と -parallel または /Qparallel です。では、どのコンパイラ オプションを使用していますか?

于 2010-04-10T00:59:27.420 に答える