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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Попробовал поставить себе Intel fortran 8.1 поверх Visual Studio 2003 и появились вопросы:
1. Можно создать проект и работать с ним, но если его закрыть и попробовать открыть опять - VS падает На vs доставлены xmlspy и reshaper. При запуске отладчика выдается следующее исключение: System.StackOverflowException. И в отладчике появляется файл "free.c" и курсор указывает на 103-ю строку - конец процедуры "void __cdecl _free_base (void * pBlock)". Проблема оказалась в Reshaper-е - пришлось его снести - но мб это как-то можно победить не снося его?..
2. Можно ли настроить, чтобы константы показывались в отладчике?
3. Можно ли настроить, чтобы для консольных приложений кодировка в окне консоли совпадала с кодировкой редактора vs?
4. Интеграция с vs 6 реально происходит? А то при установке пункты интеграции с vs 2002/2003 есть, а с vs 6 - нету. Попробовал поставить - того, что произошла интеграция, не заметил
5. Насколько хорошо откомпилированный код работает на АМД-процах?
6. Можно ли бороться с тем, что при наличии русских символов в пути к файлу/проекту компиляция не происходит?
 
Если кто знает решение вопросов 2, 3 и 6 для compaq fortran-а тоже было бы очень интересно.

Всего записей: 2471 | Зарегистр. 20-04-2004 | Отправлено: 15:23 17-03-2005 | Исправлено: KChernov, 12:00 28-03-2005
KChernov



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

Всего записей: 2471 | Зарегистр. 20-04-2004 | Отправлено: 10:13 21-03-2005
KChernov



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Появилась проблема (изменил исходное сообщение)

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



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Проблема оказалась в Reshaper-е - пришлось его снести

Всего записей: 2471 | Зарегистр. 20-04-2004 | Отправлено: 11:42 28-03-2005
KChernov



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

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



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KChernov
 
1.Честно говоря не сам, но мой коллега (довольно неопытный в компютерах ) установил IF 8.X и Visual Studio.Net . Создавал проект и все чудненько работало. Деталей не помню, так как только пару раз ему помогал с этим делом...  
 
2. Незнаю. В CVF 6.6 все показывается в отладчике без проблем, но это уже совсем другая история.
 
5. Слышал что работает, но Intel зделал так что на не  Intel Процессорах оптимизации не работают....  
Посмотрите обзорчик http://www.ixbt.com/cpu/insidespeccpu2000-compilers.shtml
 
В принципе кое что из него можно почерпнуть. Так как CVF уже не жилец, и все перешло к интел, то трудно скажать что будет в дальнейшем.
 
6. A зачем? Помоему это очень легкое ограничение....

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



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dima333a
2. Какая версия компилятора и среды? Чем смотрите (Watcher, список переменных)? Под константами я имею в виду такое (пример для целой константы):
integer,parameter::N=100
Удается ли использовать ее в выражениях в Watcher-е или только получить значение?
 
5. Спасибо за обзор, но он несколько устарел. Интересно было бы узнать про тот же SSE2 на АМД64...
 
