Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Работа с Intel Fortran через Visual Studio 2003 и не только

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34

Открыть новую тему     Написать ответ в эту тему

KChernov



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
azertyuu

Цитата:
 стоит ли

Однозначно
1. Сообщения об ошибках более конкрентые. Например, при выходе за границы массива CVF только это и скажет, а IF - сообщит какое измерение, какое значение индекса и какая граница - не надо лишний раз запускать отладку, чтобы это выяснить
2. В отладчике доступен просмотрщик массивов (для CVF я пока не смог заставить его так работать)
3. Более функциональные редактор и точки останова (VS.net-овские)
4. Есть поддержка 64-х битных переменных даже если проц 32-х битный
 
Так сразу больше не вспоминается - спрашивайте конкретно - вспомню
 

Цитата:
Вы интеловский фортран на родном сайте у них брали? Evaluation version

Да.

Цитата:
Может, какие-то заморочки с этим связаны... Или есть где-то полнофункциональная "подлеченная" уже версия?  

Пока не встречал.
Подсунул ей местный лицензионный файл и все работает
 

Цитата:
В Compaq Visual Fortran 6.5, например, с этим проблем вроде не возникало.

Вы меня не правильно поняли - там речь шла про отладчик.
Попробуйте в отладчике получить значение константы и вы меня поймете
Я пробовал на CVF6.6A  - вроде как позднее не бывает.
Если у вас это работает - было бы интересно узнать, как? Мб это настраивается?..

Всего записей: 2471 | Зарегистр. 20-04-2004 | Отправлено: 14:14 14-04-2005 | Исправлено: KChernov, 14:16 14-04-2005
dima333a



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KChernov

Цитата:
Я пробовал на CVF6.6A  - вроде как позднее не бывает

На самом деле был CVF6.6c уже от HP и в только в версии Standard.
 
Теперь я так понимаю согласно договоренности между HP и Intel все остатки бизнеса перешли к Intel, соответственно Compaq Digital FORTRAN реинкарнируется в Intel Fortran.
 
Мне лично сам компилятор нравится больше от Intel, да и Intel будет развивать это дело дальще и оптимизирует под новейшие процессоры от Intel. Но ... CVF занимает меньше места на диске, значительно легче устанавливается... и оптимизирует под AMD и Intel.
 
 

Всего записей: 798 | Зарегистр. 27-02-2004 | Отправлено: 23:34 14-04-2005 | Исправлено: dima333a, 08:44 15-04-2005
KChernov



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dima333a

Цитата:
На самом деле был CVF6.6c уже от HP и в только в версии Standard.

А список изменений где-нибудь можно посмотреть?
 

Цитата:
CVF занимает меньше места на диске

Не так уж и больше.
А если на компе vs .net стоит сама по себе, то и меньше.
 

Цитата:
значительно легче устанавливается

Вот я и хочу сделать дистриб, с которого можно было бы ставить его весь и сразу. Странно, почему у мелкомягких нету такой версии дистриба vs .net...
Да и опять же при наличии его на компе установка легче у интеловского фортрана.
Да и просмотр массивов ставится и работает нормально только у интела
 

Цитата:
оптимизирует под AMD

При необходимости оптимизации вполне можно  откомпилить релиз проекта под CVF.
Кроме того, можно попробовать обмануть интеловский компилятор, чтобы он думал, что это П3, например.

Всего записей: 2471 | Зарегистр. 20-04-2004 | Отправлено: 11:43 15-04-2005
dima333a



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KChernov
 
Мне лень искать конкретный линк на страничку с изменениями, но вот страничка ведущяя туда где вы скорее всего без проблем все найдете
здесь и здесь
 
CFV занимает меньше места как раз потому что VS 6 меньше весит...  Один IF 8.0 занимает около 100Мб ... а VS .net даже голышом (минимальная установка ) тоже не маленькая. Если вам известно как можно покромсать VS.net до размеров меньших чем минимальная установка, пожалуйста пишите (а я подозреваю что вы заинтересованны)
 

Цитата:
Вот я и хочу сделать дистриб, с которого можно было бы ставить его весь и сразу. Странно, почему у мелкомягких нету такой версии дистриба vs .net...  
 

В свое время Compaq или даже Digital лицензировали Visual Studio у Microsoft, поэтому CVF и был таким себе пакетом. У Intel политика другая. Intel Fortran для студентов стоит всего лиш 30$ что я считаю очень умеренной ценой на такой продукт.
 

