LINUX.ORG.RU
ФорумTalks

для чего нужен fortran???


0

0

Неоднократно приходилось слышать, что он, в основном, применяется для вычислений, типа быстрый очень...

cмотрим тут: http://shootout.alioth.debian.org/gp4/benchmark.php?test=all&lang=ifc&...

получается g++, в среднем, быстрее intel fortran! но по использованию памяти менее экономичен...

http://shootout.alioth.debian.org/gp4/benchmark.php?test=all&lang=ifc&...

intel c даёт ещё более более лучшие результаты...

Перемещено Die-Hard из Development

anonymous

If you don’t know what that is you don’t need it. (c)

anonymous
()

>в основном, применяется для вычислений

true

>типа быстрый очень

false

А применяется он потому что "есть математическая задача - есть библиотека на фортране для ее решения".

redgremlin ★★★★★
()

Ну, это один из первых "высокоуровневых" языков программирования ever. Так и применяется, по инерции. Вдобавок, он один из первых заимел многомерные массивы (т. е. матрицы) и встроенные операции над ними. Из мейнстримных языков подобное есть разве что в С++, но там очень злой код на шаблонах, и он ничем не лучше фортрана.

Ну а ФП русские физики, как водится, не осилили, у них в голове сплошной бейсик и GOTO. Вот и пишут.

anonymous
()
Ответ на: комментарий от redgremlin

>А применяется он потому что "есть математическая задача - есть библиотека на фортране для ее решения".

У меня было предчувствие, что ответ будет подобный)

Но почему, тогда не писали (не пишут) эти библиотеки на более быстром языке? На там же C, к примеру, он уже оочень давно существует... Вычисления, это та область, где быстродействие очень важно, вычисления могут сутками идти.. это же не тот случай, когда не принципиально важно, за 10 или за 40 секунд у бухгалтерши отчёт сгенерируется...

anonymous
()
Ответ на: комментарий от anonymous

> С++, но там очень злой код на шаблонах, и он ничем не лучше фортрана.

Как, ни чем не лучше? А быстродействие??

>Вдобавок, он один из первых заимел многомерные массивы (т. е. матрицы)

а вот на си:

int matrix[N][N];

это не оно? Fortran, конечно, раньше появился, но почему со временем не перешли на C или тотже С++?

anonymous
()
Ответ на: комментарий от anonymous

>Ну а ФП русские физики, как водится, не осилили

В физике ФП не нужно.

>у них в голове сплошной бейсик и GOTO

4.2 C, C++, Delphi, Fortran

redgremlin ★★★★★
()
Ответ на: комментарий от anonymous

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

koTuk
()
Ответ на: комментарий от anonymous

>Но почему, тогда не писали (не пишут) эти библиотеки на более быстром языке?

Потому что проще к дому новую веранду присобачить, чем с нуля начинать.

redgremlin ★★★★★
()
Ответ на: комментарий от redgremlin

Неужели это всё из-за того, что, так исторически сложилось и, вообще, "ниасилили"? Хотя последний аргумент, странный, т.к. уже не одно поколение людей сменилось...

Действительно, существуют какие-то библиотеки, которые десятилетиями используются? А новые никто не пытается начать?

anonymous
()
Ответ на: комментарий от anonymous

>Неужели это всё из-за того, что, так исторически сложилось

Самого в универе интересовало. Да, потому что так сложилось.

>Действительно, существуют какие-то библиотеки, которые десятилетиями используются?

Да.

>А новые никто не пытается начать?

Начинают. И на С кое-что переписывают. Но там столько всего, что до фортранокапца еще долго.

redgremlin ★★★★★
()
Ответ на: комментарий от redgremlin

>столько всего

Так, чтоли старые развивают? Зачем? Тогда конца вообще не предвидется... Если старые не развивают, неужели за десятилетия никто сделал новые? С трудом можно представить, что сейчас кто-нибудь будет использовать какую-нибудь owl или turbovision...

anonymous
()
Ответ на: комментарий от anonymous

>С трудом можно представить, что сейчас кто-нибудь будет использовать какую-нибудь owl или turbovision...

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

