Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Быстродействие кода в VC и Visual Fortran

11K
16 мая 2005 года
sema
3 / / 16.05.2005
Есть программа, написанная на Фортране.
Программа расчитывает TVD схему на 3-х мерной сетке. Соответственно очень много расчетов.
Поставленная задача - распаралелить для расчетов на кластере.
Так-как я гораздо лучше знаю C и мне он больше по душе я решил первым делом переписать эту программу на С.
После переделки ( собственно переписал почти в идентичную программу ) решил сравнить быстродействие.
Результат - фортрановская программа работает в 2-3 раза быстрее. Мне кажется что разница не должна превышать 20-30%
Отсюда вопрос - какие возможны общие методы повышения производительности? Может быть существуют пакеты для оптимизации под Athlon/Intel?
527
16 мая 2005 года
pavor
275 / / 28.09.2003
Цитата:
Originally posted by sema
Есть программа, написанная на Фортране.
Программа расчитывает TVD схему на 3-х мерной сетке. Соответственно очень много расчетов.
Поставленная задача - распаралелить для расчетов на кластере.
Так-как я гораздо лучше знаю C и мне он больше по душе я решил первым делом переписать эту программу на С.
После переделки ( собственно переписал почти в идентичную программу ) решил сравнить быстродействие.
Результат - фортрановская программа работает в 2-3 раза быстрее. Мне кажется что разница не должна превышать 20-30%
Отсюда вопрос - какие возможны общие методы повышения производительности? Может быть существуют пакеты для оптимизации под Athlon/Intel?


Не знаю конкретно твоей задачи, но Intel выпускает для математических расчетов Intel Math Kernel Library, содержащую оптимизированные функции для Intel P4 и Itanium. Там есть спектральные преобразования, BLAS и т.п. Работает как для Fortran, так и для C

11K
17 мая 2005 года
sema
3 / / 16.05.2005
Цитата:
Originally posted by pavor
Не знаю конкретно твоей задачи, но Intel выпускает для математических расчетов Intel Math Kernel Library, содержащую оптимизированные функции для Intel P4 и Itanium. Там есть спектральные преобразования, BLAS и т.п. Работает как для Fortran, так и для C


Да вроде-бы из особо математических функций только sin и cos. Остальное вроде просто умножения да сложения

425
17 мая 2005 года
sq_deep
498 / / 18.02.2005
А вы случайно не с отладочной ли версией сравниваете? И проверьте настройки оптимизации.

Я уже давно не делал этого, в последний раз Fortran-77 переписывал на MS C v5 (не Visual, а просто MS C без ++) около 1990 года... но точно помню, что скорость выполнения моей программы на C была примерно такая же, как исходной на Фортране. (Программа удаляла невидимые линии изображения поверхности, перебором треугольников.)

Ещё можно попробовать использовать Analyzer, поставляемый с Visual Studio. Он покажет время выполнения разных частей вашего кода и позволит, если повезёт, узнать, что надо оптимизировать. Хотя скажу честно, пару раз я пытался его использовать, но мне он ни разу не помог.
425
17 мая 2005 года
sq_deep
498 / / 18.02.2005
Вот ещё одно забыл. Если программа на Фортране работает под DOS, то любая программа под Windows, скорее всего, будет отставать за счёт многозадачности, квантования времени и т.п.
11K
17 мая 2005 года
sema
3 / / 16.05.2005
Цитата:
Originally posted by sq_deep
А вы случайно не с отладочной ли версией сравниваете? И проверьте настройки оптимизации.


В debug-е разница в 2 раза (25 сек на VC, 12 сек Fortran), в release в 3 раза ( 20 - 7 ) :(
Обе проги под виндами. где основное время тратится тоже ясно. Вобщем с индексами массивов буду играться. о результатах сообщу

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог