LINUX.ORG.RU

gfortran под Win (mingw): получаются медленные программы?


0

0

Пробовал как g95, так и gfortran - результат один. Скачивал бинарные файлы под Виндовоз (уж извиняйте, приходится его использовать), обе сборки используют mingw для работы. Написал простенькую программку (метод Симпсона), со всеми опциями оптимизации -O2 -march=pentium4m программа работает 5 с лишним секунд. Аналогичный текст на С, откомпилированный Open Watcom C++, работает 2 секунды. Использовал другой компилер для Fortran-а - выдает прогу, работающую 2 секунды (но он, увы, не бесплатен и не свободен). Вопрос: в чем дело? Что не так? Программы для Фортрана потом будут такие, что должны будут работать несколько часов, поэтому более чем дукратная разница во времени окажется занчительной (проверял на других входных данных - разница в 2.ххх раз остается).

На сколько я помню, программы на С, скомпилированные gcc под Cygwin, работали с хорошей скоростью. gfortran/g95 по-любому используют gcc (в той или иной степени), так вот, может, проблема в медленности mingw?

PS. 1. Полностью Mingw не устанавливал, спользовались бинарники компиляторов, содержащие необходимые библиотеки из mingw. 2. Попробовал бы и под Cygwin-ом, да здоровый он, из интернета его качать... А интернет тут либо медленный, либо дорогой. 3. Использовать С не очень желательно, так что забить и компилить Watcom-ом - не выход.

anonymous

Насколько помню, в Watcom параметры функций(если их не так много) передаются как регистровые. В MinGW через стек(хотя лучше сгенерить asm и посмотреть). Т е если часто дергаете ф-ции выигрыш в операциях при обращении к параметрам

anonymous
()
Ответ на: комментарий от anonymous

Да, вот еще что, я забыл написать в первом посте. Такое чувство, что комипилятор не реагирует на опции оптимизации и архитектуры (что более значимо). gcc под Cygwin (вот это я точно помню) при указании опции pentium ускорялся значительно (точнее, программы, скомпиленные с этой опцией).

/Автор темы/ далее, Alexey

anonymous
()

Я думаю дело в компиляторе. Причем не только под виндовс. Я свой проект собирал gfortran и ifort под линуксом. И там, и там со всеми ключами оптимизации что нашел. Собранная gfortran'ом работает где-то в 2.2 раза медленнее. Так что похоже качественного открытого омпилятора для Фортрана 90/95 просто не существует.

anonymous
()
Ответ на: комментарий от anonymous

> Я думаю дело в компиляторе. Причем не только под виндовс. Я свой проект собирал gfortran и ifort под линуксом. И там, и там со всеми ключами оптимизации что нашел. Собранная gfortran'ом работает где-то в 2.2 раза медленнее. Так что похоже качественного открытого омпилятора для Фортрана 90/95 просто не существует

Вот свинство... Да, именно такая зависимость и у меня. Тут, видимо, из-за прикручивания к С замедление идет, оптимизация на как таковом фортрановском коде не проходит (но при этом меня все равно удивляет, почему указание архитектуры системы не улучшает производительности), а в С оно переделывается не лучшим образом. Поэтому, скорее всего, f2c даже не пройдет (но как-нибудь все-таки опробую).

anonymous
()
Ответ на: комментарий от anonymous

Работавшие с gfortran обычно отзываются очень и очень плохо о нем. Думаю, дело в компиляторе. По идее, в вычислительных задачах фортрановский код должен быть в среднем быстрее сишного (из-за указателей последнего и прочих особенностей).

dave ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.