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

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

Автор: KChernov
Дата сообщения: 17.03.2005 14:23
Попробовал поставить себе 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-а тоже было бы очень интересно.
Автор: KChernov
Дата сообщения: 21.03.2005 09:13
ап
Автор: KChernov
Дата сообщения: 25.03.2005 13:00
Появилась проблема (изменил исходное сообщение)
Автор: KChernov
Дата сообщения: 28.03.2005 09:42
Проблема оказалась в Reshaper-е - пришлось его снести
Автор: KChernov
Дата сообщения: 04.04.2005 11:23
up
Автор: dima333a
Дата сообщения: 04.04.2005 23:43
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 зачем? Помоему это очень легкое ограничение....
Автор: KChernov
Дата сообщения: 05.04.2005 16:11
dima333a
2. Какая версия компилятора и среды? Чем смотрите (Watcher, список переменных)? Под константами я имею в виду такое (пример для целой константы):
integer,parameter::N=100
Удается ли использовать ее в выражениях в Watcher-е или только получить значение?

5. Спасибо за обзор, но он несколько устарел. Интересно было бы узнать про тот же SSE2 на АМД64...

6. А как обходите эту проблему вы? А если у вас проект лежит на сервере и на политику именования вы влиять не можете? Каждый раз копировать к себе на комп? Или есть варианты?
Автор: dima333a
Дата сообщения: 05.04.2005 19:56
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
Автор: KChernov
Дата сообщения: 06.04.2005 15:10
dima333a
2. В смысле, как имя переменной? Описывать не константой, а переменной?
Вписывать имя пробовал - пишет, что оно не определено
Идея появилась - мб это от опций компилятора зависит - надо будет посмотреть...
С обычными переменными никаких проблем нет - все показывается.

6. Просто я веду занятия по Фортрану и в компьютерном классе стоит везде CVF, а папки у студентов все на сервере и обозвано все русскими буквами
При обычном использовании это обходится, но поскольку папки с русскими именами на компах встречаются и приходится таскать проекты с компа на комп, все равно приходится следить за этим.
Насчет лаптопа - вариант, конечно, но таскать его с собой постоянно не хочется (да и нет особой необходимости) - скорее уж тогда переносной винт завести.
Автор: dima333a
Дата сообщения: 08.04.2005 03:19
KChernov

2. Проблему подтверждаю. Сам не сталкивался, т.к. константы обычно задаю как переменные

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

Соответственно студентик себе один батник запустил и у него уже все на локальном компе. Запустил второй батник и его файлы на сервере просинхронизировались с локальными рабочими


Автор: KChernov
Дата сообщения: 08.04.2005 11:26
dima333a
2. Так хочется быть уверенным, что это именно константа и что я ее нигде случайно не изменяю. Или для этого есть другой путь?
Опять же, со статическими массивами можно работать только с константами (размерности задавать). Правда как правило динамические массивы все равно лучше, но иногда (когда размерность заранее известна и точно меняться не будет) их можно использовать, и использовать в таких случаях динамические - то же как-то не очень

6. Спасибо, попробую.
Плохо, когда чисто технические задачи приходится решать административными методами и наоборот - но иногда приходится
Автор: dima333a
Дата сообщения: 10.04.2005 05:57
KChernov

2. Извините, глупый конечно вопрос... Но вы намеренно изменять константу заданную как
integer,parameter::N=100
пробовали ? Попробуйте написать код так, что гдето намеренно константа N принимает другое значение.... И посмотрите что получится


З.ы. такие константы print statemen-отм можно при начале программы выводить на экран или в файл для удобства
Автор: KChernov
Дата сообщения: 11.04.2005 12:22
dima333a
2. У вас работает? Или вы так просто спрашиваете?
У меня оно не компилируется - выдает это: This PARAMETER constant name is invalid in this context

Получение значений - хрен с ним - можно и в самой проге посмотреть - они же не изменяются
А вот то, что нельзя их использовать при отладке в вотчере - это полная фигня - нафига нужны такие неполноценные константы
Просто если уж пользоваться отладчиком - то его вполне достаточно.
А так приходится извращаться
Автор: dima333a
Дата сообщения: 11.04.2005 16:30
KChernov

2. Ну собственно это я к чему? А к тому что случайно значение константы заданной как parameter внутри программы Вы не измените. Компилятор Вам просто выдаст ошибку если внутри программы вы пытаетесь намеренно или не намеренно изменить значение константы заданной как parameter, сооответственно не имеет смысла контролировать значение константы по ходу выполнения программы.

