Jazyk pro matematické výpočty

Re:Jazyk pro matematické výpočty
« Odpověď #30 kdy: 20. 09. 2015, 14:57:20 »
Tohle prostě v Pythonu jednoduše neuděláš.
P.S. šlo by to pomocí maker, ale ta python bohužel taky nemá...


Roger Aušlus

Re:Jazyk pro matematické výpočty
« Odpověď #31 kdy: 20. 09. 2015, 15:59:27 »
Potřebuju naimplementovat několik matematických výpočtů, vesměs nějaké HMM a nezávisle na tom SAT. Budu to pouštět na počítači s několika jádry a 32-64 GB paměti. Jaký jazyk byste doporučili?
Jednoznačně MATLAB, je polopatický a tak jednoduchý, že jej pochopí i absolvent IT. Pro matematiky je to ovšem urážka cti.

Kit

Re:Jazyk pro matematické výpočty
« Odpověď #32 kdy: 20. 09. 2015, 16:31:21 »
Potřebuju naimplementovat několik matematických výpočtů, vesměs nějaké HMM a nezávisle na tom SAT. Budu to pouštět na počítači s několika jádry a 32-64 GB paměti. Jaký jazyk byste doporučili?
Jednoznačně MATLAB, je polopatický a tak jednoduchý, že jej pochopí i absolvent IT. Pro matematiky je to ovšem urážka cti.

Však jsme mu už doporučovali Octave, ale toho sis asi nevšiml.

Kit

Re:Jazyk pro matematické výpočty
« Odpověď #33 kdy: 20. 09. 2015, 16:32:43 »
Tohle prostě v Pythonu jednoduše neuděláš.
P.S. šlo by to pomocí maker, ale ta python bohužel taky nemá...

Pythton makra _naštěstí_ nemá.

mikrom

Re:Jazyk pro matematické výpočty
« Odpověď #34 kdy: 20. 09. 2015, 16:40:17 »
Fortran je ovsem jazyk znacne staricky, nekdy z doby, kdy mel Zizka jeste obe oci. Jestlipak se od dob sveho vzniku aspon trochu zmodernizoval?
...
Ano dost sa zmodernizoval.
Pocas VS v 90 rokoch minuleho storocia sme na numerike pouzivali F77. Teraz je bezny standard F90, 95 a je to uz o dost modernejsie ako predtym. K dispozicii su free kompilatory gfortran a g95.


TVL

Re:Jazyk pro matematické výpočty
« Odpověď #35 kdy: 20. 09. 2015, 18:53:02 »
Hele, já nevím, školy nemám. Ale je fakt tak podstatné vybírat jazyk? Výkon aplikace v běžné praxi stejně nejvíce závisí na kvalitě programátora a jeho znalosti daného jazyka, než na samotném jazyce.
Z dotazu víme, že toho víme velmi málo. Obecný typ úlohy (HMM, SAT). O náročnosti konrétní instance úlohy/modelu nevíme vůbec nic. Nevíme, jestli výpočet musí splňovat nějaká (pseudo)realtimová kriteria. Hlavně že víme na jakém HW výpočet poběží.
Takže můžeme říct, že z dotazu (z toho jak a kde byl položen) víme vlastně docela dost - tazatel není v oboru (implementace num. mat.) zběhlý.
Takže IMHO jediná správná odpověď zní - napiš to v jazyce, který umíš. C++ i Java nepochybně zvládnou to, co potřebuješ. Zvládne tvůj SW v Javě nebo v C++ běžet na tvém HW? To nikdo neví. A nikdo ani neví, jestli by zvládl běžet, kdyby ses půlrok učil Fortran a napsal to v něm. Nikdo neví, jestli sis z neznalosti nezvolil úlohu, kterou by neutáhl žádný dostupný HW na planetě.
Ber ten program v Javě nebo v C++ jako podrobnou analýzu problému. A pokud se ukáže, že se to v tom jazyce nedá rozběhnout (a není to tím, že to neumíš ty) a nedá se posílit HW, tak se může řešit v jaké verzi Fortranu to psát.

