K čemu programování v BASH?

student

Re:K čemu programování v BASH?
« Odpověď #30 kdy: 19. 03. 2013, 12:18:07 »
Ručně optimalizovaný assembler dosahuje až 10x vyššího výkonu než nejlepší veledílo v C/C++ a jsou tam k dispozici záležitosti o kterých se 99 % dnešních programátorů ani nesnilo.
Bavime sa o rozsirenom x86 / x86-64 a rozumnych prekladacoch? (nejaka obskurna architektura s jedinym a to neschopnym prekladacom moze dosiahnut kludne aj milion krat vyssi vykon pri pisani v optimalizovanom ASM, ale o take architektury nam snad nejde)
O presne ake zalezitosti sa jedna? Preco ich uz nepouzivaju kompilatory, ked to znamena 10 nasobne zrychlenie?

Kde je na to nejaky benchmark napisany rozumne v C a potom v ASM, ktory si mozem spustit a uvidim ten 10x vyssi vykon?

U takové triviální úlohy v C je rychlost menší než rychlost čtení z HDD na pováženou.
To mozno je - otazka je, ci stoji za to to zrychlovat viac - jeden dal tu ulohu tusim za 0.5 sekundy, ale ten uz si spravil svoj alokator pamati vhodny pre tuto ulohu a malloc() volal len raz atd (takze narocnost aj na takuto trivialnu ulohu pomerne velka); zaujimave bolo, ze ludia pouzivajuci viac threadov a aj ti s vyvazovanymi stromami skoncili casovo na urovni ludi, ktori tieto optimalizacie nerobili (nieco trva start threadu, nieco synchronizacia a nejaky readahead u OS asi stihal nacitanie z disku efektivnejsie; data boli z realneho sveta, a ziadne degenerovane pripady tam nenastavali).


Rax

Re:K čemu programování v BASH?
« Odpověď #31 kdy: 19. 03. 2013, 13:21:22 »
O presne ake zalezitosti sa jedna? Preco ich uz nepouzivaju kompilatory, ked to znamena 10 nasobne zrychlenie?

O to, že v ASM můžeš plně vytížit jednotlivé exekuční jednotky a také můžeš používat plné výhody SSEx, AVX. Například pouhé přepsání některých algoritmů z C do SSE zvedne výkon 4x, to ale zatím kompilátory moc neumějí a proto se to dělá ručně, například v audio video kodecích, pomocí compiler intrinsics. To už jsme ale daleko od původní debaty.

ľščáíý

Re:K čemu programování v BASH?
« Odpověď #32 kdy: 19. 03. 2013, 14:46:53 »
Po bashi siaham, ked potrebujem cokolvek parsovat rychlo, pretoze poskytuje jednoduche pajpy a mozem vyuzivat kopec commandov v Linuxe a tiez mozem spustat nove procesy.

student

Re:K čemu programování v BASH?
« Odpověď #33 kdy: 19. 03. 2013, 15:17:57 »
O to, že v ASM můžeš plně vytížit jednotlivé exekuční jednotky
To imho zvladne lepsie kompilator ako clovek. Vazne - kto dokaze pri pisani ASM uvazovat nad exekucnymi jednotkami, prekladanim kodu, vhodnym vyuzitim registrov, roznymi rychlostami instrukcii atd? A to nehovorim o takom prekladani instrukcii, ze si kompilator "uvedomi", ze je nejaka cast procesoru obsadena a preto pouzije pomalsiu instrukciu, ktora sa ale vykonava inde a tak to bude celkovo rychlejsie.
Na pisanie takehoto kodu podla mna mozog cloveka (ako som ja) nie je dost dobre stavany a na citanie takto napisaneho kodu uz vobec nie.

a také můžeš používat plné výhody SSEx, AVX. Například pouhé přepsání některých algoritmů z C do SSE zvedne výkon 4x, to ale zatím kompilátory moc neumějí a proto se to dělá ručně, například v audio video kodecích, pomocí compiler intrinsics.
Ja si myslim, ze "nejlepsi veledilo v C" by malo SSE pouzivat vsade, kde je to treba. Intrinsics nepovazujem za nieco mimo C - ostatne, je to z pohladu programatora skoro uplne "normalna funkcia", aj ked nie standardizovana a nepreklada sa ako volanie funkcie.

