Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Работа с Intel Fortran через Visual Studio 2003 и не только

Автор: VitaliM
Дата сообщения: 14.06.2006 08:01
dima333a
Программа в целом используется в учебных целях. Свои подпрограммы на фортране пишут студенты в течении лаб. занятий и через соответствующий интерфейс они вызываются из оболочки. Возможности отладить подпрограмму отдельно нету. А студенту надо по возможности ткнуть на номер строки, где произошла ошибка. Любая полноценная программа на фортране выдаст трассировку в случае ошибки, а ДЛЛ не хочет.
Я надеюсь, теперь суть проблемы понята.
Автор: KChernov
Дата сообщения: 14.06.2006 16:12
VitaliM
А если компилировать dll с включением отладочной информации? (хотя ни разу не пробовал - мб так и нельзя - но если можно - это может решить проблему)
Автор: dima333a
Дата сообщения: 14.06.2006 16:31
VitaliM
Я надеюсь, теперь суть проблемы понята.

А самим студентиками написать внутри кода dll что то что бы рапортовало о выполнении определенных ключевых моментов нельзя? Не обязателно ведь знать строку, хороше бы хотябы ориентировочно какая часть кода ведет к ошибке.
Автор: eriik
Дата сообщения: 14.06.2006 18:07

Цитата:
и все таки ищу ИДЕ полегче чем студия МС

Ну, давайте меряться, кто на что горазд. Если кто предложит что-нибудь лучше чем

то готов менять свои привычки. (окно по ссылке растянуто с ALT-F9) Все пути сведены к минимальным в c:\IF\{BIN|DOC|LIB|INCLUDE|IDB|MKL|IMSL}, ifortvars.bat через шорткат, сборка через пользовательские makefile с опцией выбора архитектуры и оптимизаций. Отладка в фаровской панели.
Автор: VitaliM
Дата сообщения: 14.06.2006 18:21
KChernov

Цитата:
если компилировать dll с включением отладочной информации

можно, конечно, только обрабатывать эту отладочную информацию некому. В ДЛЛ нет фортран-кода, который ловит ошибки и работает с отладочной информацией.

dima333a

Цитата:
самим студентиками написать внутри кода dll что то что

Теоретически, так и надо было бы, но ведь студенты не программисты а прикладники и фортран знают только на уровне записи операторов присваивания. Меня поиск ошибки всегда приводит к одной и той же мыли "как они меня достали, сам бы написал быстрее и правильно, чем копаться в их программах", но учебный процесс требует, чтобы студенты делали все сами. Им в задании дается, например, написать подпрограмму расчета траектории полет ракеты и вывести параметры траектории с шагом 1 сек. в файл. Причем такие задания они получаю на 3 курсе, а фортран проходят во 2 и 3 семестре. Дальше я думаю продолжать не стоит, с какими знаниями он пишут подпрограммы.
Автор: Griefin
Дата сообщения: 14.06.2006 18:57
eriik
Предложу. Есть редакторы Vim и Emacs (предпочитаю первый), безгранично программируемые, настраиваемые и с большим набором возможностей. По крайней мере, там есть аналог окна Output в Visual Studio (для отслеживания ошибок компиляции) и folding (сворачивание участков кода). Единственный, но огромный минус -- их придется долго осваивать.
Автор: dima333a
Дата сообщения: 15.06.2006 06:21
VitaliM


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


Ну...да...как то все сложно у вас. Студент- это не безгмозлый ученик в школе и уж FORTRAN можно немного подучить. Я выучил FORTRAN пользуясь программой моего научного руководителя. Просто так, без особой необходимости. Уже потом, мой сл. руководитель этому был несказанно рад.
На самом деле можно разработать такую часть кода-вставку которая будет документировать ступени выполнения решения. С небольшой аннотацией-хелпом на одной страничеке студентики будут просто вставлять эту вставку с небольшими изменениями каждый раз после завершения одной ступени решения. Т.е. велосипед им придумывать не надо будет.

Мой пример ( не для dll, a для обычной программы)


Код:
( декларирование переменных)
OPEN(unit=15,file='logERR.txt' )
write(15,*) 'Program started'

( первая часть вычислений)
write(15,*) 'first part completed'

( вторая часть вычислений)
write(15,*) 'second part completed'

(blah blah blah)

close(15)
end
Автор: KChernov
Дата сообщения: 15.06.2006 13:22
VitaliM
Не проще ли тогда будет переписать ту часть, которая на дельфи, на фортран?


Цитата:
но ведь студенты не программисты а прикладники и фортран знают только на уровне записи операторов присваивания

Вообще-то программирование на прикладном уровне требует, в основном, умения применять инженерный подход.
Так что за год научить их решать задачи на фортране должно быть вполне реально.


Цитата:
По крайней мере, там есть аналог окна Output в Visual Studio

Это есть почти в любом серьезном редакторе (в том же ультраедите есть).


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