Цитата:
 При необходимости оптимизации вполне можно  откомпилить релиз проекта под CVF.  
Кроме того, можно попробовать обмануть интеловский компилятор, чтобы он думал, что это П3, например.  
 

А вот об этом по подробнее нельзя ли ? Мне очень интересно.
 
Да, а вы знакомы с таким продуктом как Intel VTune (помогает оптимизировать код )? Рекомендую, особенно если важно оптимизация кода.
 
 
З.Ы.Тема о книгах и ресурсах о FORTRAN была успешно открыта. Если вам интересно или/и можете внести свой вклад, то милости просим сюда
 

Всего записей: 798 | Зарегистр. 27-02-2004 | Отправлено: 21:34 15-04-2005 | Исправлено: dima333a, 21:41 15-04-2005
ValterG



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
1) 8-й Intel Fortran требует link.exe из 7-й или 8-й VS и следовательно
  с 6-й работать не будет ( если конечно не курочить ее).
2) Может я ошибаюсь, но Visual Fortran и Intel Fortran - это
два совершенно разных продукта. Compaq fortran похоже умер просто  
при передаче HP ?!
3) Пробовал транслировать с оптимизацией большую программу
  в 4-й, 6-й и 7-й версии Intel - не заметил разницы. 8-я версия
  заметно быстрее транслирует по сравнению с 7-й. Поэтому если
  не нужна быстрая трансляция, то прекрасно можно сидеть даже на 4-й
  версии. Все vои изыскания по оптимизации привели к следующему -
  надо использовать оптимизированные версии библиотек : например, MKL.
    Использование Vtune пока показало, что 50% времени с"едает пересылка
 данных, но у меня нет статистики - только интуиция... и мнение спецов.

Всего записей: 995 | Зарегистр. 06-12-2002 | Отправлено: 20:16 16-04-2005
dima333a



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ValterG
 
2) Вообще Visual Fortan - это по моему не название продукта, а подчасть FORTRAN .т.е расширение стандарта языка программирования  FORTRAN для создания как минимум WIN32 окощечных приложений (как известно "обычный FORTRAN" - это всего лишь консольные приложения. Наверно можно окошки писать и под UNIX-like операционки, но я честно говоря не уверен как дело обстоит с системными библиотеками
  Intel Fortran - это название продукта, который включает в себя и Visual Fortran.
 
 Compaq Visual FORTRAN на самом деле не умер. Я так понял что часть прав была продана Intel, но пока все еще Compaq Visual FORTRAN можно купить .... как HP FORTRAN .... но похоже что HP не заинтересованна в продолжении.
 
3) По поводу трансляции. Новые версии компилятора от Intel содержат новые ключи для оптимизации и по идее должны давать выигрыш на новых процессорах ( На Pentium II или даже Pentium III наверно старые версии компиляторов нв хуже новых )
 
Я использовал V-Tune для анализа большой численниой программы и у меня 70% всего времени было занято решателем (что собственно говоря и неудивительно )

Всего записей: 798 | Зарегистр. 27-02-2004 | Отправлено: 21:59 16-04-2005 | Исправлено: dima333a, 18:02 18-04-2005
KChernov



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dima333a

Цитата:
здесь и здесь

Спасибо, посмотрю.
 

Цитата:
а я подозреваю что вы заинтересованны

Уже провел один эксперимент, но он оказался неудачен
Если что накопаю - выложу.
 

Цитата:
 Intel Fortran для студентов стоит всего лиш 30$

Не понимаю, почему бы не раздавать его студентам бесплатно
Эта версия небось еще и урезана.
Вот и стимулировали бы к изучению.
Хотя западным студентам 30уе - не деньги...
 

Цитата:
А вот об этом по подробнее нельзя ли

Об этом?

Цитата:
Кроме того, можно попробовать обмануть интеловский компилятор

 

Цитата:
Intel VTune

Знаю про него, но пока настолько оптимизировать не требовалось.
 
 

Цитата:
Тема о книгах и ресурсах о FORTRAN была успешно открыта

Спасибо, я уже сам нашел ее.
Как-нибудь доберусь.
 
Добавлено:
ValterG
1) Тогда что имеет в виду Интел, когда пишет, что все работает с CVF и VS6?
А копирнуть link.exe недостаточно?

Всего записей: 2471 | Зарегистр. 20-04-2004 | Отправлено: 11:53 18-04-2005
dima333a



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KChernov

Цитата:
Не понимаю, почему бы не раздавать его студентам бесплатно  
Эта версия небось еще и урезана.  

 
Академическая версия CVF стоила 500$ и я думаю что именно из за интегрированного  VS6, за который надо было платить M$. Intel отдает естественно версию Standard, но никаких специальных урезаний нету. 30$ для американского студента это дешево.
 

Цитата:
 Об этом?  
 
 
О том  так как вы предлагаете обманывать Intel-овский компилятор что бы он под AMD работал с оптимизациями?
 

Цитата:
 Тогда что имеет в виду Интел, когда пишет, что все работает с CVF и VS6?
Я так подозреваю что совместимость существует на уровне кода программ. Т.е. можно перекомпилировать то что было написанно на CVF с помощью Intel FOrtran.(Хотя некоторые библиотеки у Intel свои, и код хоть и немножко но иногда надо переписывать.
 

Всего записей: 798 | Зарегистр. 27-02-2004 | Отправлено: 01:44 19-04-2005
KChernov



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dima333a

Цитата:
Тогда что имеет в виду Интел, когда пишет, что все работает с CVF и VS6?

Блин, я перепутал:

Цитата:
If your Intel Fortran 7.x installation was integrated with Microsoft Visual Studio 98 or Visual C++ 6 and not with the same version of Microsoft Visual Studio .NET, you do not need to remove these components of Intel Fortran 7.1 or 7.0 before installing Intel Visual Fortran 8.1 on the same system.

Версия 7.х работала с ними, а 8.х похоже уже не работает...
Мб попробовать найти версию 7.х?..
 
 
Поставил сегодня IF на комп, где до этого не стояла VS, и записал обращения к файлам дистриба - осталось их проанализировать.
Пришлось поставить С++. Все вместе весит 500 метров - не сильно больше 350 у CVF-а.
 

Цитата:
О том  так как вы предлагаете обманывать Intel-овский компилятор

Это не я  - прочитал об этом в другом форуме.
Вот:

Цитата:
> Насколько хорошо откомпилированный код работает на АМД-процах?
 
Сказочка.
 
Встречал однажды такую вещь: компилятор видит какую-нибудь
хитрую последовательность кода и преобразует её в вызов
своей runtime библиотеки. Библиотека проверяет тип проца,
чтобы вызвать наиболее быструю версию. А так как атхлон
интел за проц не считает, то либа ничего подходящего не находит
и от безнадёжности молча пишет по нулевому адресу:
вот вам SIGSEGV, получите, распишитесь.
Внешне это выглядит, как работающая, но иногда падающая прога.
 
Лечил переименованием символов, чтобы переходы производились
не на переключалку, а непосредственно на нужный код.
 

и

Цитата:
Кусок Makefile:
        objcopy --redefine-sym vmlsAtan4=vmlsAtan4.H \
                --redefine-sym vmlsCos4=vmlsCos4.H \
                --redefine-sym vmlsExp4=vmlsExp4.H \
                --redefine-sym vmlsLn4=vmlsLn4.H \
                --redefine-sym vmlsSin4=vmlsSin4.H \
                --redefine-sym vmlsTan4=vmlsTan4.H \
                $< $@
 


Всего записей: 2471 | Зарегистр. 20-04-2004 | Отправлено: 12:28 19-04-2005
dima333a



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KChernov

Цитата:
Мб попробовать найти версию 7.х?..  

Версия 7.х скорее всего все еще на intel ftp, совместно с другими версиями и впринципе свободно доступна. Пролистайте топик в Андеграунде. А на Интелоскоом сайте можно найти список улутшений при переходе от версии 7.х до 8.х.  
  Хотя не знаю на сколько все эти экономии места на сегодня актуальны. ( У меня на лаптопе жесткий диск маленький, вот я и жмусь таскс сказать... А на домашнем десктопе 2х40Gb+200Gb .... там +/- 1Gb как то погоды не делает.
 
По поводу обмана Intel-овского компилятора, это интересно, но надо знать что подменять, т.е имена , да и писать новые куски кода я так понимаю.  Я думал что проверка CPU происходит не в библиотеках, а при запуске программы ... т.е. один раз..... И если с самого начала заставить программу думать что это Pentium, т.е. один раз в одном месте, то все О.К. ... А оно вишь как выходить...  
 
В мануале на Intel Fortran писалось про жесткие и не жесткие оптимизации. Жесткие-значит будут использоватся специфичные детали архитектуры CPU, и на другом процессоре программа скорее всего вылетит с ошибкой. A есть не жесткие оптимизации, т.е. в общем то оптимизированно под определенную архитектуру, но на других процессорах тоже как бы работать будет.  
 
Athlon похож на Pentium III, и если нежестко оптимизировать под Pentium III или Pentium M а потом запустить на Athlon и заставить думать что это Pentium ... то тогда все доолжно быть хороше. По крайне мере в теории.
 
K стати, программы оптимизированные под Athlon на CVF ( ключи /architecture:K7 /tune:K7  )(стабильно вываливаются с ощибкой на Pentium 4. Официально признанный факт. На себе испытал. )
 
А если не секрет, что за форум? тот из которого вы кусок mаке файла вытащили? можно в личку

Всего записей: 798 | Зарегистр. 27-02-2004 | Отправлено: 23:56 19-04-2005
KChernov



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dima333a

Цитата:
писать новые куски кода

Не надо.
Насколько я понял, просто оптимизация делается в ручную
 

Цитата:
не жесткие оптимизации

Наверное стоит их и использовать.
 
А для жестких можно попробовать такой вариант:
Есть проги, которые позволяют подменять инфу по железу
Обозвать Атлон Р3 - глядишь и заработает...
 

Цитата:
 что за форум

Форум сообщества общежития МГУ.
Но я бы не стал его рекомендовать как хороший форум по программированию, особенно на фортране. Похоже там только мы двое работаем с фортраном.
Но если очень хочется - могу ссылку дать.

Всего записей: 2471 | Зарегистр. 20-04-2004 | Отправлено: 15:58 20-04-2005
dima333a



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KChernov
 

Цитата:
Насколько я понял, просто оптимизация делается в ручную  

 
Просто подпрограммы функций которые были заложенны в возможностях компилятора, были замененны на написанные им самим.... по крайне мере так я понял содержимое make файла....
 
 

Цитата:
 А для жестких можно попробовать такой вариант:  
Есть проги, которые позволяют подменять инфу по железу  
Обозвать Атлон Р3 - глядишь и заработает...  

 
Точно не заработает. Athlon и Pentium III только условно похожи друг на друга, т.к. конвеер у них одинаково короткий по сравнению с архитектурой NetBurts @ Pentium4. А в деталях Pentium III и Атthlon очень даже разные.  
 
 
 

Всего записей: 798 | Зарегистр. 27-02-2004 | Отправлено: 11:59 21-04-2005
azertyuu



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
коллеги, а вы IMSL пользуетесь? Хотелось бы на эту темку поговорить, но решил новый топик не открывать. Меня лично там сейчас вот что интересует  
 
1) функции по решению нелинейных уравнений,  
2) работа с разреженными матрицами.
 
