Re[4]: Fortran vs C++
От: jazzer Россия Skype: enerjazzer
Дата: 14.07.09 03:31
Оценка:
Здравствуйте, Sergey Chadov, Вы писали:

SC>FFTW ЕМНИП написана на Окамле, который генерит сишный код, который уже собирается в бинарник


то есть все-таки сишный код, а не фортрановский?
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re: Fortran vs C++
От: MasterZiv СССР  
Дата: 14.07.09 06:06
Оценка:
Аноним 405 пишет:

> Разные люди говорят что вычислительные программы работают быстрее если

> они были написаны на Fortran-е а не на C++.

Чушь собачья, как ты наверное и сам догадался.
Быстрее те программы, которые быстрее, а не на каком-то определённом
языке.
Posted via RSDN NNTP Server 2.1 beta
Re[3]: Fortran vs C++
От: MasterZiv СССР  
Дата: 14.07.09 06:12
Оценка:
_Ursus_ пишет:

> TB>Например, массив структур хуже по времени доступа, чем параллельные

> массивы.
>
> Хочется услышать обоснование.
Да нет этому обоснования, потому что это не так.
Параллельные массивы делали в фортране :
-- потому что ещё не было структур (теперь уже есть)
-- потому что были ограничения один сегмент на один large-массив в DOS.

А так два массива парралельных -- это
от 2-х баз индексированое смещение получить,
или для массива структур от одной базы получить
смещение индексированное и потом ещё смещение внутри
структуры получить. Ну да, если одно поле -- на одну
операцию сложения больше. Но если одновременно доступ
к 5-6 полям, что в общем от структуры и требуется,
то наоборот, экономия может быть за счёт использования
предвычисленного смещения к началу структуры.
Posted via RSDN NNTP Server 2.1 beta
Re[2]: Fortran vs C++
От: MasterZiv СССР  
Дата: 14.07.09 06:19
Оценка:
Cyberax пишет:

> Дело в том, что у оптимизатора Фортрана намного больше свободы — там нет

> указателей (и алиасинга) и ряда других трудностей.

Что такое алиасинг ? А указатели (ссылки) в фортране есть. Есть
выделение памяти -- есть и указатели. Адресной арифметики нет, это да.
Но и в С++/С ты можешь её не использовать. В общем, всё на самом деле
зависит от качества оптимизирующего компилятора. ХОроший -- программы
будут быстрые, плохой -- будут медленные. Это естественно при условии,
что есть базовое качество программы на языке, которое обеспечивает
отсутствие деградации производительности, заложенной в самой программе.

Ну и ещё мелочи типа
> computed goto помогают (их нет в С, хотя есть в определённых реализациях).

Ага, ты ещё про константы Холерита вспомни, и расскажи, как они помогают
оптимизации программ на фортране.
Posted via RSDN NNTP Server 2.1 beta
Re[5]: Fortran vs C++
От: Programador  
Дата: 14.07.09 06:42
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Афегительный код! Твой?

Мой, ночами писаный!
Re[3]: Fortran vs C++
От: D14  
Дата: 14.07.09 06:43
Оценка:
Здравствуйте, MasterZiv, Вы писали:

MZ>Адресной арифметики нет, это да.

MZ>Но и в С++/С ты можешь её не использовать.

Это каким же образом массив в функцию без адресной арифметики передать можно?
Re[6]: Fortran vs C++
От: Аноним  
Дата: 14.07.09 06:48
Оценка: -1 :)
Здравствуйте, Programador, Вы писали:

P>Здравствуйте, Аноним, Вы писали:


А>>Афегительный код! Твой?

P>Мой, ночами писаный!

Уволить без выходного пособия!
Re[5]: Fortran vs C++
От: Programador  
Дата: 14.07.09 06:52
Оценка:
Здравствуйте, jazzer, Вы писали:

J>то есть все-таки сишный код, а не фортрановский?

не фортрановский

Question 2.10. Why isn't FFTW written in Fortran/C++?
Because we don't like those languages, and neither approaches the portability of C.

Question 2.7. Which language is FFTW written in?
FFTW is written in ANSI C. Most of the code, however, was automatically generated by a program called genfft, written in the Objective Caml dialect of ML. You do not need to know ML or to have an Objective Caml compiler in order to use FFTW.

genfft is provided with the FFTW sources, which means that you can play with the code generator if you want. In this case, you need a working Objective Caml system. Objective Caml is available from the Caml web page.

Re[3]: Fortran vs C++
От: D14  
Дата: 14.07.09 06:56
Оценка:
Здравствуйте, Programador, Вы писали:

P>сравнить можно http://www.drobotenko.com/code_rus.html


А смысл сравнивать РАЗНЫЕ алгоритмы? И с чем? C Intel MKL, AMD ACML?
Re[4]: Fortran vs C++
От: Sergey Chadov Россия  
Дата: 14.07.09 08:27
Оценка:
Здравствуйте, Programador, Вы писали:

P>PS собственно обращение в одной процедуре


P>против 500 строк из LINPAK


Нет ничего удивительного в том. что на каком-то коркретном частном случае более простой код и даже худший алгоритм окажется лучше универсального кода, написанного по последним достижениям науки. К тому же reference linpack все же не эталон производительности, нужно брать оптимизированные под конкретную платформу варианты, например Intel MKL, AMD core math library.
А код такой я бы если и написал — то точно бы постыдился показывать
Re[3]: Fortran vs C++
От: Cyberax Марс  
Дата: 14.07.09 09:08
Оценка:
Здравствуйте, MasterZiv, Вы писали:

>> Дело в том, что у оптимизатора Фортрана намного больше свободы — там нет

>> указателей (и алиасинга) и ряда других трудностей.
MZ>Что такое алиасинг ? А указатели (ссылки) в фортране есть.
http://en.wikipedia.org/wiki/Aliasing_%28computing%29

MZ>Есть выделение памяти -- есть и указатели. Адресной арифметики нет, это да.

Указатели есть в глубине реализации, в явном виде их нет.

MZ>Но и в С++/С ты можешь её не использовать. В общем, всё на самом деле

MZ>зависит от качества оптимизирующего компилятора. ХОроший -- программы
MZ>будут быстрые, плохой -- будут медленные.
У оптимизатора С++ банально меньше возможностей, так как оптимизатор Фортрана имеет право делать предположения, которые для С++ часто будут неверными.

MZ>Ага, ты ещё про константы Холерита вспомни, и расскажи, как они помогают

MZ>оптимизации программ на фортране.
Computed goto ускорило интерпретатор Питона на 20%. Так что думай.
Sapienti sat!
Re[3]: Fortran vs C++
От: Mephisto666 Великобритания  
Дата: 14.07.09 10:05
Оценка:
Здравствуйте, _Ursus_, Вы писали:

TB>>Например, массив структур хуже по времени доступа, чем параллельные массивы.

_U_>Хочется услышать обоснование.

Вот занимательно расказано
http://szotin.livejournal.com/13335.html
Re: Fortran vs C++
От: Vzhyk  
Дата: 14.07.09 14:06
Оценка: -1 :)
Аноним 405 пишет:
>
> Разные люди говорят что вычислительные программы работают быстрее если
> они были написаны на Fortran-е а не на C++.
Сказка из серии: "Когда мы были молодыми..."

> Что можете сказать по этому поводу.

Ну трава в прошлом веке зеленее была.
Posted via RSDN NNTP Server 2.1 beta
Re[4]: Fortran vs C++
От: Erop Россия  
Дата: 14.07.09 14:27
Оценка:
Здравствуйте, MasterZiv, Вы писали:

MZ>к 5-6 полям, что в общем от структуры и требуется,

MZ>то наоборот, экономия может быть за счёт использования
MZ>предвычисленного смещения к началу структуры.

1) Это всё сильно зависит от платформы. Всё-таки всякие разные веккторные процессоры ещё никто не отменял.
2) Если речь идёт о i86, и если вспомнить о том, что в выч. хадачах обычно все поля одного типа -- double или long double, что само по себе зависит от обстоятельств. То можно сообразить что в параллельных массивах можно использовать предвычисленное смещение в массиве
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[4]: Fortran vs C++
От: Programador  
Дата: 14.07.09 16:15
Оценка:
Здравствуйте, D14, Вы писали:

D14>А смысл сравнивать РАЗНЫЕ алгоритмы? И с чем? C Intel MKL, AMD ACML?

Так я и сравнивал алгоритмы — мой, с обращением матриц из LAPAk. Мой быстрее.

Здравствуйте, Sergey Chadov, Вы писали:

SC>Нет ничего удивительного в том. что на каком-то коркретном частном случае более простой код и даже худший алгоритм окажется лучше универсального кода, написанного по последним достижениям науки. К тому же reference linpack все же не эталон производительности, нужно брать оптимизированные под конкретную платформу варианты, например Intel MKL, AMD core math library.