Чтобы студентам было проще, им можно давать готовый шаблон проги на фортране, где уже есть чтение и запись в файл.
Автор: VitaliM
Дата сообщения: 15.06.2006 13:49
KChernov

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


Почти так все и сделано (и с отслеживанием ошибок в консольном варианте все понятно), но такой метод взаимодействия не позволяет более плотно работать оболочке и студенческой программе. Хотелось бы динамическое отражение результатов расчета (и не только в текстовом виде, но и в графическом). Сделать все (оболочку) на фортране не получится, т.к. это сетевая разработка с базой данных (задания, студенты, препы и т.д.) на сервере и клиентским рабочим местом для студентов со своей IDE для работы с фортраном (фортран вызывается только как консольный компилятор, но имитация среды CVF достаточно полная).

Ладно, спасибо всем!

Буду пытаться все реализовать через межпрограммное взаимодействие.
Автор: KChernov
Дата сообщения: 15.06.2006 15:00
VitaliM

Цитата:
Хотелось бы динамическое отражение результатов расчета (и не только в текстовом виде, но и в графическом)

А какие проблемы сделать это в таком варианте?
Никто же не заставляет выводить именно текстовые файлы - подгружаешь его и рисуешь на его основе что надо.
Автор: VitaliM
Дата сообщения: 15.06.2006 15:04
KChernov
Я не уверен, но мне чего-то кажется, что перенаправление консольного вывода и его получение в купе работает медленнее, чем вызов подпрограмм и передача параметров.
Может я не прав, пусть меня поправят.
Автор: eriik
Дата сообщения: 15.06.2006 17:13

Цитата:
eriik
Предложу. Есть редакторы Vim и Emacs... По крайней мере, там есть ... folding (сворачивание участков кода).


Хм, не знал что a) есть не-Cygwin порты VIMа; b) в VIMе есть фолдинг.
Спасибо, посмотрю обязательно.
Автор: KChernov
Дата сообщения: 16.06.2006 09:57
VitaliM
Конечно медленнее.
Но разве стоял вопрос о быстродействии?
Для текущей задачи скорости должно хватить.

Кроме того, скорость можно увеличить, если хранить файлы в памяти. Например, выделив из памяти рамдиск (но наверное можно и как-то проще - например перенаправлять не в файл, а сразу программе - просто с такими вещами сталкиваться не приходилось, но использование рамдиска должно свести разницу во времени к незначительному времени).

Зато все делается достаточно простыми средствами.
Автор: akuaku
Дата сообщения: 24.08.2006 16:21
Как из дебаггера CVF 6.6B кнопочкой View Fortran Array на тулбаре вызвать Intel Array Viewer чтобы просмотреть массив? У меня она почему-то всегда неактивна, т. е. Dev. Studio и Array Viewer не связаны друг с другом.
Автор: KChernov
Дата сообщения: 28.08.2006 12:30
akuaku
Я так и не понял, как это сделать
В интеловском фортране это работает.
Автор: XPEHOMETP
Дата сообщения: 28.08.2006 22:14
akuaku
А что, собственного Компаковского Array Viewer нету?
Автор: akuaku
Дата сообщения: 28.08.2006 22:33
Понял. Работают вместе CVF 6.6 и Array Viewer 1.6. Более новые версии Viewer-а (2.0 и больше до 3.3 версии) работают я так думаю уже с более современными компиляторами, я думаю что с Intel Visual Fortran версий 7, 8, 8.1, 9, 9.1 должны работать!
Автор: KChernov
Дата сообщения: 30.08.2006 11:30
akuaku
У меня вроде бы как раз 1.6 и был (дома проверю).
А у интеловского фортрана свой Array Viewer и он входит в дистриб самого фортрана.
Автор: eriik
Дата сообщения: 19.09.2006 20:42
Ребята, есть здесь кто-нибудь US-resident?
Вкратце описываю ситуацию. Прошла новость

hххp://www.3dnews.ru/news/cpu_gpu_superkomputer-185245/
hххp://www.peakstreaminc.com/

В двух словах - насколько я понял, фирма выпустила SDK, позволяющий использовать ресурсы видеокарт для математических вычислений (компиляторы от интел особо упомянуты).

На сайте есть evaluation form. Я ее заполнил на родной институт, но меня послали со словами, типа, "наш evaluation на страны EMEA на распространяется..."
(EMEA = Europe, Middle East and Africa)