redgremlin ★★★★★
()
Ответ на: комментарий от redgremlin

по моему за полвека и новых теорий не мало появилось в математике, да и алгоритмы новые появляются и старые улучшаются

anonymous
()
Ответ на: комментарий от anonymous

>алгоритмы новые появляются

А их часто и не на фортране пишут ...

>старые улучшаются

В этом и проблема - проще часть изменить, чем все, так и живет.

>новых теорий не мало появилось в математике

Они в себя и старое включали, которое уже было в фортране. Опять проблема переписки с нуля.

redgremlin ★★★★★
()
Ответ на: комментарий от anonymous_incognito

>У меня есть сильное подозрение, что с нуля просто некому переписывать.

C-шники разучились математику понимать?

redgremlin ★★★★★
()
Ответ на: комментарий от anonymous_incognito

>У меня есть сильное подозрение, что с нуля просто некому переписывать.

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

seiken ★★★★★
()

Фортран нужен.

1) Зачем переписывать кучу библиотек, математического ПО и.т.п., когда на фортране оно и так хорошо и стабильно живет? А на переписывание нужно время, потом время чтобы отладить... Людям, которые математикой занимаются, моделированием нет времени чтобы переписывать это, да и не нужно.

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

anonymous
()
Ответ на: комментарий от anonymous

>Лично Вам — да.

А можно пример, где функциональшина в физике предпочтительней императивщины? Я сходу придумать не смог.

redgremlin ★★★★★
()
Ответ на: комментарий от anonymous

интересно, а реально написать такой парсер, который возьмет текст либы на фортране и сделает текст либы на си? пускай даже потом его надо будет маленько доработать руками, но "малой кровью"? если реально, то почему этого еще никто не сделал?

anonymous
()
Ответ на: комментарий от anonymous

>интересно, а реально написать такой парсер, который возьмет текст либы на фортране и сделает текст либы на си?

ftp://www.netlib.org/f2c/

redgremlin ★★★★★
()
Ответ на: комментарий от anonymous

>ну типа так производительность увеличится

С чего бы? Тесты на Си быстрее Фортрана, потому что они _написаны_ на Си. Т.е. их люди написали на Си. Качественный же переводчик Си->Фортран будет имет сложность, практически равную полноценному компилятору Фортрана.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

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

anonymous
()
Ответ на: комментарий от anonymous

> ну вот выше дана ссылка на такую штуку, значит она кому-то нужна. а для чего ее тогда сделали

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

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

>Вероятно, для систем, где нет компилятора Фортрана.

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

anonymous
()

Фортран быстрее С++ в плане векторных операций. Да и удобнее. Есть даже специальное оборудование, на котором Фортрановые проги просто летают. Замены Фортрану пока нет.

anonymous
()
Ответ на: комментарий от anonymous

как же он быстрее, если тесты доказывают обратное? даже java обошла его вроде там кое-где! средства распараллеливания и для с есть

anonymous
()
Ответ на: комментарий от anonymous

>как же он быстрее, если тесты доказывают обратное? даже java обошла его вроде там кое-где!

Джава обошла компьютер, это мы уже знаем.

seiken ★★★★★
()
Ответ на: комментарий от tailgunner

> Качественный же переводчик Си->Фортран будет имет сложность, практически равную полноценному компилятору Фортрана.

Ээ... может, _парсеру_ фортрана? Хотя, тоже не архисложная штука.

> Вероятно, для систем, где нет компилятора Фортрана.

Это по собственному опыту, или так, отвлечённо-умозрительно? >;-)

Разницы в производительности между C и Фортраном как языками нет. Средний стиль программ отличается (за счёт удобства/неудобства каких-то конкретных приёмов), это может немного влиять.

> Ну а ФП русские физики, как водится, не осилили, у них в голове сплошной бейсик и GOTO.

Домашнее задание. Метод Гаусса (решение линейной системы) в функциональном стиле.

В процессе можно посмотреть на http://www.haskell.org/haskellwiki/Applications_and_libraries/Mathematics#Lin... , вспомнить что такое GSL и на каком языке написана LAPACK.

anonymous
()
Ответ на: комментарий от anonymous

