[win64]Какой компилятор фортрана будет работать на компе с АМД64?

durka82

Intel Fortran можно как-нибудь заставить?

banderon

Intel скорее всего и будет работать, только надо самый новый с ихнего сайта качать.
У меня под Linux-x64 работает, только вот почему-то сам компилятор был 32-битным приложением, а код генерил самый настоящий 64-битный
Под Windows не пробовал, но на сайте точно есть.

durka82

То есть просто попробовать поставить их 32-х битный компилятор?

Sebasten

Перекомпилируй свой компилятор им же, будет он у тебя 64 битным тоже

banderon

Как я его перекомпилирую, если у меня его исходников нет и быть не может?
А под Windows вроде у них на сайте есть две версии компилятора под 32 и под 64, причем обе компилят 64-битный код.
Может и под линукс уже тоже сделали так же. Надо будет посмотреть...

banderon

То есть просто попробовать поставить их 32-х битный компилятор?
Если ты просто хочешь компилировать программы, и тебе все равно какой должен быть код: 32-битный или 64-битный, то все равно что ставить, лишь бы работало. Если же хочешь, чтобы код был именно 64-битный для Win64, то тогда обязательно качай что-нибудь вроде версии для EM64T. В любом случае на сайте Intel лучше объяснят.

durka82

Ты сам себе противоречишь
Так какое же из твоих утверждений вернее?
Это:
У меня под Linux-x64 работает, только вот почему-то сам компилятор был 32-битным приложением, а код генерил самый настоящий 64-битный
или это:
Если же хочешь, чтобы код был именно 64-битный для Win64, то тогда обязательно качай что-нибудь вроде версии для EM64T
Или ты имеешь в виду, под какой проц откомпилирован сам компилятор?
то тогда обязательно качай что-нибудь вроде версии для EM64T
Вообще-то для АМД64 это скорее не так, чем так
Вопрос еще актуален.

ava3443

А ты хоть какой-нибудь попробовал поставить?
Насколько я понимаю, под AMD64 должны работать
а) все компиляторы, которые работали под x86
б) все компиляторы, которые специально сделаны под AMD64
По идее, также должны работать и компиляторы, сделанные под EMT64.
Из твоих постов я пока не понял, нужно ли тебе генерить код, использующий навороты 64-битной архитектуры.

durka82