Может есть у кого акаунт на Западе - поможет с закачкой? А то ну очень хочется взглянуть хот краем глаза, что за ерунду люди придумали. Обещают не менее x15 прироста производительности (на последних радеонах) ...
Автор: akuaku
Дата сообщения: 23.09.2006 16:14
Есть ли в современном стандарте фортрана (напр. Fortran 2003) символы для закомментирования абзаца текста, как /* */ в Си++ например?
KChernov
Точно входит? У меня вроде нет.
XPEHOMETP
Array Viewer всегда производства Intel, 1.6, который можно установить вместе с CVF. Версии новее, чем 1.6, не работают из Developer Studio от CVF 6.6. Может быть они устанавливаются правильно только в Developer Studio от Microsoft Visual Studio 2003 (2002 ??) или 2005, и/или они устанавливаются правильно только с более новыми версиями компиляторов, чем CVF 6.6, такими, как IF 7,8,9.
Compaq прекратил все разработки компилятора Фортрана и передал всё Intel. После этого появился IF 7 - дальнейшее развитие CVF 6.6. Потом после 7-й версии IF выпустили 8-ю и сейчас 9-ю и версия 9.1 уже есть.
Также на сайте intel есть Array Viewer 3-й версии. Я думаю, он предназначен для совместной работы с Microsoft Visual Studio 2005 и Intel Fortran 9.1
Автор: FuzzyLogic
Дата сообщения: 23.09.2006 20:30
eriik
Похоже там всё не так просто, я послал запрос в среду, пока не звонили и не писали (работаю в США в универе, есть реальная надобность применения подобной вещи). Но судя по соглашению на страничке давать пробовать будут далеко не каждому. Пробующий соглашается активно участвовать в бета тестировании (не менее 10 часов в неделю, правда я не знаю как это можно проконтролировать, а потом заполнить кучу всего о результатах тестирования). Если что-то будет, обязательно поделюсь, но пока ... увы и ах :\
Автор: KChernov
Дата сообщения: 28.09.2006 13:30
akuaku

Цитата:
Точно входит? У меня вроде нет.

В 500Мб-ый дистриб точно входит.
В порезанный до 160 вроде бы нет.
Автор: dima333a
Дата сообщения: 07.12.2006 14:36
Вопрос перенесен из eBooks

djdtyfhu


Цитата:
Подскажите как интегрировать справку в Digital Visual Fortran v6.1, а то у меня версия справки, которая шла в инсталляторе - CHM и оболочка MS Visual Studio его не принимает, говорит неправильный формат файла справки.


У меня была похожая проблемма. Прямо на диске хелпа небыло (пираты вырезали). Но был диск с триальной версией CVF. Там была папка с хелпом. В папке целая куча CHM файлов. Я нашел тот который был корневым (dfmain.chm или что то в этом роде) и просто зделал к нему ярлык. Из MS VS справка неработала, но ИМХО это и не принципиально. Полный обьем хелпа был порядка 300Mb
Автор: djdtyfhu
Дата сообщения: 07.12.2006 18:23
dima333a


Цитата:
Полный обьем хелпа был порядка 300Mb


А ты не мог куда-нибудь выложить если не трудно, хотя 300 МБ
Автор: dima333a
Дата сообщения: 07.12.2006 18:44
djdtyfhu

Цитата:
А ты не мог куда-нибудь выложить если не трудно, хотя 300 МБ


мне не жалко. Скажи куда можно без серьезных хлопот залить 300Мб? Канал у меня достаточно быстрый.

Извиняюсь, соврал. все про все 156Мб

Кстати, справка это конечно дело хорошее, но много онлайн документации просто на сайтах производителей. Можешь поковырятся у того же HP на сайте. Раньше у них (compaq) все было, a сечас бог его знает. В книжках есть же линки. Просто надо копать.
Автор: djdtyfhu
Дата сообщения: 07.12.2006 19:52
dima333a

Цитата:
Скажи куда можно без серьезных хлопот залить 300Мб


Попробуй зайти на shareman.ru под анонимом и скинь в папку \users\del
Автор: dima333a
Дата сообщения: 07.12.2006 20:43
djdtyfhu
отписал в личку.
Автор: RUSer
Дата сообщения: 08.01.2007 17:26
Подскажите, как решить следующую проблему:

Поставил недавно VS2005, подключил к нему интел фортран 9.1.033.

Но теперь не могу откомпилировать прогу в режиме отладки. Нет, она компилируется, но работает не правильно - это видно по результатам. Самое интересное, что если выбрать режим Release - всё работает правильно, но, соответственно, никакой пошаговой работы с текстом проги не получается.

Почему такое происходит - мне совершенно не понятно. Уже перепробовал кучу комбинаций настроек - ничего не изменилось...

Что ещё более интересно - прога нормально компилировалась в обоих режимах в связке VS2003+IF9.0. Но, к моему большому сожалению, я не имею к ним доступа сейчас.

Межет у кого есть какие идеи на эту тему?
Автор: Simbr
Дата сообщения: 09.01.2007 07:17
RUSer
Наиболее вероятно, Вы используете неинициализированные переменные.
Автор: RUSer
Дата сообщения: 10.01.2007 18:36
Simbr
Переменные указываю таким образом:

Цитата:
real*8, ALLOCATABLE, DIMENSION (:,:) :: hx,hy,a, ....
real*8, ALLOCATABLE, DIMENSION (:) :: tok,hxpov, ....

real*8 krealax,eps,epsmax, ....

integer*4 i,j,inter,intermax, ....

character*18 hxfile,hyfile, ....


Или надо по другому?

Страницы: 123456789101112131415161718192021

Предыдущая тема: Относительное перемещение мыши


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.