Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Názory k článku
Fortran: chroustání čísel pro všechny

m4r3k
30. 7. 2007 1:09 Nový

Skvěle

celé vlákno
Skvěle, doufám, že dojde i na pokročilejší věci. Občas si s Fortranem hraji a jako jazyk se mi velice líbí. Kdyby vyšla kniha, určitě by obohatila i mou knihovnu. Přeji tedy hodně elánu na psaní dalších a dalších pokračování. Budu se na ně těšit.
Blackened
Blackened (neregistrovaný)
30. 7. 2007 1:50 Nový

Článek

celé vlákno
Děkuji za velice zajímavý článek; ačkoli jsem se k Fortranu dosud nedostal, po přečtení článku mě tento jazyk zaujal a rád si o něm přečtu něco víc. :-) Každopádně se těším na pokračování.
XaX
XaX (neregistrovaný)
30. 7. 2007 8:06 Nový

Re: Článek

celé vlákno
+1
radim
radim (neregistrovaný)
30. 7. 2007 7:05 Nový

bez Fortranu ani ránu

celé vlákno
živím se Metodou konečných prvků a i když na to používáme specializovaný software (který běží na Fortranu) a většina funkcí se dá získat kliknutím myší, tak přece jen je občas potřeba si něco naprogramovat a Fortran je k tomu opravdu dobrý. I přesto, že jde o pěkného stařečka, tak pro matematické simulace se jeho síla nijak nezmenšila ;-)
ForMat
ForMat (neregistrovaný)
30. 7. 2007 8:23 Nový

Re: bez Fortranu ani ránu

celé vlákno
no, já se živím metodou konečných objemů :), a s fortranem jsem strávil nejeden romantický večer. Zvláště pak s f77, ve kterém jsem musel rozšiřovat starší program. F77 je krásný jazyk. Ve kterém jiném jazyku najdete stopy děrných štítků v syntaxi? Například limit na délku názvu proměnných? Dobré porovnání možnostní kompilerů najdete na: http://www.polyhedron.com/fortranmain .Pro naše účely vycházel před lety pro f95 nejlepší poměr cena/výkon (kompromis mezi optimalizací a schopností debug.) Lahey pro Linux. Myslím, že tradice fortranu se bude postupně vytrácet s vymírajícími akademiky. Například všechny nové verze MKP a MKO programů mají (nebo by už měli mít) přepsána
i ta numerická jádra do C či C++.
highegg
highegg (neregistrovaný)
30. 7. 2007 8:43 Nový

Re: bez Fortranu ani ránu

celé vlákno
"Například všechny nové verze MKP a MKO programů mají (nebo by už měli mít) přepsána
i ta numerická jádra do C či C++."
Ne, to se mýlíte - tohle tvrzení zdaleka není pravdivé. Téměř pravdivým se stane (a to jste možná měl na mysli), pokud místo programů napíšete "komerčních programů".
Je to skutečně tak, a na jedné nedávné konferenci v Itálii jsem o tom diskutoval s pár kolegy -
moderní Fortran stále docela dost "žije", ale převážně v tzv. in-house kódech, tedy programech,
(FEM,FVM i jiných), které si napíše firma,instituce (nebo několik institucí) pro sebe. Z komerčních numerických produktů - fluent,ansys atd. Fortran prakticky vymizel. Proč, to je asi na delší diskuzi - sám pořádně nevím.
O vymření Fortranu se zas tak neobávám - mladých Fortranistů je překvapivé množství, a ti starší,
jak jsem ostatně napsal do článku, už stejně dožijí s Fortranem 77.
radim
radim (neregistrovaný)
30. 7. 2007 9:51 Nový

Re: bez Fortranu ani ránu

celé vlákno
v ANSYSu děláme běžně v APDL, ale složitější věci jsou hrozně pomalé a tak přichází na řadu Fortran
Ferda Mravenec
30. 7. 2007 11:11 Nový

Re: bez Fortranu ani ránu

