Автор Тема: FORTRAN  (Прочетена 15085 пъти)

spec1a

  • Напреднали
  • *****
  • Публикации: 1416
    • Профил
Re: FORTRAN
« Отговор #15 -: Jun 02, 2016, 09:06 »
  Така и не успях да разбера от дискусията с какво точно FORTRAN
превъзхожда   С/С++   . По бързодействие ли,по удобства ли ..
  Ако говорим за Python,там едва ли може да става дума за бързодействие...
  Според мен,оптималният вариант за тежки математически изчисления е
С/С++ , като е добре на "критичните" места  да се използва и асемблер.
  Така се получава изпълним код (а не псевдо-код), който е оптимизиран
за съответната процесорна архитектура, съответно има и най-голямо
бързодействие.
« Последна редакция: Jun 02, 2016, 09:08 от spec1a »
Активен

Naka

  • Напреднали
  • *****
  • Публикации: 2834
    • Профил
Re: FORTRAN
« Отговор #16 -: Jun 02, 2016, 11:39 »
Не знам как тълкувате резултатите от линка който постна по рано.
Цитат
NumPy and Matlab have comparable results whereas the Intel Fortran compiler displays the best performance.

Ами Matlab третира всичко като матрици или вектори(матрица с един ред). Нормално е след като това му е основата, точно това  C=AxB или всякакви други подобни операции за умножение на масиви от данни да са оптимизирани вътрешно от енжина. Затова дава такава производителност. а и примерите на Наса са все такива.

Обаче това което чета за octave не било така с производителността. сега дали е нарочно, защото octave е основният конкурент на Matlab или просто още не са го донаписили не знам. Но все пак octave 100% еквивалент на Matlab в синтаксиса.

Мисля, че много грешен подход, човек да се задълбава в производителноста и по това да избира средата. Все пак става дума за моделиране на нещо. Трбява да му е удобно. Ако пък след това трябва да се направи да работи бързо или в реалтайм винаги може да се намери начин.


« Последна редакция: Jun 02, 2016, 12:01 от Naka »
Активен

Perl - the only language that looks the same before and after encryption.

villimon

  • Напреднали
  • *****
  • Публикации: 65
    • Профил
Re: FORTRAN
« Отговор #17 -: Jun 02, 2016, 12:10 »
  Така и не успях да разбера от дискусията с какво точно FORTRAN
превъзхожда   С/С++

Fortran е удобен при описване на алгоритмите и се доближава по бързодействие до c++.

Все пак става дума за моделиране на нещо. Трбява да му е удобно. Ако пък след това трябва да се направи да работи бързо или в реалтайм винаги може да се намери начин.

Съгласен! Но за да има спора решени за бързодействие е включване на нещо готово което прави нещата по бързо. :)

Благодаря за мненията жалко, че не се намери някои с опит във FORTRAN. Нямам бърза работа затова ще започна с него ако не се получи имам достатъчно варианти, които ми предложихте.
Активен

4096bits

  • Напреднали
  • *****
  • Публикации: 3645
    • Профил
Re: FORTRAN
« Отговор #18 -: Jun 02, 2016, 12:41 »
4096bits ще се съглася с теб, че SciPy изглежда най-близо до скоростта която предлага Fortran (защото до сега стигнах до извода, че колкото по далеч от желязото е абстракцията толкова по бавни са изчисленията). За историческата значимост на някои езици съм съгласен то това, че с тях не могат да се правят някакви "съвременни неща" (например мобилни приложения) не мисля, че ги прави лоши или не нужни.
Изчисленията са бързи. защото тези библиотеки са С библиотеки. Като напимер gmpy2 (gmpy2 is a C-coded Python extension module).
Преди да се захванеш с който и да език, първо разучи, какво има налично за него. Библиотеки, модули, наречи ги, както искаш. Тепърва да откриваш топлата вода, вместо да ползваш труда на другите не е опция. Времето е най-ценния ресурс.
Активен

As they say in Mexico, "Dasvidaniya!" Down there, that's two vidaniyas.

rcbandit2

  • Участници
  • ***
  • Публикации: 11
    • Профил
Re: FORTRAN
« Отговор #19 -: Jun 02, 2016, 13:25 »
Направо нов език си напиши да ти е максимално удобно за целите.
Активен

growchie

  • Напреднали
  • *****
  • Публикации: 623
    • Профил