A samozřejmě je potřeba rozmýšlet, co má smysl psát a na co použít hotové odladěné knihovny. Ale to je tak triviální a obecně platná rada, že je mi až hanba to psát.

JardaP .

  • *****
  • 11 064
    • Zobrazit profil
    • E-mail
Re:Jazyk pro matematické výpočty
« Odpověď #36 kdy: 20. 09. 2015, 19:31:35 »
Ber ten program v Javě nebo v C++ jako podrobnou analýzu problému. A pokud se ukáže, že se to v tom jazyce nedá rozběhnout (a není to tím, že to neumíš ty) a nedá se posílit HW, tak se může řešit v jaké verzi Fortranu to psát.

No, aby se s tou Javou vesel do pameti. Fortran kdysi jel na strojich s 256 MB pameti (kurva, to tehdy bylo ale pameti!) a o vykonu silne zastaraleho PC a pritom se v tom delaly dost narocne veci.

TVL

Re:Jazyk pro matematické výpočty
« Odpověď #37 kdy: 20. 09. 2015, 19:46:35 »
Ber ten program v Javě nebo v C++ jako podrobnou analýzu problému. A pokud se ukáže, že se to v tom jazyce nedá rozběhnout (a není to tím, že to neumíš ty) a nedá se posílit HW, tak se může řešit v jaké verzi Fortranu to psát.

No, aby se s tou Javou vesel do pameti. Fortran kdysi jel na strojich s 256 MB pameti (kurva, to tehdy bylo ale pameti!) a o vykonu silne zastaraleho PC a pritom se v tom delaly dost narocne veci.

Nevíme na jak dlouhou cestu se chce někdo vydat autem, ale budeme ho zrazovat, že s normálním autem s 50litrovou nádrží by tam taky nemusel dojet, že jiná specializovaná expediční auta si vezou třeba 400 litrů paliva.
A pak se ukáže, že ten člověk třeba chtěl buď dojet autem do Antarktidy, nebo chtěl dojet jenom 30 km do okresního města...

HuHa

Re:Jazyk pro matematické výpočty
« Odpověď #38 kdy: 20. 09. 2015, 20:01:16 »
Tohle prostě v Pythonu jednoduše neuděláš.
P.S. šlo by to pomocí maker, ale ta python bohužel taky nemá...

Pythton makra _naštěstí_ nemá.

Co si predstavujes pod pojmem makro?

Kit

Re:Jazyk pro matematické výpočty
« Odpověď #39 kdy: 20. 09. 2015, 20:25:16 »
Pythton makra _naštěstí_ nemá.

Co si predstavujes pod pojmem makro?

Například jako nějakou alternativu #define v céčku. Máš nějakou vhodnější definici? Co třeba lispové makro? To by bylo zajímavější.

Pokud máš na mysli importy, tak to nejsou makra.

revg

Re:Jazyk pro matematické výpočty
« Odpověď #40 kdy: 20. 09. 2015, 20:31:42 »
Například jako nějakou alternativu #define v céčku. Máš nějakou vhodnější definici? Co třeba lispové makro? To by bylo zajímavější.

Pokud máš na mysli importy, tak to nejsou makra.

Tak vždycky se dá použít cpp a nějakej build script/makefile

Kit

Re:Jazyk pro matematické výpočty
« Odpověď #41 kdy: 20. 09. 2015, 20:40:26 »
... Ale je fakt tak podstatné vybírat jazyk? Výkon aplikace v běžné praxi stejně nejvíce závisí na kvalitě programátora a jeho znalosti daného jazyka, než na samotném jazyce.

Výkon se dnes už tolik neřeší. Spíš vhodnost jazyka k danému účelu. Tedy tak, aby se ta aplikace dobře psala, dobře udržovala a schovalo se do ní co nejméně chyb. Šetří se tedy hlavně čas programátora.

