Cytat
Does Linux support multi-threading? If I start two or more processes, will they be distributed among the available CPUs?
Yes. Processes and kernel-threads are distributed among processors. User-space threads are not.
To a potem tekst o programowaniu... wychodzi na to że jest to o czym wcześniej pisałem. Drugi tekst też przejrzałam.
To jest tak: Mamy X procesorów/rdzeni i każdy z nich ma dostęp do wspólnego ramu i cache L2. I teraz kernel ma ileś tam wątków (thread) i rozdziela je na poszczególne rdzenie, normalka nic nowego. Ale potem dochodzą aplikacje które nie są jądrem(ale są dzielone tak jak wątki jądra). Ogromny wzrost wydajności dawał by OS który rozdziela tak:
CORE1 -> Process1, Process2
CORE2 -> Process3, Process4, Process5
Ale niestety(?) wygląda to tak:
CORE1 -> Process1-Thread1, Process2-Thread1, Process2-Thread2, Process3-Thread1
CORE2 -> Process1-Thread2, Process3-Thread2
A to jaki wątek zostanie przydzielony do którego rdzenia to zależy od programistów danej aplikacji. Czemu pierwszy wariant nie został wprowadzony? Chyba było by przepisać wtedy całe jadro od nowa (czy to linuxa, czy windowsa). Ale drugi wariant, ten używany nie zmuszał do radykalnych zmian w jądrze. Do tego przy dobrze napisanej aplikacji i stosunku potrzebnej mocy dla samego OS'a a mocy rzeczywistej pojedynczego rdzenia, jest o wiele bardziej wydajny. Oczywiście to zależy też wszystko od aplikacji. Dla PHP jako CGI na serwerze na pewno pierwszy wariant jest lepszy, ale dla aplikacji typu Soundbooth, czy VirtualDub drógi sposób jest jednak lepszy (chodzi mi to o zastosowania, nie o same rzeczywiste aplikacje).
I teraz dojdę do pointy. Program na wiele rdzeni napisać jest bardzo trudno. Jest nie wiele takich porządnie napisanych aplikacji dostepnych na rynku. Tak więc kupowanie wielordzeniowego procka z punktu widzenia wydajności jest prawie bez sensu. ALE!!! na rynku pozostało niewiele procków jednordzeniowych i do tego są to bardzo słabe modele. A stosunek wydajność/cena C2D na razie bije konkurencję na głowę. Tak samo jak swego czasu P4 zostawał daleko w tyle za konkurencyjnym AMD jeszcze jakiś czas temu.
Jak chcesz to wydziel do osobnego wątku nasz wypociny drogi
~tiraeth'cie