мое лично впечатление от работы с функциями этих библиотек не самое лучшее. Например, беру обычное уравнение, и чтобы его решить встроенными функциями библиотек (даже зная интервал решений) надо повозится дольше, чем написать самому простенькую программку. Причем еще и не гарантировано вообще, что уравнение будет решено безо всяких run-time ошибок. С другой стороны вроде как "роднные" процедуры оптимизированы и должны занимать меньшее машинное время.

Всего записей: 13 | Зарегистр. 12-04-2005 | Отправлено: 16:16 22-04-2005
dima333a



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
azertyuu
 
Библиотеками я не пользуюсь.  Но ИМХО , библиотеки написанны были для того что бы люди не изобретали велосипед во второй раз. Т.е. это грубо говоря оптимизированные решения их учебников.
 
Для решения простого уравнения как вы уже сами написали, можно простенкую програмку и самому написать, а если что то посложней?  К тому же , узконаправленные решения буду всегда более эффективны. Т.е. для решения какого-то определенного типа уравнений написать решатель проще чем относительно универсальный решатель.
 
Соответственно для универсального решателя надо больше входных параметров.

Всего записей: 798 | Зарегистр. 27-02-2004 | Отправлено: 17:28 22-04-2005
azertyuu



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Библиотеками я не пользуюсь.  Но ИМХО , библиотеки написанны были для того что бы люди не изобретали велосипед во второй раз.