6. А как обходите эту проблему вы? А если у вас проект лежит на сервере и на политику именования вы влиять не можете? Каждый раз копировать к себе на комп? Или есть варианты?

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



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KChernov
 
 
2. Я сокращяю Cоmpaq Visual FORTRAN как CVF.  Ver. 6.6
A вы как имя переменной прописать не пробовали (там где в дебаггере смотрите как изменяются переменные ? Панелька называется Watch.
 
5. Ну обзор дает представление как оптимизации Intel действовали на AMD... хотeлось бы конечно посвежей информации, но чем богаты тому и рады...
 
6. Извините за разведение флейма, но зачем проэкт ложить на сервер?  Я работаю в группе с двумя другими людьми с одним и тем же софтом, но относительно независимыми частями. У меня CVF + легальная копия софта установленны на моем собственном лаптопе. Все свое всегда с собой. Через определенные промежутки времени мы садимся вместе и синхронизируем код. Ну еще я каждый день делаю back up на другой компютер что бы если что то ничего не потерялось.  
 
Ну еще в добавок пишем мы на f77 что бы можно было перекомпирировать на разных платформах (типа SUN, DEC Alpha, Linux ... ) Т.Е. использовать удобную среду разработки (CVF ) для нужд различных платфом. Неидеально (т.к. глуки встречаются и разные компиляторы имеют разный уровень толерантности ....) , но мне очень удобно.
 
С Уважением dima333a

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



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dima333a
2. В смысле, как имя переменной? Описывать не константой, а переменной?
Вписывать имя пробовал - пишет, что оно не определено
Идея появилась - мб это от опций компилятора зависит - надо будет посмотреть...
С обычными переменными никаких проблем нет - все показывается.
 
6. Просто я веду занятия по Фортрану и в компьютерном классе стоит везде CVF, а папки у студентов все на сервере и обозвано все русскими буквами
При обычном использовании это обходится, но поскольку папки с русскими именами на компах встречаются и приходится таскать проекты с компа на комп, все равно приходится следить за этим.
Насчет лаптопа - вариант, конечно, но таскать его с собой постоянно не хочется (да и нет особой необходимости) - скорее уж тогда переносной винт завести.

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



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KChernov
 
2. Проблему подтверждаю. Сам не сталкивался, т.к. константы обычно задаю как переменные
 
6.Ну студентам надо помочь... Не самое елегантное решение (как вы впрочем уже и сами предложили) но вполне рабочее..
написать пару батников, что бы создавали C:\temp\student  директорую, и туда все копировали
Как закончили работать с проектом, все копируется назад на сетевой диск. Можно пользоватся командой XCOPY . Я так себе бекапы создаю:
XCOPY /D /S /F /V /Y  localFolder     "\\Server\Files (G)\Laptop\BackUp\CopyOfFolders"
(с данными клучаями копируются только новые или измененные файлы.
 
Соответственно студентик себе один батник запустил и у него уже все на локальном компе. Запустил второй батник и его файлы на сервере просинхронизировались с локальными рабочими
 
 

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



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dima333a
2. Так хочется быть уверенным, что  это именно константа и что я ее нигде случайно не изменяю. Или для этого есть другой путь?
Опять же, со статическими массивами можно работать только с константами (размерности задавать). Правда как правило динамические массивы все равно лучше, но иногда (когда размерность заранее известна и точно меняться не будет) их можно использовать, и использовать в таких случаях динамические - то же как-то не очень
 
6. Спасибо, попробую.
Плохо, когда чисто технические задачи приходится решать административными методами и наоборот - но иногда приходится

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



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KChernov
 
2. Извините, глупый конечно вопрос... Но вы намеренно изменять константу заданную как  
integer,parameter::N=100  
пробовали ? Попробуйте написать код так, что гдето намеренно  константа N принимает другое значение....  И посмотрите что получится
 
 
З.ы. такие константы print statemen-отм можно при начале программы выводить на экран или в файл для удобства

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



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dima333a
2. У вас работает? Или вы так просто спрашиваете?
У меня оно не компилируется - выдает это: This PARAMETER constant name is invalid in this context
 
Получение значений - хрен с ним - можно и в самой проге посмотреть - они же не изменяются
А вот то, что нельзя их использовать при отладке в вотчере - это полная фигня - нафига нужны такие неполноценные константы
Просто если уж пользоваться отладчиком - то его вполне достаточно.
А так приходится извращаться

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



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KChernov
 
2. Ну собственно это я  к чему? А к тому что случайно значение константы заданной как parameter внутри программы Вы не измените. Компилятор Вам просто выдаст ошибку если внутри программы вы пытаетесь намеренно или не намеренно изменить значение константы заданной как parameter, сооответственно не имеет смысла контролировать значение константы по ходу выполнения программы.
 
Видимо внутри программы константы заданные как parameter реализованны несколько по другому относительно переменных, (для того что бы их нельзя было изменить) и поэтому watch неможет их правильно отобразить  

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



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dima333a
2. Я это все прекрасно понимаю. Именно поэтому в таких случаях и хочу использовать константы.
А насчет
Цитата:
 не имеет смысла контролировать значение константы по ходу выполнения программы
- я уже писал, зачем мне это надо

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

То есть если у меня массив задан от константы N, то я хочу иметь возможность использовать это N, например, для получения последнего эл-та массива.
Почему мне вместо этого приходится подставлять текущее значение этого N и отслеживать его, если он изменится в программе, я категорически не понимаю.
 
Если какая-то вещь не согласуется с собственной концепцией - она становится убогой и ее использование усложняется, но ее неиспользование тоже не сахар - прямо хоть все выкидывай
 
Можно конечно забить на отладчик и перейти полностью на модульное тестирование...
 
Насчет
Цитата:
Видимо внутри программы константы заданные как parameter реализованны несколько по другому относительно переменных
- константы вычисляются в первую очередь и вместо них подставляются их значения.
Но совершенно непонятно, почему не сделали поддержку для этого для режима отладки

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



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KChernov
 
Честно говоря я не совсем вас понимаю . Пожалуйста приведите реальный пример.
Я в ниже излагаю свою логику:
 

Цитата:
 - я уже писал, зачем мне это надо  
 
Вы писали:
 

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

Можете быть уверенны, если задали как параметр, то не меняется. A если по ошибке в коде гдето будет менятся то такой код нескомпилируется.
 

Цитата:
 Опять же, со статическими массивами можно работать только с константами (размерности задавать)  

Не совсем понимаю как отслеживание значения константы (котору вы сами задали, она даже не расчетная ) вам поможет ?
 

Цитата:
 То есть если у меня массив задан от константы N, то я хочу иметь возможность использовать это N, например, для получения последнего эл-та массива.  
Почему мне вместо этого приходится подставлять текущее значение этого N и отслеживать его, если он изменится в программе, я категорически не понимаю  

 
Опять же, если вы задали масив от константы N, a константу N задали как parameter  то ничего не надо отслеживать, значение N Вы знаете, т.к. сами есго прописали в коде, а код у вас перед глазами. И вообще зачем отслеживать то что не изменяется?
 
 

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



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

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

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

Цитата:
Не совсем понимаю как отслеживание значения константы (котору вы сами задали, она даже не расчетная ) вам поможет ?

1. Я не хочу ее отслеживать - я хочу ее использовать. Например так:

Цитата:
То есть если у меня массив задан от константы N, то я хочу иметь возможность использовать это N, например, для получения последнего эл-та массива.

2. Она может быть расчетная - вычисляться вчерез другие константы. И в этом случае невозможность ее использования в отладчике еще более усложняет жизнь
 
 

Цитата:
то ничего не надо отслеживать, значение N Вы знаете, т.к. сами есго прописали в коде, а код у вас перед глазами

А если это проект из нескольких файлов и в нем описано несколько десятков констант?
Даже если они все описаны в одном файле (что не всегда правильно), зачем я должен делать то, что вполне могла бы делать среда разработки, но почему-то не делает
 
 

Цитата:
Почему мне вместо этого приходится подставлять текущее значение этого N и отслеживать его, если он изменится в программе, я категорически не понимаю.

Я имел в виду, что не в процессе выполнения, а между запусками.

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



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KChernov
 
Хороше... похоже что таких констант у вас много, и вам очень не удобно их смотреть внутри файлов программы самостоятельно
 
Я так понимаю что это не ваше и мое неумение работы с MS Visual Studio, a такой режим просмотра просто не предусмотрен... что ж, в таком случае если вам всетаки хочется ... то надо выкручиватся...
 
Я бы вам предложил для отладки программы создать теневые переменные и им присваивать значения констант... Пример
 
integer,parameter::nаme=100  
integer:name_
 
............
name_=name
 
теперь в watch смотреть значение name_
 
************************************************************
 
А еще можно создать один хеадер (include) файл, и там отобразить все константы сразу, а потом его включить во все подпрограммы и основную программу как include. Пример
 
C ------------------------------------C
C       файл constants.f
C ------------------------------------C
 
       integer,parameter::nаme=100  
       integer,parameter::data_1=34
       real,parameter: speed=89.90
 
C ------------------------------------C
C End of file constants.f
C ------------------------------------C
 
C  -----------------------------------C
C  File main program
C- -----------------------------------C
 
       program test
       implicit none
       include 'constants.f'
       real::var1
 
       var1=speed/data_1
       write(*,*) var1
       end
C -----------------------------------C
C  End of File main program
C -----------------------------------C
 
Таким образом если отсортировать константы в алфавитном порядке то найти нужное значение будет едвали тяжелее чем в watch-ере. А если заюзать поиск MS Visual Studio... так даже с очень большим набором констант в одном файле все ищется практически мнгновенно.
 
 
 
 
 
 
 
 
 
 

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



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

Цитата:
похоже что таких констант у вас много, и вам очень не удобно их смотреть внутри файлов программы самостоятельно

Я просто жалуюсь на несовершинство среды
Но раз это никак не обходится - придется использовать другие варианты.
 

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

Вариант, видимо придется так и сделать.
 

Цитата:
А еще можно создать один хеадер (include) файл, и там отобразить все константы сразу

Я думал об этом, но это не всегда логично - в каждом модуле могут быть свои специфичные константы.
 

Цитата:
Таким образом если отсортировать константы в алфавитном порядке то найти нужное значение будет едвали тяжелее чем в watch-ере. А если заюзать поиск MS Visual Studio... так даже с очень большим набором констант в одном файле все ищется практически мнгновенно.

Поиск работает нормально (если не увлекаться однобуквенными идентификаторами), а вот Source Browser подглючивает - иногда вообще работать не хочет
 
Спасибо за вариант с теневыми переменными. Можно даже написать генератор и поставить его в пребилд для отладки
 
Добавлено:
dima333a

Цитата:
 A в документах на Intel FORTRAN и интеграцию с Visual studio разве ничего не сказанно? Типа какие компоненты необходимы....

Смотрел в "Intel® Visual Fortran Compiler for Windows* Systems Installing and Getting Started". В нем подразумевается, что студия уже стоит.

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



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KChernov:  
 
Хотел вот себе тоже установить последний интеловский фортран. Сейчас работаю с Compaq Visual Fortran 6.5 (то есть типа его предшественник). Прочитал этот топик, и задумался, стоит ли Как считаете?
 
Вы интеловский фортран на родном сайте у них брали? Evaluation version? Может, какие-то заморочки с этим связаны... Или есть где-то полнофункциональная "подлеченная" уже версия?  
 

Цитата:
То есть если у меня массив задан от константы N, то я хочу иметь возможность использовать это N, например, для получения последнего эл-та массива.  

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

Всего записей: 13 | Зарегистр. 12-04-2005 | Отправлено: 13:04 14-04-2005 | Исправлено: azertyuu, 13:05 14-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