Citace
Takže IMHO jediná správná odpověď zní - napiš to v jazyce, který umíš. C++ i Java nepochybně zvládnou to, co potřebuješ. Zvládne tvůj SW v Javě nebo v C++ běžet na tvém HW? To nikdo neví. A nikdo ani neví, jestli by zvládl běžet, kdyby ses půlrok učil Fortran a napsal to v něm. Nikdo neví, jestli sis z neznalosti nezvolil úlohu, kterou by neutáhl žádný dostupný HW na planetě.
Ber ten program v Javě nebo v C++ jako podrobnou analýzu problému. A pokud se ukáže, že se to v tom jazyce nedá rozběhnout (a není to tím, že to neumíš ty) a nedá se posílit HW, tak se může řešit v jaké verzi Fortranu to psát.

On ten Fortran je pro to naučení jednodušší, než C++, C# i Java dohromady. Navíc je Fortran vždy 100% zpětně kompatibilní, takže jednou napsaný program půjde přeložit kdykoli i v budoucnu bez ohledu na verzi.

O Fortranu se jen tolik nemluví, protože Fortran není programovacím jazykem programátorů, ale vědců. A ti potřebují výkon. Například neuronová síť napsaná ve Fortranu vypadá mnohem jednodušeji, než totéž napsané v C++ či Javě a navíc je i rychlejší.

HuHa

Re:Jazyk pro matematické výpočty
« Odpověď #42 kdy: 20. 09. 2015, 20:44:58 »
Pythton makra _naštěstí_ nemá.

Co si predstavujes pod pojmem makro?

Například jako nějakou alternativu #define v céčku. Máš nějakou vhodnější definici? Co třeba lispové makro? To by bylo zajímavější.

Pokud máš na mysli importy, tak to nejsou makra.

No me zajimalo, jaky konkretne mara mas na mysli, kdyz mluvis o tom ze v necem nastesti nejsou. Protoze me zrovna lispova makra prijdou super (coz je prave panem prymkem zminovany nevyhodnocovani parametru), ale #define zase jako zlo. Takze,  aspon u me, nejde zastavat vyhraneny nazor proti "makrum" obecne.

Kit

Re:Jazyk pro matematické výpočty
« Odpověď #43 kdy: 20. 09. 2015, 20:48:36 »
Tak vždycky se dá použít cpp a nějakej build script/makefile

Proč používat cpp, když máme m4? :-)

Jenže si stejně ta makra raději nechávám rozbalovat přímo editorem, protože by je nikdo kromě mne nemohl číst. V mém případě makra slouží pouze pro snížení počtu úhozů a počtu chyb - například když si v tu chvíli neuvědomím, zda se v daném jazyce píše else, otherwise nebo default. Na to mám makro, aby to už v editoru napsalo správně.

Kit

Re:Jazyk pro matematické výpočty
« Odpověď #44 kdy: 20. 09. 2015, 20:54:41 »
Například jako nějakou alternativu #define v céčku. Máš nějakou vhodnější definici? Co třeba lispové makro? To by bylo zajímavější.

Pokud máš na mysli importy, tak to nejsou makra.

No me zajimalo, jaky konkretne mara mas na mysli, kdyz mluvis o tom ze v necem nastesti nejsou. Protoze me zrovna lispova makra prijdou super (coz je prave panem prymkem zminovany nevyhodnocovani parametru), ale #define zase jako zlo. Takze,  aspon u me, nejde zastavat vyhraneny nazor proti "makrum" obecne.

Zkus si ještě jednou přečíst to, co jsem napsal. Makra do Lispu prostě patří, bez nich by Lisp ani nebyl Lispem. Navíc je to naprosto odlišná kategorie, než je třeba #define v céčku.

Pokud by tedy Python nějak rozumně implementoval lispová makra, nebyl bych proti.