celé vlákno
Taky delam do MKP ;-) (na akademicke pude) a taky jsem se bavil s kolegy, taky i se zahranicmimi a taky mam kolegy z kteri jedou jen na Fortranu... Mate pravdu v tom co jste rikal... Ale kouknete se na to takle. Fortran neni vyrazne lepsi nez C/C++. Dokonce bych rekl ze prijemnejsi na programovani je C/C++, ale to neni tak dulezite, v podstate jsou asi tak stejny. Zato C/C++ o hodne rozsirenejsi. Minoritni skupinka muze prezit jen kdyz bude mit silny duvod, to je obecny princip. Ale Fortran takovy duvod nema anzto je srovnatelny s C/C++. Tim padem ho C/C++ pomalu a neuprosne sezere.
Ferda Mravenec
30. 7. 2007 11:26 Nový

Re: bez Fortranu ani ránu + Python

celé vlákno
btw. nemyslim ze existujici knihovny ve Fortranu (viz nize) jsou dostatecny duvod...

Jinak k tomu Pythonu, nechtel jsem o nem psat abych to nezkomplikoval. Ale ten pan dole ma pravdu. Ted je trend slozitych programu a spoluprace vice programu. A skriptovaci programy typu Python jsou na to idealni. Tim padem uz nikoho moc netrapi v cem je napsano vykonne jadro a tim drive podlehnou programatori tlaku okoli a prejdou na C/C++. Uvedomte si ze pracovnici s MKP nejsou primarne programatori ale vedci. A ti proste pouziji takovy programovaci nastroj ktery bude "jednodussi" a to je C/C++ protoze s tim jim kazdy poradi...

Jinak me osobne je to jedno esli F nebo C, je to prast jak uhod.
Jaroslav Hájek aura:79
30. 7. 2007 12:17 Nový

Re: bez Fortranu ani ránu + Python

celé vlákno
existujici knihovny jsou malý důvod. Matematické knihovny jsou z drtivé většiny ve Fortranu
(hlavně starší) nebo C a s trochou snahy je lze volat z obou jazyků.

Souhlasím s tím, že větší programové systémy už jso uspíše záležitostí několika jazyků. Python je dobrý jako "glue language", slovy samotného Rossuma, proto ho používám. Moje programy ve Fortranu
mají obvykle schéma: načti data ze souborů - udělej hromadu výpočtů - zapiš data do souborů. Díky tomu, že dělám v Linuxu, není problém místo souboru strčit rouru, a používat tak program jako výpočetní "server" a podobně.
Ano, správně, uživatelé Fortranu jsou hlavně vědci. A všimněte si, jak jsem psal výše, že Fortran "žije" hlavně uvnitř akademických a poloakademických pracovišť - tedy tam, kde je svoboda volby programovacího jazyka. A velká část z nich volí moderní Fortran protože jim přijde jednodušší.
Překladač toho spoustu dělá za vás. Někdy pomalu a blbě, ale udělá to.
Jaroslav Hájek aura:79
30. 7. 2007 11:48 Nový

Re: bez Fortranu ani ránu

celé vlákno
Myslím, že se mýlíte.
Mně osobně připadá o něco příjemnější Fortran, ale to je pořád spíš názor.
Je pravda, že C/C++ je mnohem rozšířenější, překladače dostupnější a většinou vyspělejší atd.
Proč je Fortran pořád tady? Proč jej C++ nenahradilo?
Odpověď je (podle mého názoru) prostá a zároveň hluboká. Není a nebyl tu úspěšný jazyk, který by jej chtěl nahradit. A to "chtěl" je důležité. C++ není jazyk zaměřený na vědecko-technické výpočty, a ani nebude, podle samotného Bjarna Stroustrupa.
Otázka, zda C++ nahradí Fortran, se tak redukuje na to, zda je lepší jazyk, který se aktivně zaměřuje na oblast VT výpočtů, a bude se přizpůsobovat novým trendům v této oblasti, nebo mocnější jazyk vystavěný na lepším základě, který je zaměřen jinam, ale je natolik flexibilní, že je pomocí knihoven schopen většinu vlastností prvního jazyka "dodělat".

Já na základě svých zkušeností a mnohých debat na toto téma věřím tomu, že vědecko-inženýrská komunita _potřebuje_ speciální jazyk. Já používal několik knihoven v C++, které simulovaly "array language" aka Fortran/Matlab, a ve všech je vidět, že narážejí na omezenou rozšířitelnost jazyka. Narozdíl od Fortranu, tvoří v C "numerická lobby" menšinu a v C++ dokonce malou menšinu.