Re: FORTRAN
« Отговор #20 -: Jun 02, 2016, 15:45 »
Не знам къде ги четете тези хвалебствия за FORTRAN-а, но в университета много го ползваха главно по инерция. Дисертацията си я направих на C и накрая колега я линкна в проекта който е писан на фортран. Четох го в началото като разучавах за какво иде реч но така и не видях някакво очевидно предимство освен стринговите променливи и точността на изчисленията. Няма обекти, старият код беше табулиран и се пишеше отвратително на него. Тестовете които си бях направил не даваха никакво предимство в скоростта на кода.
Активен

growchie

  • Напреднали
  • *****
  • Публикации: 623
    • Профил
Re: FORTRAN
« Отговор #21 -: Jun 02, 2016, 16:02 »
Fortran е удобен при описване на алгоритмите и се доближава по бързодействие до c++.
Кажи ми с какво Fortran е по-удобен за алгоритмизиране на математични процеси от С или който и да е друг език. Единственото нещо което е удобно е точността с които се извършват изчисленията и то само ако ги окажеш при дефинирането на променливите. Няма как да избягаш от това да си направиш сам анализ на проблема и да решиш на всеки етап каква точност да ползваш. Изчетох навремето маса код писан от колегите и няма нищо което да не може да се направи на който и да е друг език също толкова лесно. Вече компилатора колко качествен код ще произведе е отделен въпрос, но дълбоко се съмнявам, че съвременните с/с++ компилатори ще му отстъпват. Вярно че на времето работих със старата спецификация на езика, ама да е дръпнал нещо феноменално не ми се вярва.
Активен

growchie

  • Напреднали
  • *****
  • Публикации: 623
    • Профил
Re: FORTRAN
« Отговор #22 -: Jun 02, 2016, 16:19 »
Може да се окаже много по лесно отколкото да се програмира на C с всичките му идиотщини от рода на маке .configure и т.н.

Нямаш си и представа колко си далеч от истината  ;)
Активен

Naka

  • Напреднали
  • *****
  • Публикации: 2834
    • Профил
Re: FORTRAN
« Отговор #23 -: Jun 02, 2016, 17:21 »
А тя е?  ???
Активен

Perl - the only language that looks the same before and after encryption.

remotexx

  • Напреднали
  • *****
  • Публикации: 1083
    • Профил
Re: FORTRAN
« Отговор #24 -: Jun 02, 2016, 19:50 »
@spec1a Ако ще го разнася по други компютри (напр. да си го пуска и тества освен на работния и на преносимия) тогава JIT / hot-spot compiler ще е по-добре при първото пускане/извикване всеки модул ще се компилира по веднъж с всичките оптимизации за новата архитектура и готово и ще е по бързо от оптимизираното ама за друг процесор да не говорим ако работния е 64 бит а другия 32 (или 16  ;D)...

Според мен целта/въпроса се измести и вече става дума за подходяща библиотека коята да се ползва. Ако е за език най-голямо забавление е с АЛГОЛ - вервайте ми  ;) а ако отпадне изискването за навързване към друг код на друг/произволен език то най-добре е със среда (Матлаб, Октава - имат си оптимизирани за скорост, многонишкови и т.н. библиотеки вградени, но пък трудно се вгражда към/от друг код)

П.П.
Е да за математиката навремето се ползваше ФОРТРАН а за бизнеса КОБОЛ - и двата безнадеждно остарели вече... Наскоро един пенсионер го бяха грабнали военните от лодката в която си ловял риба след пенсия да си им дописва софтуера на Кобол (за много повече пари - и той се сългасил), а един "колега" тук от тези дето пишат софтуер за борсата (дето автоматично търгува) имаше статия (само дано успея да я изровя) в която казва че за техните цели (математически изчисления) не вижда голямо забавяне между Джава и С/С++ и затова не търсели вече толкова С/С++ разработчици ами повече Джавари - спестявало им време за разработка (е и пари)

http://compsci.ca/blog/if-a-programming-language-was-a-boat/

Не намерих оригиналната статия от преди години но пък намерих по-нови ;-)
http://www.optionscity.com/blog/java-vs-c-performance-face/
http://blog.cfelde.com/2010/06/c-vs-java-performance/

и то още от 1998 г. насам Джава е сравнима със С++ по скорост :-)
http://www.javaworld.com/article/2076593/performance-tests-show-java-as-fast-as-c--.html?page=2

