Векторизация кода с помощью Intel Visual FORTRAN для X64 - PullRequest
0 голосов
/ 10 апреля 2010

Я компилирую свой код fortran90 с помощью Intel Visual FORTRAN в Windows Server 2003 Enterprise X64 Edition. Когда я компилирую код для 32-битной структуры и использую опции автоматической и ручной векторизации. Код будет скомпилирован, векторизован. И когда я запускаю его на 8-ядерной системе, скомпилированный код использует 70% процессора, что показывает мне, что векторизация работает. Но когда я компилирую код с помощью 64-битного компилятора, он говорит, что код векторизован, но когда я запускаю его, он показывает использование ЦП только около 12%, что является полным использованием для одного ядра из 8, поэтому это означает, что в то время как компилятор говорит, что код векторизован, векторизация не работает.

И это странно для меня, потому что это на Windows X64 Edition, и я ожидал увидеть обратный результат. Я подумал, что лучше было бы запустить код, скомпилированный для 64-битной архитектуры в 64-битных окнах.

У кого-нибудь есть идеи, почему скомпилированный код не может использовать всю мощь нескольких ядер для 64-битной версии?

1 Ответ

2 голосов
/ 10 апреля 2010

Я не использовал версии Windows для компиляторов Intel Fortran, только Mac и Linux. В номенклатуре Intel «векторизация» использует небольшие параллельные инструкции / мультимедийные расширения SSE, SSE2, SSE3, SSSE3, SSE4, которые доступны на одном процессоре / ядре. Особенностью этих компиляторов, которые могут автоматически выполнять многопоточность на нескольких процессорах / ядрах, является «распараллеливание». Возможные варианты: -vec или / Qvec против -parallel или / Qparallel. Итак, какие параметры компилятора вы используете?

...