Jednoduchu vektorizaciu zvladalo aj obycajne GCC uz pred mozno 3 rokmi, ked som si nahodou cital instrukcie jedneho mojho programu a hladal som miesta, kde by to islo vylepsit. Tam, kde to nezvladne GCC same prichadzaju zase intrin...

To už jsme ale daleko od původní debaty.
Jasne - akurat ma zaujimalo, ci je to s C az tak zle - a nastastie to tak nevyzera.

Rax

Re:K čemu programování v BASH?
« Odpověď #34 kdy: 19. 03. 2013, 17:17:37 »
Jasne - akurat ma zaujimalo, ci je to s C az tak zle - a nastastie to tak nevyzera.

Je to zlé odjakživa, například všechny obvyklé kompilátory mají memcpy ručně optimalizovaný ASM, včetně MSVC i GCC. Dál to nebudu rozvádět i když by nám to vydrželo na dlouhé hodiny, to není smysl této diskuze.


Program

Re:K čemu programování v BASH?
« Odpověď #35 kdy: 19. 03. 2013, 20:26:21 »
Pánové. Nebyl dotaz náhodou o využití bashe?

PS.: Prosím na tento příspěvek nerozjíždět další flame...

Re:K čemu programování v BASH?
« Odpověď #36 kdy: 19. 03. 2013, 20:43:23 »
PS.: Prosím na tento příspěvek nerozjíždět další flame...
A pokud na flejmování používám skripty v bashi, tak flejmovat můžu?

Re:K čemu programování v BASH?
« Odpověď #37 kdy: 19. 03. 2013, 21:16:01 »
PS.: Prosím na tento příspěvek nerozjíždět další flame...
A pokud na flejmování používám skripty v bashi, tak flejmovat můžu?

Když sem dáte výpis těch skriptů, tak ano.

PanKapitanRUM

Re:K čemu programování v BASH?
« Odpověď #38 kdy: 19. 03. 2013, 22:02:08 »
Tady je flame a nikdo mě nepozval ::)
To je bordel!

Re:K čemu programování v BASH?
« Odpověď #39 kdy: 19. 03. 2013, 22:07:03 »
Když sem dáte výpis těch skriptů, tak ano.

if [ "$name" = "student"]; then
   echo "99,9% absolventů nikdy nevyužije znalost důkazů vlastností Turingova stroje. Zato 99,9% absolventů by využilo základní znalost pracovního práva."
else
   echo "Unity je jediné desktopové prostředí s promakaným UX"
fi


PanKapitanRUM

Re:K čemu programování v BASH?
« Odpověď #40 kdy: 19. 03. 2013, 22:13:57 »
Dobře Ty ;D
Právě jsi vymyslel BASHFLAME  ;D

Maixner

Re:K čemu programování v BASH?
« Odpověď #41 kdy: 19. 03. 2013, 22:17:20 »
Salát....nerdi flejmujou v brainfucku!

Re:K čemu programování v BASH?
« Odpověď #42 kdy: 20. 03. 2013, 20:48:44 »
Já myslím, že u mnoha studentů by to skriptování vypadalo asi takto:

C:\Documents and settings\bighacker>explorer http://www.redtube.org/

 ;D

Ramtech

Re:K čemu programování v BASH?
« Odpověď #43 kdy: 20. 03. 2013, 22:02:29 »
You need the latest Flash player to see this video.  :(

tadeas

Re:K čemu programování v BASH?
« Odpověď #44 kdy: 20. 03. 2013, 22:13:26 »
Offtopic... (ontopic?)... Jsem 14 dní v novém zaměstnání a objevil jsem tady úžasnou věc - testovací framework v bashi. Desítky tisíc řádek kódu bashe a upřímně jsem udivenej, jak hezky je to napsaný a dobře to funguje. A to jak na Linuxu, tak na OS X (primární target), tak i na Cygwinu.