> Разницы в производительности между C и Фортраном как языками нет

как же нет, если тесты показывают обратное?

>Джава обошла компьютер, это мы уже знаем.

как это? непонятно

anonymous
()
Ответ на: комментарий от anonymous

>> Качественный же переводчик Си->Фортран будет имет сложность, практически равную полноценному компилятору Фортрана.

> Ээ... может, _парсеру_ фортрана? Хотя, тоже не архисложная штука.

Компилятору.

>> Вероятно, для систем, где нет компилятора Фортрана.

>Это по собственному опыту, или так, отвлечённо-умозрительно? >;-)

http://en.wikipedia.org/wiki/F2c

Ъ: "one of the most common means to compile Fortran code on many systems where native Fortran compilers were unavailable or expensive".

> Разницы в производительности между C и Фортраном как языками нет.

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

tailgunner ★★★★★
()

На фортране написана куча математических библиотек, никто их переписывать не будет. Хотя они без проблем использкются в C/C++

Reset ★★★★★
()
Ответ на: комментарий от anonymous

А зачем, если фортрановские либы без проблем линкуются с C/C++ кодом?

Reset ★★★★★
()

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

В целом для цислодробильни intel fortran существенно быстрее g++.

Главное преимущество Фортрана в том, что он легок в оптимизации, поэтому можно писАть программу абы как, компилятор все соптимизирует. Кроме того, в (стандартном) языке имеются конструкции, которые отсутствуют в Це/ЦеПП (только в расширениях или в виде интринсиков).

Die-Hard ★★★★★
()
Ответ на: комментарий от Die-Hard

тесты в ссылках наверху как раз вычислительные

anonymous
()
Ответ на: комментарий от anonymous

> Действительно, существуют какие-то библиотеки, которые десятилетиями

> используются? А новые никто не пытается начать?

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

gene
()
Ответ на: комментарий от anonymous

Да это не те тесты :) Они во многом искусственные. В реальной выч. задаче, будет наоборот. Перепишите на Яве вот это, например, www.ansys.com. Как альтернатива только Си/Си++, но никто этого делать не будет, почему --- уже много написали. И вряд ли получится быстрее.

gene
()
Ответ на: комментарий от Die-Hard

+1

И на счет конструкций: Фортран 90 это то, что называется array language. Всегда приятно писать сразу векторные операции там, где они на самом деле векторные, и не писать кучу вложенных циклов.

gene
()
Ответ на: комментарий от anonymous

> а реально написать такой парсер, который возьмет текст либы на фортране и сделает текст либы на си?

Есть f2c, но там малой кровью не отделаешься.

P.S. Fortran делает своё дело и делает его хорошо.

Evgueni ★★★★★
()
Ответ на: комментарий от gene

>Всегда приятно писать сразу векторные операции там, где они на самом деле векторные, и не писать кучу вложенных циклов.

На С++ такое тоже можно сделать элементарно!

anonymous
()
Ответ на: комментарий от anonymous

Kliuchevoe slovo "srazu" :)

Mozhno, konechno, ya zhe ne utverzhdal, chto nel'zia. Tol'ko zachem, esli v F90 eto po umolchaniyu est', v standarte, i delat' nichego ne nuzhno, a mozhno pisat' srazu "po delu"? Ya ponimyu, chto kazdyi esli ne pisal, to smozhet, napisat' klassy dlia matrits i tak dalee. No smysl?

Biblioteki dlia lin. algebry na c++ est', i horoshie, tipa gmm++, no standartnymi oni poka ne stali, i mnogo nuzhnogo v nih net.

Standrtnyh bibliotek dlia vectronyh operatsiy ia tozhe ne znayu. I vriadli kto-to budet perepisyvat' uzhe imeiuschiusia functsional'nost, i tak sdelannuyu horosho.

P.S. Proshu proscheniya za translit.

gene
()
Ответ на: комментарий от gene

на заре ROOTa, Rene&Fons только тем и занимались, что
доказаывали, что C++ быстрее(не медленнее) фортана.
Stress тестов было проведено немеряно.

Valeriy_Onuchin ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.