Pokud někdy někdo vytvoří jazyk, založený na C++, a zaměřený na numerické výpočty, budu určitě mezi prvními, kdo ho vyzkouší. Bohužel, to se zatím nestalo.
Ferda Mravenec
30. 7. 2007 12:15 Nový

Re: bez Fortranu ani ránu

celé vlákno
Hm, zajimave... ale asi je to mozne, mozna pouzivam C+ nejak jednostranne...

A co rikate na to spojeni Python + vykonne mensi programy (vypocetni jadra), neresi to nektere problemy ?
Jaroslav Hájek aura:79
30. 7. 2007 12:28 Nový

Re: bez Fortranu ani ránu

celé vlákno
Dost možná. Víte, naprostá většina mých kolegů "pluskařů" ve skutečnosti používají jen určitou dost omezenou podmnožinu jazyka C++ - nejspíš to bude platit i pro vás. Spoustu vlastností C++,
které jsou užitečné pro softwarové inženýry, nepoužíváte, zato byste ocenil nějaká numerická rozšíření - vicedimenzionální pole, aritmetiku s poli apod.
C++ v podstatě skoro žádné numerické vlastnosti nemá, ale hodně jich lze dodělat pomocí
knihoven - to díky veliké rozšířitelnosti jazyka (na kompilovaný jazyk, Python je samozřejmě jinde). Jenže to pořád není ono. Když si to dělám sám, tak to třeba ještě jde, a s nedostatky
se vyrovnám. Ale pokud já dělám v C++ pole s FLENS, kolega používá uBLAS, další kolega Blitz++,
a další používá std::valarray, a chceme dělat na něčem spolu, máme velký problém.
Ve Fortranu ten problém není, protože ta pole jsou prostě standardizovaná.

Mě se Python taky moc líbí, jen mi někdy přijde až příliš průkopnický, a některá specifika
se prostě neshodují s tím, jak já přemýšlím - například že defaultně přiřazení vytváří
mělkou kopii.
loiz
loiz (neregistrovaný)
1. 8. 2007 4:23 Nový

root.cern.ch

celé vlákno
Fyzici pouzivaji zhusta ROOT C++ framework - http://root.cern.ch

Umi pole, matice 4-vektory, 1-2-3D histogramy (s propagaci chyb), grafy, symbolicke funkce, fitovani parametrickych funkci, vselijake generovani nahodnych cisel z histogramu, GUI, ma C++ interpret a mnoho dalsiho :)

Navic je GNU/GPL
Jaroslav Hájek aura:79
1. 8. 2007 9:45 Nový

Re: root.cern.ch

celé vlákno
Fyzici zhusta používají kdeco, záleží, co máte na mysli tím "zhusta".
Nástrojů s podobnými schopnostmi samozřejmě existuje celá řada. Já používám kromě Fortranu ještě
C++ + FLENS, Python + NumPy, Octave, gnuplot, Maple, Yacas, dříve i Mathematicu, FreeFEM++ a zkoušel jsem pár dalších věciček.
Biktop
Biktop (neregistrovaný)
1. 8. 2007 12:43 Nový

Re: root.cern.ch

celé vlákno
Znovu opakuji, že ROOT není to, co měl původní příspěvek na mysli. Srovnávat Fortran s ROOTem je jako srovnávat hrušky a králíky. Jak Fortran, tak ROOT znám a používám, jsou to opravdu dvě rozdílné věci, cílem jejichž tvůrců bylo úplně něco jiného. Fortran je univerzální programovací jazyk určený hlavně pro vědeckotechnické výpočty, ROOT je nástroj specializovaný ke zpracování a vizualizaci dat z fyzikálních měření jehož jazykem je C++, ale není to žádný jazyk pro vědeckotechnické výpočty vycházející z C++. Je to interpet C++ s balíkem tříd pro práci s GUI, histogramy a pár statistickými a základními matematickými třídami.
nezumi
nezumi (neregistrovaný)
30. 7. 2007 17:36 Nový

Re: bez Fortranu ani ránu

