Wiele rdzeni = lepsza wielozadaniowość?

3

W szczególności patrzę na i5-3570k lub FX-8350, ale sprawiło to, że zastanowiłem się nad bardziej ogólnym konkretnym pytaniem, jak wiele rdzeni może poprawić ogólną wielozadaniowość.

Czytałem wiele recenzji, benchmarków itp., W zasadzie to samo mówi: Szybszy taktowany 4core I5 ​​bije wolniej taktowany 8core FX w większości aplikacji, chyba że ta aplikacja jest specjalnie kodowana, aby wykorzystać więcej niż 4 rdzenie. Gry szczególnie działają lepiej na i5.

Ale gdy czytałem, zauważyłem, że prawie wszystkie testy porównawcze odbywają się w próżni. Oznacza to, że ten test lub oprogramowanie jest jedyną rzeczą testowaną. Ale choć jest to dobre do testowania tego konkretnego oprogramowania, to nie jest to prawdziwy scenariusz.

Na przykład w dowolnym momencie w ciągu dnia mogę mieć kilka przeglądarek otwartych za pomocą kilku kart, być może Photoshopa lub Visual Studio, kilku programów działających w tle (antywirus, para, pamięć podręczna itp.). I to w lekki dzień.

Więc moje pytanie brzmi: teoretycznie, podczas gdy szybszy 4core będzie samodzielnie uruchamiał poszczególne elementy oprogramowania, czy procesor 8core nie byłby lepszy w uruchamianiu wielu programów, nawet jeśli niekoniecznie są one zoptymalizowane 8core jednocześnie?

Taylor Huston
źródło
Teoretycznie, ale wiele zależałoby od tego, jak dobrze system operacyjny rozdzielał aplikacje na różne rdzenie.
ChrisF

Odpowiedzi:

2

Obciążenie procesora Linux

Przydatną miarą jest koncepcja Linuksa Obciążenie procesora . Zasadniczo, każdy rdzeń procesora to 1,00 dostępnych jednostek obciążenia, a każde zadanie działa w 100% rdzenia jako 1,00 jednostek ładunkowych. W przypadku serwera intensywnie przetwarzającego idealne obciążenie to prawdopodobnie dokładnie tyle samo rdzeni procesora (4,00 obciążenia dla 4 rdzeni procesora).

Pętla zajęta (coś w rodzaju „while (true)”) może zajmować 100% jednego procesora, czyli 1,00 jednostek obciążenia. Jednordzeniowy test porównawczy również osiąga szczyt przy 1,00. Benchmark zoptymalizowany pod kątem wielu rdzeni może zająć więcej rdzeni, aż do 8,00 dostępnych w FX-8350.

Ale większość twoich aplikacji (Chrome + Firefox open, Photoshop, Visual Studio) nie zużywa tak dużo procesora, gdy działa w tle. To prawda, że ​​mogą działać na wielu rdzeniach, ale jeśli używają tylko 10% dostępnego czasu (0.10 jednostek ładunkowych), te cztery aplikacje sumują się tylko do obciążenia 0,40, a widzisz niewielkie korzyści z posiadania więcej niż jednego rdzenia procesora. Podobnie aplikacje zajęte blokowaniem dostępu do dysku lub sieci nie będą używać czasu procesora podczas oczekiwania.

Średnie obciążenie & gt; 4,00

W przypadkach, gdy obciążenie aplikacji wynosi od 4,00 do 8,00, jest prawdopodobne, że wydajność FX-8350 będzie się wyróżniać. Obciążenie 5-cio procesorowego procesora 5.00 może prowadzić do dużej rywalizacji o zasoby procesora, z przełączaniem zadań między zadaniami, zwiększając obciążenie.

Średnie obciążenie & lt; 4,00

Twoje pytanie wydaje się dotyczyć czasów, kiedy matematyka nie jest aż tak wyraźna: czy 8 rdzeni będzie lepszych przy obciążeniu poniżej 4.00. W przypadku dość stałego obciążenia pracą typu serwerowego można uruchomić niektóre testy porównawcze i sprawdzić, czy rzeczywiście istnieje jakakolwiek korzyść. Dla nieustannie zmieniającego się, codziennego obciążenia komputerowego nie ma wyraźnego zwycięzcy.

trapezoid
źródło
1

Zależy to w dużej mierze od aplikacji, systemu operacyjnego i sposobu, w jaki wykonuje swoją pracę.

Jeśli aplikacja jest zaprojektowana jako jednowątkowa, żadne dodatkowe rdzenie nie pomogą jej osiągnąć. Można jednak uruchamiać dodatkowe aplikacje przy użyciu innych rdzeni, JEŚLI system operacyjny był wystarczająco inteligentny, aby w ten sposób rozdzielić pracę. Dlatego dodatkowe rdzenie mogą zapewnić niewielką dodatkową korzyść, szczególnie w przypadku wielu aplikacji uruchomionych jednocześnie.

Dodatkowe rdzenie nie zapewniają większej wydajności we / wy. Jeśli więc aplikacja jest głównie związana z I / O, zwiększenie wydajności z dodatkowych rdzeni może nie być znaczne.

LawrenceC
źródło