Я сравнивал АЛГОРИТМЫ у меня ровно N^3 операций, у них больше. 2/3*N^3 на LU разложение и там еще на нахождение обратной, итого у них больше получается.

SC>А код такой я бы если и написал — то точно бы постыдился показывать

Да че в нем не так? Уж удобней чем 2 библиотеки тянуть
Re[5]: Fortran vs C++
От: Sergey Chadov Россия  
Дата: 14.07.09 17:31
Оценка:
Здравствуйте, Programador, Вы писали:


SC>>Нет ничего удивительного в том. что на каком-то коркретном частном случае более простой код и даже худший алгоритм окажется лучше универсального кода, написанного по последним достижениям науки. К тому же reference linpack все же не эталон производительности, нужно брать оптимизированные под конкретную платформу варианты, например Intel MKL, AMD core math library.

P>Я сравнивал АЛГОРИТМЫ у меня ровно N^3 операций, у них больше. 2/3*N^3 на LU разложение и там еще на нахождение обратной, итого у них больше получается.
В жизни все как правило не так просто. Например, для решения задачи линейного программирования, например, существует алгоритм с полиномиальной сложностью(метод эллипсоидов), но пользуются все симплекс-методом, который на большинстве реальных задач значительно быстрее. Знаешь сколько статей типа "исследование производительности метода N в применении к матрицам типа M" существует? Их не просто так пишут.

SC>>А код такой я бы если и написал — то точно бы постыдился показывать

P>Да че в нем не так? Уж удобней чем 2 библиотеки тянуть

Как бы это помягче, у меня создалось впечатление, что автор намеренно пытался ввести в заблуждение читателей этого кода. Форматирование и названия переменных просто психоделические, константы типа 1e99 вызывают нервный смех Что так или не так в самом алгоритме сказать не могу — мне жалко мозг разбираться.
--
Sergey Chadov

... << RSDN@Home 1.2.0 alpha rev. 685>>
Re[4]: Fortran vs C++
От: sc Россия  
Дата: 14.07.09 17:49
Оценка:
Здравствуйте, Programador, Вы писали:

P>PS собственно обращение в одной процедуре

...
P>против 500 строк из LINPAK

Там из 500 строк наверное половина — комментарии. Что делает код понятным. Поэтому в этом конкретно сравнении Фортран побеждает С
(C++ там как-то не видно)
Re[2]: Fortran vs C++
От: Antikrot  
Дата: 14.07.09 18:27
Оценка:
Здравствуйте, Cyberax, Вы писали:

А>>Разные люди говорят что вычислительные программы работают быстрее если они были написаны на Fortran-е а не на C++.

C>Это реальный факт.
+1

C>Дело в том, что у оптимизатора Фортрана намного больше свободы — там нет указателей (и алиасинга) и ряда других трудностей.

есть там и указатели, и динамическая память (но пользуются там этим скажем так несколько меньше чем new в плюсах), и про equivalence не забудь

C>Ну и ещё мелочи типа computed goto помогают (их нет в С, хотя есть в определённых реализациях).

о да, goto там просто шедевр

C>Впрочем, часть проблем с алиасингом решается с помощью ключевого слова restrict в С.

это замечательно выглядит для всяких там тройных указателей
Re[3]: Fortran vs C++
От: Cyberax Марс  
Дата: 14.07.09 19:00
Оценка:
Здравствуйте, Antikrot, Вы писали:

C>>Дело в том, что у оптимизатора Фортрана намного больше свободы — там нет указателей (и алиасинга) и ряда других трудностей.

A>есть там и указатели, и динамическая память (но пользуются там этим скажем так несколько меньше чем new в плюсах), и про equivalence не забудь
Ну это явная операция, а в С оно неявно может быть.

C>>Впрочем, часть проблем с алиасингом решается с помощью ключевого слова restrict в С.

A>это замечательно выглядит для всяких там тройных указателей
Ну не хуже const volatile, наверное
Sapienti sat!
Re[6]: Fortran vs C++
От: Programador  
Дата: 14.07.09 20:24
Оценка:
Здравствуйте, Sergey Chadov, Вы писали:

SC>Как бы это помягче, у меня создалось впечатление, что автор намеренно пытался ввести в заблуждение читателей этого кода. Форматирование и названия переменных просто психоделические, константы типа 1e99 вызывают нервный смех Что так или не так в самом алгоритме сказать не могу — мне жалко мозг разбираться.


У меня очень понятное название invers, а их DGETRI вводит меня в ступор, как и все остальные имена, кроме одного EXTERNAL ( а их там не мало ) error message related XERBLA — это по нашему .
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.