Видимо внутри программы константы заданные как parameter реализованны несколько по другому относительно переменных, (для того что бы их нельзя было изменить) и поэтому watch неможет их правильно отобразить
Автор: KChernov
Дата сообщения: 12.04.2005 10:07
dima333a
2. Я это все прекрасно понимаю. Именно поэтому в таких случаях и хочу использовать константы.
А насчет
Цитата:
не имеет смысла контролировать значение константы по ходу выполнения программы
- я уже писал, зачем мне это надо

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

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

Если какая-то вещь не согласуется с собственной концепцией - она становится убогой и ее использование усложняется, но ее неиспользование тоже не сахар - прямо хоть все выкидывай

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

Насчет
Цитата:
Видимо внутри программы константы заданные как parameter реализованны несколько по другому относительно переменных
- константы вычисляются в первую очередь и вместо них подставляются их значения.
Но совершенно непонятно, почему не сделали поддержку для этого для режима отладки
Автор: dima333a
Дата сообщения: 12.04.2005 22:40
KChernov

Честно говоря я не совсем вас понимаю . Пожалуйста приведите реальный пример.
Я в ниже излагаю свою логику:


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

Вы писали:


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

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


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

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


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


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


Автор: KChernov
Дата сообщения: 13.04.2005 10:58
dima333a

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

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

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



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

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

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

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



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

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



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

Я имел в виду, что не в процессе выполнения, а между запусками.
Автор: dima333a
Дата сообщения: 14.04.2005 02:33
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... так даже с очень большим набором констант в одном файле все ищется практически мнгновенно.










Автор: KChernov
Дата сообщения: 14.04.2005 10:06
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". В нем подразумевается, что студия уже стоит.
Автор: azertyuu
Дата сообщения: 14.04.2005 12:04
KChernov:

Хотел вот себе тоже установить последний интеловский фортран. Сейчас работаю с Compaq Visual Fortran 6.5 (то есть типа его предшественник). Прочитал этот топик, и задумался, стоит ли Как считаете?

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


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

В Compaq Visual Fortran 6.5, например, с этим проблем вроде не возникало.
Автор: KChernov
Дата сообщения: 14.04.2005 13:14
azertyuu

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

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

Так сразу больше не вспоминается - спрашивайте конкретно - вспомню


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

Да.

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

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


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

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

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

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

Теперь я так понимаю согласно договоренности между HP и Intel все остатки бизнеса перешли к Intel, соответственно Compaq Digital FORTRAN реинкарнируется в Intel Fortran.

Мне лично сам компилятор нравится больше от Intel, да и Intel будет развивать это дело дальще и оптимизирует под новейшие процессоры от Intel. Но ... CVF занимает меньше места на диске, значительно легче устанавливается... и оптимизирует под AMD и Intel.


Автор: KChernov
Дата сообщения: 15.04.2005 10:43
dima333a

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

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


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

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


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

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


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

При необходимости оптимизации вполне можно откомпилить релиз проекта под CVF.
Кроме того, можно попробовать обмануть интеловский компилятор, чтобы он думал, что это П3, например.
Автор: dima333a
Дата сообщения: 15.04.2005 20:34
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 была успешно открыта. Если вам интересно или/и можете внести свой вклад, то милости просим сюда

Автор: ValterG
Дата сообщения: 16.04.2005 19:16
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% времени с"едает пересылка
данных, но у меня нет статистики - только интуиция... и мнение спецов.
Автор: dima333a
Дата сообщения: 16.04.2005 20:59
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% всего времени было занято решателем (что собственно говоря и неудивительно )
Автор: KChernov
Дата сообщения: 18.04.2005 10:53
dima333a

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

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


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

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


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

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


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

Об этом?

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



Цитата:
Intel VTune

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



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

Спасибо, я уже сам нашел ее.
Как-нибудь доберусь.

Добавлено:
ValterG
1) Тогда что имеет в виду Интел, когда пишет, что все работает с CVF и VS6?
А копирнуть link.exe недостаточно?
Автор: dima333a
Дата сообщения: 19.04.2005 00:44
KChernov

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


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


Цитата:
Об этом?


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


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

Автор: KChernov
Дата сообщения: 19.04.2005 11:28
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 \
$< $@

Автор: dima333a
Дата сообщения: 19.04.2005 22:56
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аке файла вытащили? можно в личку

Страницы: 123456789101112131415161718192021

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


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