celé vlákno
"Pokud někdy někdo vytvoří jazyk, založený na C++, a zaměřený na numerické výpočty, budu určitě mezi prvními, kdo ho vyzkouší. Bohužel, to se zatím nestalo."

Neni jim nahodou ROOT (http://root.cern.ch/)? Mozna se mylim ...
Biktop
Biktop (neregistrovaný)
30. 7. 2007 18:15 Nový

Re: bez Fortranu ani ránu

celé vlákno
To není jazyk. ROOT je framework ke zpracování experimentálních dat, jehož jazykem je C++.
loiz
loiz (neregistrovaný)
1. 8. 2007 4:28 Nový

root, Re: bez Fortranu ani ránu

celé vlákno
eh ... neprispivejte do diskuse, kdyz mate davno spat :)
starý_niemand
starý_niemand (neregistrovaný) 82.208.57.---
16. 11. 2011 22:07 Nový

Re: bez Fortranu ani ránu

celé vlákno

I když ta diskuse je už prastará, tak nemohu nereagovat.
Dlouho jsem pracoval v různých klonech Fortranu a vyzkoušel jsem celou řadu jeho překladačů a vždy se mi pracovalo dobře. A nevadilo mi ani to, co Fortranu vyčítají zastánci C, C++ a pod. a sice to, že "to není strukturované" - představte si tu hrůzu jako GOTO !!! Vadila mi jen taková ta jistá rozvláčnost. A pak jsem měl příležitost přičuchnout trochu k Matlabu a to se mi zalíbilo: místo několika "loops" napíši v Matlabu c=a*b a skalární součin vypadne jak vymalovaný. Prostě ta vektorizace (obecně práce s maticemi) je fantastická a k tomu spooousta knihoven pro nejrůznější technické a vědecké problémy. I dokonce symbolický výpočet integrálů a derivací (jen je třeba trochu učesat výsledek). Matlab má však bohužel jednu nevýhodu - pro soukromníka je nepřiměřeně drahý, ale kdyby byla nějaká dosti osekaná verze za rozumný peníz, tak do toho jdu.

Kit
Kit (neregistrovaný) ---.215.broadband12.iol.cz
19. 2. 2012 13:53 Nový

Re: bez Fortranu ani ránu

celé vlákno

Matlab se pro běžné použití dá nahradit programem Octave.

Pro redakci: Dala by se do ReCaptcha zadat alespoň česká slova? Musím několikrát překlikávat, než najdu něco čitelného.

karel
karel (neregistrovaný)
30. 7. 2007 10:20 Nový

Re: bez Fortranu ani ránu

celé vlákno
Zabyvam se konecnymi prvky apod., zatim na akademicke pude, ale uvazuji o prechodu do praxe. Mohl byste mi napsat, zda/kde/jak dobre se da v CR praktikovat programovani MKP/MKO? Nebo je spise lepsi poohlednout se v zahranici? Dekuji.
radim
radim (neregistrovaný)
30. 7. 2007 10:54 Nový

Re: bez Fortranu ani ránu

celé vlákno
jako první doporučím firmu, kde sám dělám :-) zájemce, jako vedoucí, pohovoruji osobně

Honeywell (nutná angličtina)
http://www.prace.cz/pd/3081947

jinak můžu s klidným svědomím doporučit:

Škoda - Auto, a.s.
Ricardo

pokud máš zájem o zahraničí, pak můžu doporučit AVL v Rakousku, pokud mluvíš německy

------------------------------------------------------------------------------------

můj blog (už jsem tam ale dlouho nepřispíval)

http://fea.blog.auto.cz/
l.
l. (neregistrovaný)
30. 7. 2007 18:16 Nový

Re: bez Fortranu ani ránu

celé vlákno
lool, tak tohle je krasna HR akce :)
hodne stesti Vam obema
Ondra
Ondra (neregistrovaný)
30. 7. 2007 9:02 Nový

fortran + python je mocná kombinace

celé vlákno
Taky dělám mimo jiné konečné prvky a podobné výpočty, ale rád programuju v Pythonu. Takže hlavní program mám v Pythonu, a ve fortranu jen věci, které musí být rychlé. Do fortranu pak exportuju pomocí:

http://cens.ioc.ee/projects/f2py2e/

V debianu v balíku python-numpy. Projekt se nyní rozvíjí pod hlavičkou SciPy:

http://www.scipy.org/F2py

Tím pádem je úplně jedno, jestli je modul do Pythonu psaný v C/C++/fortranu, stejně používám jen Python. Ale výhoda fortranu oproti C/C++ je ta, že f2py se hrozně snadno používá a funguje, zatímco SWIG je dost těžkopádný (což je dáno jednoduchostí fortranu, oproti C/C++).
Michal Vyskočil
Michal Vyskočil (neregistrovaný)
30. 7. 2007 9:06 Nový

Re: fortran + python je mocná kombinace

celé vlákno
Pro C je dobré vyzkoušet i ctypes (od 2.5 je součástí standardní knihovny)
Petr Leibner
30. 7. 2007 9:41 Nový

A Fortran Colouring Book

celé vlákno
Pro kazdeho fanouska vrele doporucuji knihu, z ktere jsem se kdysi naucil Fortran behem jednoho dne:

http://www.abebooks.com/servlet/SearchResults?&isbn=0262610264&nsa=1

Je to krasna kniha, na zadnou zabavnejsi, z kterou by byla takova radost se ucit, jsem pozdeji uz nenarazil.
Clock
Clock (neregistrovaný)
30. 7. 2007 10:29 Nový

Parni pocitace

celé vlákno
Kdyz uz jsme u tech parnich pocitacu:
Pocitac ve stylu parniho veku: http://www.flickr.com/photos/jwhilde/sets/72157594363814399/
Mys ve stylu veku pary: http://www.boingboing.net/2007/04/30/steampunk_mouse.html
Klavesnice ve stylu veku pary: http://steampunkworkshop.com/keyboard.shtml
Tady je pocitac ktery je parou primo pohaneny: http://blog.scifi.com/tech/archives/2006/07/11/steampowered_co.html
sapo
sapo (neregistrovaný)
30. 7. 2007 11:02 Nový

Vyhody

celé vlákno
Clanok sa mi pacil, ale chyba mi zhrnutie vyhod oproti inym jazykom. (Taka presvedcovacia metoda preco by som sa mal pozriet na tento jazyk :))))

Niekde na webe som cital, ze v niektorych veciach je az 10 krat pomalsi ako C.
Co si o tom mysliet ???
uživatel si přál zůstat v anonymitě
30. 7. 2007 11:06 Nový

Re: Vyhody

celé vlákno
Výhody: s léty nashromážděné knihovny (hlavně pro numerické výpočty)
A to je tak všechno.
Jirka
Jirka (neregistrovaný)
30. 7. 2007 11:42 Nový

Re: Vyhody

celé vlákno
Jako jednoznacnou vyhodu bych videl praci s polem (a matici).
uživatel si přál zůstat v anonymitě
30. 7. 2007 12:31 Nový

Re: Vyhody

celé vlákno
Fortran defaultně indexuje od jedničky. Na indexování od nuly bych si nezvykl.
Biktop
Biktop (neregistrovaný)
30. 7. 2007 16:12 Nový

Re: Vyhody

celé vlákno
To není tak úplně pravda. Porovnejte program provádějící nějaké numerické výpočty ve Fortranu a ten samý kód v C (nebo C++). Fortran je mnohem přímočařejší a z hlediska výpočtu, který v něm provádíte, čitelnější. Domnívám se, že Fortran má k myšlení matematika nebo fyzika blíže, než C. Dokonce jsem při svém pedagogickém působení zjistil, že pro mladé fyziky je mnohem chytlavější než C. A to jsme jeli v F77, kde i ono implicitní typování I.., J.., K.. připadalo studentům velmi příjemné a v souladu s jejich dosavadními matematicko-fyzikálními zvyky.
Řekl bych, že pokud jde o C jako o jazyk technických a vědeckých výpočtů, tak o něm platí, že pro samé stromy v něm není vidět les. Pro technika který chce počítač použít k usnadnění svých výpočtů je programovací jazyk jen nástrojem k těmto výpočtům, on nechce ztrácet čas nějakými obskurnostmi ohledně datových typů, objektů, správně strukturovaného programování... Chce jazyk, kterému nemusí nic dlouze vysvětlovat, kam prostě napíše postup výpočtu tak jak mu technický zobák narost a ten jazyk mu rozumí. A z tohoto pohledu Fortran skutečně nemá a myslím, že ještě dlouho mít nebude, konkurenci. No a nejrozsáhlejší "knihovní fond" ze všech existujících jazyků je také nemalá devíza. Ty numerické postupy přeci jen nepodléhají takové módě, jako prostá výpočetní technika, takže i 30 let stará, ale za to dobře odladěná knihovna je stále užitečná věc.
Jaroslav Hájek aura:79
30. 7. 2007 11:20 Nový