Дык про то ж и разговор. Но интересно было бы увидеть кого-нибудь, кто в реальности пользуется IMSL (не в качестве источника кода для своих программ,а "as is" - то есть именно подсоединять библиотеку и вызывать ее родные функции.

Всего записей: 13 | Зарегистр. 12-04-2005 | Отправлено: 22:51 22-04-2005
KChernov



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ни у кого случайно хороший пример с использованием len_trim() случайно не завалялся?
А то то, что я из файла помощи скопировал, работает как-то странно и не всегда выдает результаты, как написано в той же помощи

Всего записей: 2471 | Зарегистр. 20-04-2004 | Отправлено: 13:42 25-04-2005
azertyuu



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
пример с использованием len_trim()  

http://softwareforums.intel.com/ids/board/message?board.id=5&message.id=6164

Всего записей: 13 | Зарегистр. 12-04-2005 | Отправлено: 13:44 26-04-2005
KChernov



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
azertyuu
Спасибо, разобрался
 
А вот еще вопрос по самому фортрану (хотя мб стоит отдельную тему создать?..):
 
Как передать в процедуру только массив, а индексы выдернуть из него, а не передавать как параметры?

Всего записей: 2471 | Зарегистр. 20-04-2004 | Отправлено: 16:02 28-04-2005 | Исправлено: KChernov, 17:40 28-04-2005
dima333a



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KChernov
 

Цитата:
Как передать в процедуру только массив, а индексы выдернуть из него, а не передавать как параметры?  

 
Не уверен что в тему, и что вам это поможет, но я длительное время пользовался программой на FORTRAN где была использованна система pointer-ов. Если знаете что это такое то может поможет.
 
 
А вообще в FORTRAN, все массивы реально одномерные. Т.е. как я думаю можно создать массив Alpha(1:20,1:20,1:20) a передать его в подпрограмму как  
 
program test
integer:: A
real Alpha(1:20,1:20,1:20)  
A=20*20*20
call podpr(Alpha,A)
end
 
 
subroutine podpr(Beta,B)
integer:: B
real Beta(1:B)
...........
..........
return
 
 
З.Ы. Думаю что если жестко задать индексы в подпрограмме и основной программе то все тоже будет работать
 
 
program test
real Alpha(1:20,1:20,1:20)  
call podpr(Alpha)
end
 
 
subroutine podpr(Beta)
real Beta(1:20,1:20,1:20)
...........
..........
return
 
 
A еще индексы можно задать один раз в include файле, а потом его прописать в основную программу и подпрограмму
 
 
файл include.fhp
     INTEGER, parameter::A=20
     INTEGER, parameter::B=20
     INTEGER, parameter::C=20
 
end of file include.fhp
 
 
program test
INCLUDE 'include.fhp'
real:: Alpha(A,B,C)
call podpr(Alpha)
end
 
 
subroutine podpr(Beta)
INCLUDE 'include.fhp'
real::Beta(A,B,C)
...........
..........
return
 
 
 

Всего записей: 798 | Зарегистр. 27-02-2004 | Отправлено: 20:48 28-04-2005 | Исправлено: dima333a, 20:58 28-04-2005
KChernov



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dima333a

Цитата:
система pointer-ов

 
А кусок из этой проги не выложите?
В поинтере есть инфа о размерностях массива?
 

Цитата:
 все массивы реально одномерные

Возможно из-за этого и приходится передавать размерности
Но хотя бы общую длину массива получить можно?
 
Относительно первого примера - как раз интересно работать с такой же структурой массива. Этот пример - скорее некоторое шаманство, которое непонятно, зачем нужно (но наверное можно придумать реальную задачу - возможно оно нужно для того, чтобы можно было функции обработки массивов, не привязанные к их структуре, не описывать по нескольку раз - или для этого есть другой механизм?).
Опять же, такое поведение массивов в стандарте фортрана описано? Если нет, то возможны проблемы при смене компилятора
 

Цитата:
если жестко задать индексы в подпрограмме и основной программе то все тоже будет работать

Будет, конечно. Только действительно лучше использовать константы.
Вместо include-а возможно лучше будет использовать common-блоки переменных.
 
Но гораздо интереснее было бы описывать измерения массива одной переменной
А то для 7-мерного массива, например, вообще говоря надо 14 чисел для описания измерений (и все это передавать через параметры процедуры не хочется)

Всего записей: 2471 | Зарегистр. 20-04-2004 | Отправлено: 10:17 29-04-2005
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Работа с Intel Fortran через Visual Studio 2003 и не только


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru