Adam Klobukowski napisał/a:Eetam. zrównoleglanie powinno być robione na dwóch poziomach:
a) języka (zrównoleglanie pętli, itp)
Nie zgodzę się. Ingerencja w język naprawdę nie jest do tego potrzebna. parallel_for_each + lambda z "nowoczesnego C++" ;) załatwia sprawę.
Adam Klobukowski napisał/a:b) projektu (podział procesów na wątki, itp)
Tu też. Jeśli nie piszemy systemu czasu rzeczywistego czy innych cudów, to program dzielimy na zadania. Wątki to zbyt niskopoziomowy koncept, żeby zawracać sobie nim głowę.
Adam Klobukowski napisał/a:To wszystko w nowoczesnym C (+biblioteki) już jest. Języki które maja zrównoleglanie natywnie, raczej załatwiaja tylko a), a b) i tak trzeba realizować bibliotekami.
"Nowoczesne C++" ma wszystko co potrzeba do wygodnego zrównoleglania pętli i podziału programu na zadania na poziomie biblioteki bez ingerencji w język (ot przykładzik).
Adam Klobukowski napisał/a:Co do GPU: to jest fajne, ale tu raczej się nie da tak łatwo żeby jeden program działał na CPU+GPU (jeden, tj. w formie jednego kodu źródłowego). Dlatego wydaje mi się że GPU zostanie jak zostanie - do specjalizowanych zastosowań (tj. np. głowny kod w C i dodatkowy w specjalistycznym języku na GPU).
A zajawkę C++AMP czytał? Kod C++ bez mrugnięcia przekłada się na GPU i runtime sam dba o "gory details". Oj coś nie nadążacie panowie...
jellonek napisał/a:co do c - malo ekonomiczny jezyk, trudniejsze w opracowaniu unit testy, dluzszy cykl pisanie/kompilowanie/debugowanie niz w jezykach dynamicznych
Ale za to błędy wychodzą u programisty podczas kompilacji, a nie u użytkownika podczas wykonania ;)
jellonek napisał/a:ktore dzieki tracing jit potrafia byc wydajniejsze niz statycznie optymalizowany kod gcc/msvc ;)
Nie ma jak porównywać hipotetyczne wyniki po wyciskaniu siódmych potów w optymalnej sytuacji z JITera do niechlujnie skompilowanego kodu w C/C++ i to pewnie na debugu ;)
Czytam to już n-ty raz i chyba pythonowców to jakoś super jara.
Ale szkoda że to "potrafi" być nieprawdą, skoro "statyczniaki" mają Profile-guided optimization... ;)