Re: Vyhody

celé vlákno
Ono to porovnávání výhod je ošidné - záleží na osobních preferencích. "Ukecanější" kód Fortranu
(Basicu,Pascalu,Ady atd.) někomu přijde jako výhoda (oproti C,C++,C#), jinému jako nevýhoda.
Chtěl jsem to když tak udělat až později, aby se na některé věci dalo odkázat.

Srovnávat rychlostí jazyků je v podstatě nesmysl. Pokud specifikujeme i překladač, už to jakýs takýs smysl dává, ale pořád nic moc - je těžké rozhodnout, kdy jsou kódy ekvivalentní (kromě
triviálních případů). Ze svého nejlepšího svědomí vám můžu doporučit taková obecná tvrzení
o rychlostech jazyků ignorovat - je to něco podobného, jako když řeknu že velká auta jsou rychlejší než malá.
dotcom
dotcom (neregistrovaný)
30. 7. 2007 11:18 Nový

fortran rulez

celé vlákno
zivim se fyzikalnimi simulacemi a ve fortranu 90 sem napsal diplomku, musim rict ze je to jazyk do kteryho se clovek snadno dostane a prestoze nektery veci jsou vazne archaicky tak na vedecky vypocty se hodi velice.
doufam ze ten hle serialek nezustane u zakladnich veci a ukaze naky pokrocily veci, treba grafiku ve fortranu apod.
karel
karel (neregistrovaný)
30. 7. 2007 11:30 Nový

Re: fortran rulez

celé vlákno
Viz moje otazka vyse. Velmi by me zajimalo, jak se da fyzikalnimi simulacemi zivit v CR, mohl bys mi k tomu neco napsat? Diky.
Jaroslav Hájek aura:79
30. 7. 2007 12:01 Nový

Re: fortran rulez

celé vlákno
Třeba já pracuju tady: www.vzlu.cz. Nejsou tu sice takové platy jako v čistě komerční sféře (my jsme takový hybrid), ale hlady taky netrpíme, a zase je tu asi větší pohoda a svoboda (můžu programovat ve Fortranu a nikomu to nevadí :)
Dan
Dan (neregistrovaný)
1. 8. 2007 13:55 Nový

Re: fortran rulez

celé vlákno
Rovněž můžu doporučit VZLÚ (Výzkumný a zkušební letecký ústav), i když ve fortranu nedělám, "vyrostl" jsem na C/C++. Jinak mě napadají například univerzity se zaměřením stojním, stavebním, jaderně-fyzikálním, matematickým atd., Akademie věd či různé výzkumné ústavy. Platy mají do komerce hodně daleko, ale vědecká "svoboda" za to stojí :-)
xi-xa-o
xi-xa-o (neregistrovaný)
30. 7. 2007 12:37 Nový

lol

celé vlákno
Počítač bez Cobolu a Fortranu je jako čokoládový dort bez kečupu a hořčice. :-)
Vladimír Stwora
31. 7. 2007 2:20 Nový

Pěkný článek

celé vlákno
A co třeba algol? :-))))))))

Před třiceti roky jsem v tom dělal první program na prvočísla. A ve fortranu jsem dělal kondiciogram. :-)
uživatel si přál zůstat v anonymitě
31. 7. 2007 7:20 Nový

GPU/GPGPU

celé vlákno
A co Fortran a výpočty na GPU/GPGPU ?
uživatel si přál zůstat v anonymitě
2. 8. 2007 8:24 Nový

Re: GPU/GPGPU

celé vlákno
nic, je to vykopavkovy jazyk
anonym
anonym (neregistrovaný) ---.vsb.cz
25. 11. 2011 13:57 Nový

Re: GPU/GPGPU

celé vlákno

PGI ma CUDA FORTRAN kompiler

Vladimír Fuka aura:100
1. 8. 2007 22:09 Nový

Diky

celé vlákno
Dekuji, tesim se na dalsi dily. Taky pracuji hlavne s FVM a Fortran byla pro me jasna volba.
vencas
vencas (neregistrovaný)
2. 8. 2007 16:13 Nový

fortress

celé vlákno
Byl bych rád, kdyby někde v dalším dílu byly zmíněn jazyk Fortress, který má ambice Fortran překonat právě v numerice. Má s ním někdo aspoň trochu zkušeností, je-li to je vzhledem k jeho mládí vůbec možné?
Jaroslav Hájek aura:79
3. 8. 2007 9:20 Nový

Re: fortress

celé vlákno
Já jsem na Fortress koukal už před časem. Je to slibný projekt, ale v plenkách.
Zatím jsem to odložil se slibem, že když to uvedou do nějaké kompletnější a snáze použitelné podoby, zkusím v tom některé věci začít zpracovávat.
Je nepochybné, že Sun umí s jazykem prorazit (Java), ale zatím bych si ještě na Fortress nevsadil - považuju za velmi pravděpodobné, že dojede na příliš velké ambice prvotní specifikace.
mirek
mirek (neregistrovaný)
7. 8. 2007 1:38 Nový

Nazor

celé vlákno
Dobry vecer,

zkusim pridat par nazoru k clanku a nazorum.

Nejsem typicky programator. Venuji se vyvoji algoritmu pro nektere
oblasti numerickeho pocitani. Ve FTN programuji cca 20-25 let.
Myslim, ze u neho vydrzim. Duvody asi nejsou tolik v me zkostnatelosti, ale
spis v tom, ze chci aby me programy zily a jejich udrzba mi dala minimum prace.
Neco z mych programu zije i komercne a pouziva se to rutinne v balicich, ktere nejdou prilis snadno menit. Neco z meho vyvoje jsou programy sirene
v me komunite a nehodlam je zpomalovat. Pro vyvoj pouzivam sem tam jeste
Matlab jako kalkulacku, nektere Ceckove kody tretich stran si pripojuji; cilova platforma je tradicne balik v unixu, ale vyvoj
provozuji pod Win. Hlavnim duvodem pro Win je asi to, ze v nem mam dobre debuggery,
ale jinak i pod Win pro vyvoj pouzivam porty nekterych procedur z unixu jako make.


Proc hovorim o zpomalovani:
Prace na programovani komplikovanejsich vypocetnich jader numeriky je v zasade stejna pro velkou mnozinu programovacich jazyku. Zadny jazyk za nas nedokaze zmensit namahu na implementaci matematicke ideje. V tom ohledu je rada modernich jazyku podobne dobra. Fortran navic nabizi extremni prenositelnost mezi systemy a i v case. Jeho jednoduchost implikuje to, ze i nepripraveny uzivatel toho nema
pro pametove nenarocne programy moc co zkazit. Je-li nas program jen trochu delsi nez kratky a ma-li v sobe jen trosku slozitejsi smesku matic, vektoru a grafu (a to moderni numerika casto ma), je velmi obtizne s podobnou namahou vytvorit kod, ktery je stejne rychly i v C (napriklad, kdyz porovnate rychlost nativniho FTN a C na nejake unixove stanici). Dalsi aspekt je, ze moderni pocitacove architektury pro sve dobre vyuziti v numerice (maticova algebra,
mnoho operaci ve FEM, FVM) vyzaduji bezpodminecne sledovani
lokality a regularity dat, se kterymi se pracuje. Jednoduchost jazyka primo
implikuje snadnost techto ukolu. Jde to i jinde, ale je to narocnejsi.
Hlidat lokalitu zpracovavanych dat neni obzvlaste sranda napr. u programu
s explicitni paralelni komunikaci v MPI.
Ukazka toho, ze jednoduchost ma smysl je videt na vyvoji baliku LAPACK, ktery je
jednou ze zakladnich knihoven pro operace s hustymi maticemi a je k dispozici
prakticky na vsech pocitacich. Po experimentech s Lapackem v ruznych jazykovych
mutacich (C, C++, F90) je jeho dalsi vyvoj (a ten je pomerne bourlivy) provozovan
opet uz jen ve F77 (situace je trochu slozitejsi - vanilla source bude takto; samozrejme knihovny na pocitacovych architekturach jsou domestifikovany bud
prepisem do jeste nizsich jazyku nebo predzvykanim automatickych optimalizatoru). Nemyslim si, ze ale vyvoj speje k prepisovani jader do C a C++. FTN jadra jsou dnes spise doplnena assemblerovskou optimalizaci.


Je-li tvoreny soft veliky, vsechny moderni jazyky nekde ukryvaji slozitost zachazeni s daty a procedurami. Nekde vse zapouzdrujeme, nekde jinde to sypeme do parametru volani, ukladame do modulu, ale slozitost baliku nekde skryvame.
Je to vec zvyku, kde ji chceme mit.

Tradice
Fortran je zalozen na tom, ze ctime tradici a velmi pozvolna ji menime.
Dynamicke alokace jsem pouzival uz pred temi xx lety, ale nebyly univerzalne
prenositelne. Ja je generoval do kodu pomoci fortranskych preprocesoru. Na nekterych masinach fungovaly Cray-pointery, Na HP byla trochu jina rozsireni,
pomerne brzy zavedl velmi dobre fungujici rozsireni i MS (vlastni implementace
byla zalozena na SW treti strany). Ani ted nejsou rozsireni univerzalni. Chci-li
mit zivy SW, FTN 2003 mne bude zajimat tak v roce 2013 (bude-li mne jeste
programovani vubec zajimat).

Opousteni tradice
Bohuzel, FTN ve sve velkolepe norme F8X, F90 zavedl nektere koncepty, ktere sly
proti jeho duchu a jsou spis ukazkou urcite nerozmyslenosti. Koncepty ukazatele,
hlavicky pole i castecne syntaxe celych poli patri do teto kategorie. Ukazatel
zavedl nekompatibilitu s C, hlavicky (nekterych) poli nabizi napriklad moznost fragmentace pole na casti operacnim systemem. Jak ale mohu neco takoveho jako je fragmentace mych dat sverovat OS? Chci-li programovat efektivne, musim o svych datech vedet.
V pripade, ze se spolehnu na syntaxi pomoci poli a nevim, jak se chova muj kompilator, mohu snadno narazit na neefektivitu z duvodu, ze
kompilator v nekterych pripadech vytvari kopii pole pro volanou proceduru.
Je-li pole velke, pro vykon je to tragedie. Podobnou namitku mam proti syntaxi prace s poli. Ta primo nevadi, ale svadi predstavou o sve uzitecnosti. Jsou-li pole velmi velka a operace, ktere s nimi vykonavam jsou napriklad maticove, musim se urcite zabyvat tim, abych pracoval pouze s jejich castmi tak, abych plnil CPU bloky dat. V pripade, ze matice jsou huste, udela to za mne nekdy software tretich stran, napr. BLAS nebo LAPACK. V pripade, ze jsou matice ridke, musim to zabezpecit sam a syntaxe mi nepomuze.

Budoucnost
Nemyslim si, ze jazyk v dohledne dobe vymre. Kdyby nemel realne vyhody, ktere
vyvazuji nektere jeho nevyhody, nikdy by neprezil. To, ze numericke vypocty tvori mensi a mensi cast celosvetoveho pocitani neznamena, ze se lze bez nich obejit. V teto oblasti je to porad jazyk volby. Jako jeden z duvodu pro nej se casto uvadi
nashromazdeny soft, ale nemyslim si, ze toto je tak podstatne. Kriticky soft na jadra numerickych vypoctu se meni extremne rychle. Napriklad, moderni algoritmy pro jadra vypoctu okrajovych uloh parcialnich diferencalnich rovnic jsou uplne
jina nez byla pred deseti lety (hovorim o vyvoji ve svete). Presto je znacna cast noveho softu (universitniho i firemniho, ale vice firemniho) zase ve FTN.
Zasílat nově přidané příspěvky e-mailem