А ты хоть какой-нибудь попробовал поставить?
Да мне еще некуда
Но надо же заранее знать (например, чтобы аргументированно объяснить, почему нам надо купить комп именно на АМД64, на не на Р4 - а то вон уже 2 на Р4 купили да и за советами иногда обращаются...
Из твоих постов я пока не понял, нужно ли тебе генерить код, использующий навороты 64-битной архитектуры.
Сори, облажался, но зачем тогда покупать именно 64-х битную систему, а уж тем более ставить на нее именно 64-х битную ось
Ведь можно же поставить все 32-х битное и радоваться жизни...
Вопрос стоит именно так, какой компилятор сможет сделать АМД64-код, будучи поставленным под 64-х битную ось?
Кстати, а на компиляторе из под 32-х битной оси точно нельзя делать 64-х битный код?
По идее, также должны работать и компиляторы, сделанные под EMT64
То есть можно поставить на АМД64 версию Интел Фортрана для Итаниума? (в смысле, что она будет работать и делать 64-х битный код для АМД64?)
Ну и еще про оптимальность полученного кода тоже интересно узнать, а то некоторый статьи в инете говорят о том, что Интел Фортран делает плохой код для АМД64 специально, другие наоборот говорят, что все нормально работает
И еще, если у кого есть ссылка на грамотное сравнение АМД64 и Итаниума именно с точки зрения программирования под них - киньте, плиз

ava3443

То есть можно поставить на АМД64 версию Интел Фортрана для Итаниума?
Не путай EMT64 с Итаниумом. Это две большие разницы, совместимость между ними отсутствует напрочь. Более того, если узнаешь цены на итаниумные серверы - сразу забудешь про них.

banderon


Вопрос стоит именно так, какой компилятор сможет сделать АМД64-код, будучи поставленным под 64-х битную ось?
Кстати, а на компиляторе из под 32-х битной оси точно нельзя делать 64-х битный код?
Еще раз. Intel предлагает вашему вниманию целый набор компиляторов. При этом компиляторы отличаются
во-первых тем, под какую архитектуру они генерируют код.
во-вторых тем, на какой архитектуре они сами могут работать.
Простой пример: ты девелопер, и сидишь на 32-битном проце, а заказчик хочет код под Итаниум. Тогда тебе нужен компилятор, который сам работает на 32-битных процах, а код создает для Итаниума.
Далее Intel более-менее поддерживает три архитектуры: IA-32, Itanium, EM64T. Соответсвенно всего разных вариантов - 3x3=9, хотя на сайте они предлагают только 5 из них.
В итоге ответ на первый твой вопрос: Интеловский компилятор сможет сделать АМД64-код, хотя они это называют по-другому - Intel® Extended Memory 64 Technology. (Правда глупо бы звучало, если бы интеловский компилятор был заточен именно под АМД?)
Ответ на второй вопрос: можно компилить код для АМД64 даже на обычном пентиуме (первом но вот есть ли смысл в этом? Ведь ты даже не сможешь проверить, как работает твоя программа, не имея под рукой тру 64-битной системы.

То есть можно поставить на АМД64 версию Интел Фортрана для Итаниума? (в смысле, что она будет работать и делать 64-х битный код для АМД64?)
А вот этого не советую... Твой выбор - EM64T.

durka82

Интеловский компилятор сможет сделать АМД64-код, хотя они это называют по-другому - Intel® Extended Memory 64 Technology
А вот этого не советую... Твой выбор - EM64T.
Именно это и интересовало.
Большое спасибо всем

durka82

Посоветуйте библиотеку для расчетов с произвольной точностью для фортрана.

durka82

Появились еще вопросы:
1. Можно ли (и как) под VS.net2003 откомпилировать под АМД64?
В документации нашел две опции, которые похожи на то, что мне нужно: i32em и i64.
Но куда его прописывать в VS-е не нашел
Например там в закладке компиляции есть пункт - получившаяся командная строка, и там можно добавлять еще свои опции, но попытка прописывания туда этих ключей привела только к руганию на них компилятора
Или хотя бы приведите пример командной строки для компиляции с получением АМД64.
2. В VS.net2003 не видится отладчик интеловского фортрана - судя по всему подключается сишный, что приводит к невозможности отладки
Может это быть связано с тем, что отладчик IVF - 32-х битный?
Пробовал использовать отладчик, который ставится самим фортраном (не в студию но так сразу он у меня не заработал (правда я и не разбирался)...
Проблема мб в том, что туда сначала ставили VS 2005 64-bit, потом VS 2003, а уже потом IVF 9?
3. Еще один минус Интел фортрана по сравнению с Компак фортраном: в последнем работала контекстная помощь.
Вот бы chm прикрутить к студии - это возможно?
4. Нашел в файле for_main.chm описание функции, которая мне нужна, но при компиляции не видится библиотека, в которой эта функция описана Где ее прописать в студии?

durka82

И еще:
5. Видел в коде такой прием:
real a,b,c,d
...
c = a * b
d = a * b - c
Вроде как они таким образом пытаются получить перенос, который получается при переполнении при умножении.
Но я попробовал такой прием и сравнил с умножением при более высокой точности - совпадений нет
Я что-то не так настроил, или это еще зачем надо?
6. Можно ли как-то получить этот самый перенос при переполнении в фортране (и при сложении, и при умножении)? Ведь ассемблерная команда, которой осуществляется умножение (например имеет результатом два слова - то, что обрезается и само переполнение. Или это нельзя получить в фортране, а только через ассемблерные вставки в С?

durka82

ап
Оставить комментарий
Имя или ник:
Комментарий: