Grzegorz Niemirowski pisze:
peter <ToJestTo@nic.nie.wiem> napisał(a):
Niestety jak wiemy zdecydowana większość programów potrafi utylizować
tylko jeden rdzeń procesora.
Nieprawda. Są programy, które działają linearnie (czyli wszystko po
kolei), są też programy, które równolegle działają na wszystkich
rdzeniach. Tych ostatnich jest coraz więcej, działają nawet na smartfonach.
Piszesz, że nieprawda, a w rzeczywistośći potwierdzasz słowa robota. Większość
programistów nie pisze
programów wielowątkowo. Jeśli jakaś wielowątkowość istnieje w aplikacji, to
zapewniana jest niejawnie, przez
framework w którym pisana. Np. GUI działające w innym wątku niż obsługa
komunikacji sieciowej. Mało który
programista pisze naprawdę wielowątkowo, zajmując się takimi rzeczami jak
semafory czy przeciwdziałanie
deadlockom.
Potwierdzam, większość zwykłych programistów pisze programy jednowątkowe. Ale programy profesjonalne, jeżeli
jest to możliwe, są pisane wielowątkowo. Bo poco byłoby kilka rdzeni w każdym nowym procesorze?. ( no dobrze
- są też dlatego, żeby puścić kilka równoległych aplikacji). Oczywiście nie wszystkie problemy da się z
zrównoleglić, ale tam gdzie się da, to powinno się to robić.
Sam pracuję przez 60-70% czasu z programami równoległymi. Mam problem ułatwiony o tyle, że pracuję z
interpreterem, w którym wykorzystuję przykładowo funkcję 'ParallelTable'. Funkcja ta i wiele innych, sama dba
by wszystkie kody wewnątrz tablicy były wykonywane równolegle.
--
Peter
|