JIT vs. Static Compiler
http://stackoverflow.com/questions/145110/c-performance-vs-java-c
Активен

remotexx

  • Напреднали
  • *****
  • Публикации: 1083
    • Профил
Re: FORTRAN
« Отговор #25 -: Jun 02, 2016, 19:59 »
Пък ако са вече чаак ТОЛКОВА големи и бавни сметките направо го пиши разпределено - това пък е бъдещето ...и да прескочим/забравим за спора кое е по- по- най- към днешно време.
Мдааа разпределени изчисления... де на компютри де с хора (за някой неща хората все още са по-добри та надявам се няма да свършим ептен като в Матрицата, поне не скоро)

напр.

Computer:
SETI@home

VS. Human:
Eyewire
Stardust@home

П.П. Е-е-е-х и Фортран-а беше голяма работа - едно време
...и да цитирам по памет един колега - Голяма, голяма - колко да е голяма? - Колкото няколко по-малки.
Активен

remotexx

  • Напреднали
  • *****
  • Публикации: 1083
    • Профил
Re: FORTRAN
« Отговор #26 -: Jun 02, 2016, 20:16 »
Малко ОТ: Инак от езиците (чистите езици) най-напред е С# (Java Оракъл я купиха само за да го убият ...и успяха)

С#, Roslyn - Код който сам пише компилира и изпълянва код - Скайнет, .. и ние хората май ставаме излишни с тоя кратък срок на амортизация и скъпи резервни части  >:D

Using Roslyn for Runtime Code Generation in Marten

 November 11, 2015

I’m using Roslyn to dynamically compile and load assemblies built at runtime from generated code in Marten and other than some concern over the warmup time, it’s been going very well so far.
Активен

runtime

  • Напреднали
  • *****
  • Публикации: 807
  • Distribution: Ubuntu 14.04
  • Window Manager: Unity
  • LZ1DOT
    • Профил
    • WWW
Re: FORTRAN
« Отговор #27 -: Jun 02, 2016, 21:08 »
Все си мисля, че ако ще се правят изчисления GPU-то ще се справи по-добре. Ама това нито идея си имам нито съм го тествал. Някой с повече мозък в областта може да се произнесе по-компетентно. Това малко ме съмнява да има библиотеки във фортран да се ползва графичен процесор за смятане... Ама знам ли де, твърде бос съм в тая сфера.

П.С. Ааа имало бе... CUDA FORTRAN :)  [_]3

Пак се изказах неподготвен  :P
« Последна редакция: Jun 02, 2016, 21:11 от runtime »
Активен

growchie

  • Напреднали
  • *****
  • Публикации: 623
    • Профил
Re: FORTRAN
« Отговор #28 -: Jun 02, 2016, 21:11 »
А тя е?  ???
Извинявай ако е прозвучала като заяждане.
С проектите които се занимавах тия make файлове бяха бат файлове. Компилатора плюе обджект файлове, а след това линкера ги навръзва в екзето. Имаше реплики от типа "прати ми обджекта да си направя сборката" По-новите неща ползваха вижуъл студио 6 и там мейк системата оставаше скрита.
Като цяло компилираните езици са така. Компилатора обхожда поред сорсовете, след това линкера събира резултатите и прави проекта.
А конф няма общо с мейк. Configure е част от аутотуулс пакета който се оправя с пътищата, подготвя параметрите за проекта и генерира мейк файловете. Не е само до с/с++ а до компилирането на големи проекти като цяло. Може и за фортран проект да го ползваш.
Активен

spec1a

  • Напреднали
  • *****
  • Публикации: 1416
    • Профил
Re: FORTRAN
« Отговор #29 -: Jun 02, 2016, 22:00 »
   @remotexx , какво точно разбираш под:
   "Инак от езиците (чистите езици) най-напред е С#"
    С# си е Java -подобен език, с подобни възможности ...
Едно от малкото  предимства на С# пред Java е  наличието на деструктори
(в Java няма деструктори,трябва да се разчита само на garbage collector -a )
но пък Java си има други предимства, и е по-популярен ...
   P.S.  малко вероятно е още да се използват 16-битови процесори ...
...освен от Хамериканските военни,наскоро изтекоха данни как в с-ми за
управление на междуконтинентални балистични ракети се използват
компютри от 70-те години (!), с 8 инчови флопита... Ужас  ;D
Активен