Zpět na článek

Diskuze: Jen jedno procento programátorů umí dle Intelu napsat kódy pro paralelizované čipy

Nejsi přihlášený(á)

Pro psaní a hodnocení komentářů se prosím přihlas ke svému účtu nebo si jej vytvoř.

jmlynar
jmlynar
Level Level
30. 11. 2007 12:31

Komentáře tohoto uživatele máš zablokované.

Souhlasím, ale jenom částečně. Některé typy aplikací (typicky třeba CTI) jsou stavěné na PC architektuře a tam už se vícejádrové procesory tlačí i do industry segmentu (cP - compact PCI).

jmlynar
jmlynar
Level Level
30. 11. 2007 10:24

Komentáře tohoto uživatele máš zablokované.

To je právě otázka. Jednak není rekurze jak rekurze a jednak třeba prohledávání stromu do šířky je paralelizovatelné moc dobře. Ale to je již o skutečném paralelním programování - tj. kompletně navrhnout nový algoritmus, který bude skutečně počítat dílčí úkoly paralelně.

jmlynar
jmlynar
Level Level
30. 11. 2007 10:17

Komentáře tohoto uživatele máš zablokované.

Stavový automat nezavrhuji, je to dobrý přístup. S nástupem vícejádrových procesorů ale mají výhodi ti, kdo používají více vláken.

AX
AX
Level Level
30. 11. 2007 09:24

Komentáře tohoto uživatele máš zablokované.

Skutecne paralelni programovani by si totiz mistni experti osahali na FELu az tesne pred diplomkou.

Swarm
Swarm
Level Level
1. 12. 2007 11:04

Komentáře tohoto uživatele máš zablokované.

@AX Na kybeře se dělalo řízení motoru a tam to bylo nutné naprogramovat více vláknově....a bylo to tušim ve čtvrtém semestru ;).

Boguš
Boguš
Level Level
29. 11. 2007 23:07

Komentáře tohoto uživatele máš zablokované.

... ano

Boguš
Boguš
Level Level
29. 11. 2007 23:04

Komentáře tohoto uživatele máš zablokované.

.... zlatý Packal ......... :))))

jmlynar
jmlynar
Level Level
29. 11. 2007 15:32

Komentáře tohoto uživatele máš zablokované.

Jenže vícevláknové aplikace nejsou tak napsány jenom kvůli optimalizaci. Např. pro realtime aplikace, které obsluhují více klientů současně je možné napsat buď komplikovaný state-machine nebo jednoduché obslužné postupy. Druhý případ je určitě přehlednější a jednodušší na údržbu a rozšiřování. Akorát je potřeba vyřešit pár drobných problémů s vícero vlákny.

pavel_p
pavel_p
Level Level
29. 11. 2007 15:13

Komentáře tohoto uživatele máš zablokované.

Nějaké postupné iterace se píšou vícevláknově dost blbě ...
A naprosto nesouhlasím ... opravdu má cenu optimalizovat jen 5% kódu, který žere 95% času ... teď nemluvím o tom, že se program musí dobře navrhnout, aby ten čas nežral zbytečně. Rychlé a aspoň nějaké řešení chce zákazník, programátorům je to jedno.

pavel_p
pavel_p
Level Level
29. 11. 2007 15:06

Komentáře tohoto uživatele máš zablokované.

To je na flame ... jak kdy ...

Hnizdo
Hnizdo
Level Level
29. 11. 2007 11:47

Komentáře tohoto uživatele máš zablokované.

Spis bych rekl, ze jen jedno procento firem je ochotno platit zvysene naklady (clovekocas) na psani a odladovani slozitejsich vicevlaknovych aplikaci, pokud to neni nezbytne nutne. Zakaznici za to totiz platit taky nechteji. Navic mnoho uloh proste vicevlaknove udelat nelze. V podstate se to zaplati u vedeckych aplikaci a velkorozpoctovych her :) (Jestli si nekdo mysli, ze staci v kompileru zapnout "nejakou" "optimalizaci", tak mu doporucuju, at si o tom nejdriv neco precte. To uz by to byly vsechny aplikace vicevlaknove, ze.)

Grovik
Grovik
Level Level
29. 11. 2007 11:39

Komentáře tohoto uživatele máš zablokované.

... ale dnes se programuje prevazne v C++ nebo podobnych vecech a tam jde spis o kompiler nez o programatora.
Pokud bude diskuze o Assembleru tak potom ano. Malo kdo dokaze napsat spravne zretezene instrukce.

jmlynar
jmlynar
Level Level
29. 11. 2007 14:20

Komentáře tohoto uživatele máš zablokované.

@Grovik No právě že v C++ je potřeba ošetřit např. přístup k jedné instanci objektu z dvou paralelních vláken. K tomu není potřeba ani více procesorů, stačí preemptivní mutitasking. Jinak se stane, že volání jedné metody ještě neskončí a někdo zavolá druhou a nalezne objekt v nekonzistentním stavu.

Na jedné straně by se jistě dalo na úrovni kompilátoru ošetřit, aby metody byly skutečně atomické (nerozdělitelné), ale na druhou stranu tím bereme možnost optimalizace programátorovi. Myslím, že v případě C++ je dobře, že to ošetřeno není. U méně efektivních a bezpečnějších jazyků je to naopak vítáno.

Pabler
Pabler
Level Level
29. 11. 2007 11:02

Komentáře tohoto uživatele máš zablokované.

Staci sa pozriet na skoly, moc k tomu studentov netlacia aby sa pokusali prevadzat svoje aplikacie na viac vlakien, pokial to niekto chce skusit ostava sam na sebe, teoriu k tomu ma dostupnu na nete ale na labakoch sa necvici napriklad synchronizacia vlakien, takze sa do toho nechce nikomu len tak pustat.
Pokial chce intel zvysit toto procento tak bude musiet trosku podporit skoly k iniciatíve tieto navyky u buducej generacie programatorov vybudovat.
-
Samozrejme vyzera, ze svita na lepsie casy, o viac vlaknach zacinam v skole pocut cim dalej tym viac, hadam sa v buducnosti vytvori trebars predmet kde by sa studenti naucili zakladne tipy a triky ako spravne synchronizovat...

Mapek
Mapek
Level Level
29. 11. 2007 10:32

Komentáře tohoto uživatele máš zablokované.

O Javě se asi nebavil, že?

wessan
wessan
Level Level
29. 11. 2007 11:01

Komentáře tohoto uživatele máš zablokované.

@Mapek taky mi to cislo prijde nejak podezrele nizke ... s vlakny se prave v Jave pracuje ani o tom clovek nemusi vedet a napsat multivlatknovou aplikaci neni vubec zadny problem i pro programatora, ktery v ni pracuje velmi kratce

a vzhledem k tomu, ze Java ma dominantni postaveni mezi programovacimi jazyky, tak si myslim, ze 1% je jen nejake marketingove cislo, kde marketaci zapocitali snad i uzivatele VisualBasicu a podobnych jazyku

Aqw3R
Aqw3R
Level Level
29. 11. 2007 10:20

Komentáře tohoto uživatele máš zablokované.

v robote programujeme v C# a sme tu 4ja programery a vsetci vieme programovat viac vlaknove aplikacie...

Reklama
Reklama