222

Wiele rdzeni w procesorze. Też daliście się nabrać?

XXI wiek należy bezsprzecznie do procesorów wielordzeniowych, które całkowicie opanowały rynek. Mnożenie rdzeni okazuje się dla producentów najprostszym sposobem na zwiększenie wydajności procesorów. Niestety, ta wyłącznie katalogowa wydajność, okazuje się dla użytkownika nie do wykorzystania. W przytłaczającej większości scenariuszy, użyteczność kolejnych rdzeni szybko się zmniejsza, a ich opiewane przez marketingowców zalety są jednym z największych kłamstw branży technologicznej dzisiejszych czasów.
Gwoli jasności, swoje dywagacje pozwolę sobie zacząć od małego ostrzeżenia. Ponieważ temat jest mocno techniczny i obszerny, a ograniczona formuła bloga zdecydowanie nie sprzyja pisaniu elaboratów (nieszczęsne TL&DR), postanowiłem temat mocno zawęzić. Wywody z konieczności dotyczą konkretnego sprzętu na jakim pracuję (dwurdzeniowy i5-4300U), oraz bardzo konkretnych scenariuszy z jakimi mam do czynienia. Bez obaw jednak. Jestem typowym użytkownikiem technologii i szczerze wierzę, że moje wnioski można szeroko rozciągnąć na gros zwykłych śmiertelników.

 

Wychowałem się na procesorach jednordzeniowych. W czasach Pentiumów, Cyrixów czy K5-tek sprawa wydajności była bardzo prosta. Ponieważ programy komputerowe z założenia składają się z kolejno wykonywanych instrukcji, szybszy procesor był tym, który oferował wyższy zegar i wykonywał te instrukcje szybciej.

Liczyły się jeszcze inne czynniki, takie jak wielkości cache (L1 i L2) czy dodatkowe instrukcje multimedialne (SSE), jednak użytkownik dostawał dokładnie to, co wynikało z dokumentacji. Kupiłeś procesor szybszy o 20%? Stuprocentowa zajętość procesora przy wymagającym zadaniu trwała równo i zawsze 20% krócej.

Oczywiście jednordzeniowe procesory nie miały żadnych problemów z multitaskingiem, a ówcześni ich użytkownicy z pracą na kilku programach na raz. Instrukcje z różnych programów mogły się przeplatać w kolejce, a zawieszaniu się w pełni obciążonego systemu zapobiegało nadanie odpowiednich priorytetów zadaniom.

Wtedy także były systemy wieloprocesorowe. Niestety zadanie podzielenia instrukcji (zajmował się tym system operacyjny) okazywało się na tyle zasobożerne, że dodatkowy wydatek (drugi procek i serwerowa płyta główna) skutkował maksymalnie 60% przyrostem wydajności. Nic dziwnego, że poza serwerami komputery takie nie doczekały się wielkiej popularności.

Od zawsze koncepcja mnożenia rdzeni w procesorze wydawała mi się pójściem na łatwiznę. Sklejenie razem dwóch procesorów jest świetnym pomysłem na podwojenie surowej mocy obliczeniowej, ale takie pójście na skróty odbija się później czkawką. Co z tego, że taki zlepek kilku procesorów jest niemal nieużywalny bez przerobienia oprogramowania? Przecież to problem producentów software’u, to oni będą ponosić koszty dostosowania programów, lub zmagać się z konsekwencjami niskiej wydajności.

Dzisiaj producenci mnożą rdzenie, których ilość zaczynamy zapisywać dwucyfrowo. Pozornie sprawa jest prosta – 5 rdzeni taktowanych na 2 GHz, przy tej samej architekturze, ma taką samą wydajność co 10 rdzeni 1 GHz. I faktycznie, surowej mocy mamy tyle samo. Mało tego. Dziesięciordzeniowy procesor wykona aż 10 instrukcji na raz, czyli dwa razy więcej niż ten z 5 rdzeniami. A przecież więcej zawsze znaczy lepiej, prawda?

Niestety jest dokładnie na odwrót. Programy składają się z instrukcji wykonywanych po kolei i z zasady nie potrafią korzystać z większej ilości rdzeni niż jeden. Dostosowanie programu do pracy na wielu rdzeniach jest kosztowne, a czasami po prostu niemożliwe.

Inna sprawa, że programy optymalizuje się pod najpopularniejsze konstrukcje. O ile w stacjonarnych komputerach pojawiają się już procesory 8-rdzeniowe, o tyle w laptopach nadal królują 2 fizyczne rdzenie. Sami sobie odpowiedzcie na pytanie, jaki sens jest w optymalizowaniu kodu pod kosztujące majątek konstrukcje kilkunastordzeniowe.

W efekcie przeciętny użytkownik płacący za procesor i moc jaką powinien dysponować fizycznie nie jest w stanie jej wykorzystać. Nawet jeśli postawimy przed naszym pecetem trudne zadanie i widać, że ten męczy się i poci, nadal w Task Menadżerze nie zobaczymy 100% wykorzystania mocy, za jaką słono przecież zapłaciliśmy.

Żeby nie być gołosłownym przyjrzyjmy się kilku dużym, profesjonalnym i wymagającym, programom dla zawodowców. Można chyba śmiało zakładać, że armie programistów i ogromne pieniądze za nimi stojące spowodują, że programy te będą błyszczeć na firmamencie oprogramowania najlepiej wykorzystującego liczne rdzenie kosztujących fortunę procków.

Photoshop

Ten kombajn graficzny często instalowany jest na potężnych stacjach roboczych. O ile jednak potrafi korzystać z karty graficznej, o tyle wykorzystanie większości rdzeni po prostu leży i kwiczy. Wydaliście fortunę na procesor z 10 rdzeniami pod Photoshopa? Macie pecha – na tym potworze program działa tak samo jak na czterordzeniowym.

Oczywiście wszystko zależy od tego co konkretnie chcemy wykonać. Obrót obrazu na 2 rdzeniach działa 2x szybciej niż na jednym. Ale już na 5 tylko niecałe 3x niż na jednym. Na 10 rdzeniach jest to równe 3x. Przy zmianie rozmiaru jest jeszcze gorzej. Użycie drugiego rdzenia przyspiesza operację o 25%, niestety włączenia żadnego więcej nie skutkuje już poprawą. Dokładnie tak. 10 rdzeni działa tylko 25% szybciej niż 1.

Podobnie jest z filtrami Blur – niektóre potrafią użyć więcej niż parę rdzeni (choć daleko tu do zachwytów) – są jednak takie, które używają wyłącznie jednego.

Reszty testów nie będę przytaczał – dodam tylko, że dalej jest jeszcze gorzej i odeślę do oryginalnego testu: https://www.pugetsystems.com/labs/articles/Adobe-Photoshop-CC-Multi-Core-Performance-625/.

Autocad

To drugi z najczęściej używanych przeze mnie programów. Nawet wielogodzinne renderingi na wersji 2017 nie pozwoliły na obciążenie procesora w stopni większym niż 50%. Poszukałem wiec informacji u źródła. Jak wygląda działanie na wielu rdzeniach najpopularniejszego oprogramowania CAD od Autodesku? Wcale.

Jak możemy wyczytać Autocad jest programem jednowątkowym i na procesorze dwurdzeniowym działa identycznie jak na jedno. Są tylko dwie operacje, które podobno korzystają z dodatkowego rdzenia. Regeneracja obrazu 2D i MentalRay Rendering. Jednak rendery z oświetleniem robiłem ostatnio i nadal na 2 rdzeniach zajętość procesora wynosiła marne 50%.

Autocad

Adobe After Effects

Jestem, co prawda jedyną znaną mi osobą, która montuje filmy o tak wielkiej komplikacji na tablecie i jedyne co mnie usprawiedliwia to skupianie się wyłącznie na krótkich, parominutowych formach. Jeśli jednak sekunda materiały potrafi renderować się pół godziny (100 scen w jednym kadrze) tym bardziej chciałbym zobaczyć 100% zajętości procesora. Kolejne marzenia ściętej głowy.

A przecież, ten program do filmowych efektów specjalnych, wydaje się po prostu stworzony do pracy wielowątkowej. Teoretycznie, wystarczy ciężkie zadanie renderowania kolejnych klatek podzielić na ilość paczek odpowiadających ilości rdzeni (program i tak „liczy” każdą klatkę osobno).

Adobe After Effects

Nie wdając się w szczegóły (na przestrzeni lat używałem kilku różnych wersji, na różnych komputerach), nigdy nie zobaczyłem 100% „na zegarze”. Podczas gdy prosty reneder (montaż niemal liniowy) obciąża procesor w 45-50%, ten złożony i oparty na wielu efektach, potrafił wykorzystać „aż” 80%. To swoisty rekord na moim komputerze, ja jednak ciągle oczekuję, że będę mógł wykorzystać całą moc za jaką zapłaciłem!

Jeśli nawet duże, wysokobudżetowe programy nie radzą sobie z podziałem mocy na więcej rdzeni, to jak to wygląda przy mniejszych programach? Cóż, nie wygląda. Świetnie to widać na przykładzie Photoshopa – sam program jakoś sobie na wielu rdzeniach radzi, jednak wtyczki, pisane przez mniejsze zespoły programistów, z zasady pracy wielordzeniowej nie wspierają.

Z czystej ciekawości sprawdziłem jeszcze WinRara, jeden z niewielu programów, który potrafi na dłużej zająć mój procesor. Teoretycznie, aplikacja ma wsparcie dla wielu rdzeni od bodajże 2007 r. Szkoda, że u mnie leci wyłącznie na jednym. Jak widać na screenie , na dwóch rdzeniach ciągle 50% max.

A co z telefonami i rdzeniami w procesorach mobilnych?

Nie chcę się zbyt mocno zagłębiać w tematykę procesorów mobilnych. W mojej jednak ocenie konstrukcje ARM borykają się z tymi samymi problemami co i386. Dlatego wyciągające świetne wyniki w wielordzeniowych, syntetycznych testach telefony dławią się i krztuszą przy codziennej pracy na zwykłych, jednowątkowych aplikacjach. Dlatego także urządzenia (i procesory) jedynego producenta, który nie dał się wciągnąć w marketingowy wyścig na ilość rdzeni pracują płynniej i sprawniej niż konkurencja. Domyślacie się pewnie, że chodzi o Apple. Wielka szkoda, że dzielnie broniący się swego czasu Qualcomm został zmuszony do kapitulacji i dołączył w wyścigu do Samsunga (Exynosy) i Mediateka (MTK).

Poniżej fajne wideo, będące odpowiedzią producenta Snapdragonów na 8 rdzeniowego MTK:

Podsumowanie

Cały świat sprzętu zgodnie pożeglował w stronę rozwiązań wielordzeniowych. Co z tego jednak, skoro oprogramowanie w swojej istocie pozostało jednowątkowe. Na swoich, kosztujących krocie urządzeniach z mnogością rdzeni, użytkownicy uruchamiają programy, które rzadko kiedy potrafią taką moc wykorzystać. Najnowsze premiery procesorów nie pozostawiają złudzeń – ich rozwój ciągle opiera się na nośnym marketingowo mnożeniu rdzeni, co z każdym rokiem pogłębia przepaść pomiędzy czysto katalogową wydajnością urządzeń, a tym, czym w rzeczywistości dysponuje użytkownik.

Efekt jest taki, że w praktyce liczy się tylko wydajność jednego lub maksymalnie kilku rdzeni – cała reszta, na którą naciągnęli nas sprytni marketingowcy, będzie po prostu leżała odłogiem. Nie zobaczycie tego oczywiście w syntetycznych benchmarkach. Te muszą być, z konieczności, najlepiej zoptymalizowanymi do wielu rdzeni programami. Wyników, jakie na nich uzyskacie, nigdy już nie uda się powtórzyć na żadnym, normalnym programie.

Wnioski?

Pierwszym wnioskiem praktycznym, jaki wyciągnąłem dla siebie, to podejmowanie decyzji zakupowych w oparciu o testy wydajności jednego rdzenia. To ten jeden rdzeń będzie musiał odwalać całą robotę – czasem pomoże mu  drugi, z rzadka kolejne.

Drugim wnioskiem jest większe zwracanie uwagi na tryb turbo procesorów. Muszę przyznać, że zawsze pomijałem tą wartość przy porównaniach, zdecydowanie jej nie doceniając. Tymczasem świadomość tego, jak duże znaczenie okazuje się mieć praca w trybie jednordzeniowym, rzuca na zagadnienie zupełnie inne światło. Za każdym razem, gdy wymagający program postanowi obciążyć tylko jeden rdzeń procesora, jego mocne przetaktowanie w trybie turbo pozwoli znacząco szybciej poradzić sobie z takim zadaniem.

Dla wielu z Was, problemy z wykorzystaniem większej ilości rdzeni wydają się oczywiste. Jednak przeciętny użytkownik komputerów nie ma o tym pojęcia i kupuje sprzęt w oparciu o wiarę w materiały marketingowe. A tam pojawiają się wyłącznie syntetyczne wyniki osiągane w specyficznych zadaniach. W materiałach prasowych, dwa rdzenie są zawsze dwa razy szybsze od jednego, podobnie jak 18 rdzeni od 9.

Tymczasem okazuje się to skrajnym zakłamywaniem rzeczywistości. Uzyskiwana wydajność wielordzeniowych konstrukcji to niewielki fragment ich katalogowych możliwości. To trochę tak, jakby kupić drogi samochód, osiągający katalogowe 350 km/h (tylko bez kierowcy, na Wielkim Słonym Jeziorze w Utah, w czasie koniunkcji 7 planet i z przerobionym silnikiem na paliwo uranowe). A potem jeździć tym cudem rozwijając maksymalnie 30 km/h.

  • Tech-Floyd :)

    „Wiele rdzeni w procesorze. Też daliście się nabrać?” – Nie, bo na co mi nie wiadomo tej „mocy”…

  • Krzepki Harry

    Wychodzi na to, że Zakius miał rację… :)

    • Przemek

      często ma, tylko forma prezentacji tworzy wokół niego widmo trola

  • Przemek

    a Excel daje rade obciązyć procek na 100% :)

  • Ok. To jest podejście per aplikacja. Ale może trzeba by spojrzeć na codzienne używanie. Masz otwartą przeglądarkę z X kartami, które coś sobie mielą w tle (i nie chodzi tu o bitcoina). Spotify, i jeszcze kilkanaście innych programów.

    Odpal na to główny program do pracy np. jeden z wymienionych w artykule – i ok, tako PS wykorzystuje te 4 rdzenie, ale może je wykorzystać na maksa, bo tło działa sobie na innych. Jak masz tylko 4 to się zaczyna krztuszenie.

    Przy dwóch rdzeniach, to już jest to bardzo odczuwalne (np. na 4310U odpalenie zwykłej zmiany rozmiaru kilku GB Fotek i filmów mocno utrudnia normalną pracę).

    • Przemek

      odpal cokolwiek w chromie i problemem nie będzie cpu rylko ram

    • Umiem używać monitora systemu i widzę, na czym sprzęt mi się krztusi ;)

    • Maciej Dobrowolski

      Jeśli kupując 10-rdzeniowy procesor ktoś przyoszczędził na RAMie.. :)

    • Przemek

      a zapowiadane i3 nie mają być super tanie i z 4rdzeniami?

    • Charlie Oldway

      Zapowiadane? Już są, w tej chwili i3 8100 (4 rdzenie za niecałe 500zł) to chyba najlepszy wybór na stacjonarkę

    • kwazi

      Tylko po co stacjonarka, jak każdy woli co kilka lat wymienić laptop.

    • Dokładnie, zupełnie została pominięta sprawa spojrzenia z punktu widzenia OS, a nie tylko pojedynczych „wadliwych” aplikacji.
      Systemy operacyjne obecnie dość dobrze radzą sobie z wykorzystywaniem wszystkich rdzeni. Mi w codziennej pracy 4 rdzenie to za mało.

    • Krzysiek

      Potwierdzam, nikt nie używa jednej aplikacji tylko trzeba jeszcze wziąć usługi w tle, i parę innych rzecz. Ja AutoCADa jak używam to nigdy nie jest sam włączony tylko jeszcze parę rzeczy dodatkowo, tak samo „rdzeniorzernych”

    • Co jeszcze jest takiego „rdzeniorzernego” co można robić równolegle do projektowania w Acadzie? Tak z ciekawości pytam – to moja branża i jeszcze nigdy nie widziałem kogoś pracującego w Cadzie i robiącego w tym samym czasie coś innego :)

    • Maciej Jóźwiak

      Yhm… Spotify, przeglądarka, klient email, antywirus i długo by jeszcze wymieniać….

    • To jest rdzeniożerne???? U mnie to wszystko obciąża jakieś 2% procesora :) Takie rzeczy jeden rdzeń odwala czekając na poważne dane, przerzucenie tego na kolejne rdzenie niczego nie poprawia.

    • Krzysiek

      Pisząc publikacje potrafię mieć odpalonego AutoCADa 2018, maszynę wirtualną z oprogramowaniem sterownika, parę pdfów, przeglądarkę, Worda, Excela i program do muzyki… Mało? No to jeszcze program do monitorowania zasobów… Rdzenie wydają się być równomiernie obciążone co widać i po traktowaniu i po ich temperaturze. I7-2820qm +16 GB pamięci mają co robić, grafika też. I mi widzę takich przypadłości jakie opisie autor.

    • AutoCAD jest programem jednowątkowym. Kropka. Fajnie, że możesz sobie poprawić samopoczucie obciążając pozostałe rdzenie swojego turboprocesora zadaniami, które wszystkie razem mogłyby zostać obsłużone przez jeden rdzeń, który nawet by się zagrzał. To nie zmienia faktu, że w Acadzie pracuje tylko JEDEN rdzeń.

    • Krzysiek

      Oczywiście, tyle że można wykorzystać pełna moc. Na moje potrzeby rysowania jeden wątek daje radę, ale procesor wielowątkowy jak wspominałem nie stoi bezczynnie a ja rzadko kiedy pracuję na jednym programie na raz. Ja się nauczyłem tak pracować i wykorzystywać sprzęt by nie stał bezczynnie.

      Swoją drogą ile osób świadomie włącza opcję otwierania by chociaż by okien eksploratora w nowych procesach?

    • Po co mieliby to robić? Podobnie bez sensu jest obciążanie procesora na siłę. Chyba, ze to rodzice za prąd płacą :)

    • Cililing

      No nie wiem. Zeby im komputer nie mulil? Ty dalej zamierzasz brnac w te bzdury ktore wyzej wypisales, zamiast po prostu przyznac sie ze nie ma to zwiazku z rzeczywistoscia?

      Ja dla przykladu mam w tym momencie odpalone: Visual Studio (x2), Android Studio, Postman, przeglądarkę PDF, Source Tree, Outlloka. Do tego w tle spotify, onedrive, antywirus i pare innych przydatnych programow. A, no i przeglądarkę, a na niej ze 20 kart. I to jest mniej wiecej moja codzienna praca, zarowno w domu jak i biurze.

      A, i za prad place sobie sam, albo uzywam firmowego ;)

      Jak bym odpalil to na gorszym sprzecie po prostu by nie uciagnelo, a zmiana kontekstu zabieralaby wiecej czasu niz taktowanie procesora. Stad sie bierze ciecie komputera, pomyslalbys? XD

      Miales w ogole cos do czynienia z informatyka poza pisaniem dyrdymalow jak powyzsze? XD Wez poczytaj o przydziale procesora, tego ucza na 1-2 roku studiow. A coś takiego już skutecznie uchroni przed pisaniem takich bzdur na kiju.

    • zakius

      w rzeczywistości jak masz 2/4 to już te 2 ciężkie i naście ekstremalnie lekkich procesów GUI+worker współpracują bardzo dobrze
      oczywiście w pewnych sytuacjach pojawią się problemy, ale koszt uzyskania wydajności w podstawowym scenariuszu staje się nieoroporcjonalnie wysoki jeśli zaczynasz od tego nietypowego scenariusza ze względu na różnice w cenach i wydajności procesorów
      7100+mobo H za 750zł komplet po prostu większości użytkowników sprawdzi się lepiej od 8400+ mobo Z za 1300 komplet, a nawet jak wyjdą H pod 8400 to będzie koło 1000zł za rozwiązanie słabsze w większości wypadków

    • Tylko po co otwierać kilkanaście programów naraz?

    • Inwisible

      Bo wydalen np 8k zeby „moc” to zrpbic gdy mnie najdzie ochota 😆

    • Żeby można było pracować bez udziwnień?
      Przeglądarka www, przeglądarka plików, cs do muzyki, backup, synchronizacja danych, multischowek, menadżer haseł, onenote, antywirus, sterowanie jasnością monitora, autohotkey, firewall, sterownik do myszki. TO taki zestaw startowy.

      A na to jeszcze zestaw programów głównych do konkretnej pracy.

    • No ok. Nie każda praca na komputerze sprowadza się do pakietu biurowego. Ale sterowanie jasnością monitora? Sterowniki myszki? To są osobne programy, które cały czas muszą być aktywne? Bo ja jasność monitora reguluję z klawiatury, a co do sterowników myszki, to nawet nie wiedziałem, że istnieją. Chyba że chodzi o jakieś bajeranckie myszki z mnóstwem przycisków, ale czy wtedy nie wystarczy skonfigurować je raz i o nich zapomnieć?

    • wefhy

      A jak według Ciebie komputer rozpoznaje, że myszka się przesunęła? Na linuxie odpowiada za to kernel, na windowsie sterownik.

    • Dlatego napisałem akapit o dawnych czasach i procesorach jedno rdzeniowych. Nie było absolutnie żadnych problemów z pracą na wielu kartach i dziesiątkami różnych procesów w systemie. Serio

    • wefhy

      Oczywiście. I te wszystkie procesy w tle zabierały 40% mocy procesora ;) Dlatego wszystko było niemiłosiernie wolne.

    • Dlaczego cokolwiek miałoby być wolne skoro procesor leciał na 40%? Ty tak poważnie?

    • wefhy

      Tak, jeśli procesy w tle zabiorą Ci 40%, to dla głównego zadania zostaje 60%. Czyli wszystko działa praktycznie 2 razy wolniej niż na dwurdzeniowym procesorze.

    • Filip Skirtun

      Tak? To odpal Winampa na 386 z dekodowaniem mp3 i zobaczymy jak sobie radzi z multi-taskingiem.

    • Najnormalniej w świecie. Wyobraź sobie że Winampa używałem latami na jednordzeniowcach pracując w tym czasie na innych programach. Gimby nie znajo :)

    • Filip Skirtun

      Wyobraź sobie, że pracowałem na rzeczywistym 386 z Windowsem 95 i tam odpalenie Winampa graniczyło ze śmiercią całego układu, ale najwidoczniej nie gra roli procesor :)

      To, że możesz sobie korzystać z jednego rdzenia w systemie z wywłaszczeniem to tylko wynik przerostu taktowania względem wymagań, a nie tego, że jeden rdzeń wystarcza, bo nie wystarcza. Ogółem głupotą jest twierdzić, że przy pracy na OS-ie nie ma sensu mieć więcej rdzeni niż mniej rdzeni, ale to już powiedziało wiele osób, a wprowadzasz w błąd osoby, które nie rozumieją tego, jak rzeczywiście działa równoległość wątków.

    • Spoko, tylko po co wspominać programy, które zawsze gdzieś tam w tle działają?

    • wefhy

      Bo zawsze potrzebują części mocy procesora ;) Jeśli przeniesie się je na inny rdzeń, nagle reszta programów dostaje kopa.

    • ddsad

      Kernel linuksa odpowiada za poruszanie się myszki? Raczysz żartować? Bzdury.

    • wefhy

      Oczywiście, kod za to odpowiedzialny znajduje się wewnątrz kernela
      https://github.com/torvalds/linux/tree/master/drivers/input/mouse

    • Ervin

      Nawet jeśli, to to są programy, które zżerają jakiś tam ułamek mocy CPU i raczej nie wpłyną na wydajność na niczym powyżej i3. A przynajmniej tak zauważyłem

    • Kamil Ro. Dzióbek

      Sterownik myszki raczej nie jest programem. Ale jak zwał tak znał. U mnie jak ruszam myszka czy nie ruszam to obciążenie procesora nie skacze, dalej jest 1%.

      Wątpię by wiele rdzeni coś dało przy wymienionych przez Ciebie programach.
      Antywirus i tak będzie blokował pliki programom, dopóki nie sprawdzi plików, wiec programy będą one stać w miejscu czekając na dane. Backup raczej obciąża dysk, a nie procesor (no chyba, że backup z kompresją).
      Wiele uruchomionych programów raczej obciąża pamięć, a nie procesor (jeśli nic nie robią).

      Dodatkowy system daje większy priorytet dla programu którego okienko jest aktywne.
      Nie, wiem co to jest ‚cs do muzyki’. aj kiedyś na jednordzeniowcu odpalałam WinAmpa z muzyką i żadnych zacięć nie było gdy robiłem coś innego na innym programie, a muzyka grała w tle.

    • Bigos Trismegistos

      Sterownik myszki jak najbardziej jest programem :). Może nie ma osobnego procesu, ale programem jest. Poza tym pełna zgoda.

    • Filip Skirtun

      Sterownik myszki korzysta obficie z przerwań, jak zresztą każde I/O, więc jest bardzo specyficzny.

    • Bigos Trismegistos

      Większość z tych zadań nie potrzebuje osobnego rdzenia do działania. Ba, nawet z niego nie skorzysta. Gwarantuję Ci, że nie zauważysz różnicy w pracy sterownika myszy (xD) pomiędzy 2 na 8-rdzeniowych procesorem :). Przeglądarka www może potrzebować niezerowej ilości mocy obliczeniowej jeśli masz otwarte jakieś zasobożerne strony, ale cała reszta „zmieści się” na jednym, w miarę nowoczesnym rdzeniu, a do tego jeszcze płyta główna przytnie mu woltaż, bo bedą się herce marnowały.
      No dobra, 2 rdzenie do grania to może być trochę za mało, bo niektóre gry z tego korzystają, ale poza bardzo specyficznymi zastosowaniami (rendering? jakieś obliczenia naukowe?) rdzenie raczej się marnują.
      Niedawno wymieniłem sobie dwurdzeniowy, stary i3 na nowy i7-8700k. Jakbym hajsem palił w piecu xD PUBG trochę mniej przycina, ale 2 cory i hyperthreading był więcej niż wystarczający do pracy i zabawy.

    • Święte słowa. Lepiej bym tego nie ujął. Dzięki

    • Alot

      Najprościej jak się da.
      Przy jednordzeniowym procesorze, praca na zasobożernej aplikacji praktycznie uniemożliwiała zrobienie czegoś innego.
      Przy czterech rdzeniach, zasobożerna aplikacja pracuje ‚w tle’, i na komputerze można robić inne rzeczy.

  • xxcccc

    Yyy.. Wyłącz Hyper-threading i zobaczysz jak wiele z twoich 50% to tak naprawdę 100%. Masz 2 rdzenie, ale w task managerze widzisz 4. HT jest bardzo specyficzne i rzadko możliwe do wykorzystania w tego rodzaju pracy.

    • Co ma piernik do wiatraka? 50% to nigdy nie będzie tyle samo co 100%.

    • Kamil Ro. Dzióbek

      Chyba będzie. Koleś ma dwa rdzenie, 4 watki. Wątek to coś takiego co oszukuje system, że jest więcej rdzeni niż rzeczywiście. 4*50% == 2*100%.

      Niech spróbuje ustawić koligację dla WinRara tak by korzystał z dwóch rdzeni, wtedy powinien mieć większy procent zużycia rdzenia.

    • No chyba widzę czy procesor pracuje na 50% czy na 100%, bez jaj :)

    • Filip Skirtun

      A wiesz, że to zużycie na poziomie < 100% wynika w ogóle z pewnych rzeczy, które po drodze opracowano, żeby nie marnować energii i czasu procesora, chociażby przy czekaniu na I/O. Jak głupim trzeba być, żeby mierzyć wydajność tak skomplikowanych rzeczy, jak procesory, przez procent zajętości, podczas gdy akurat to on jest przedmiotem optymalizacji?!

    • A można mierzyć inaczej? Tak pokazuje system, pewnie w Microsofcie pracują idioci, którzy tak to głupio zrobili…

    • JestLeczNiewiadomoGdzie

      Używał kiedyś 7zipa? 8 Wątków daje równo 99% zużycia.

      Artykuł jest wg mnie arogancki. Pomija wszystkie inne aspekty i wpiera ludziom bzdury. AutoCad wspiera 2 rdzenie. Więcej rdzeni to dodatkowy plus bo może sobie AutoCad utylizować dowolnie wolne rdzenie. Wykresy z Adobe są poprawne ale test z 2015 roku? Naprawdę? Sam nie umiesz już zrobić tylko posiłkujesz się na starociach?
      Dyskusja na jakimkolwiek poziome z Tobą widzę, że jest niemożliwa. Sam widzę pracujesz sobie na opinie o sobie.

    • Możesz zdradzić skąd masz informację o ACADzie? Oficjalna na stronach autodesku jest taka, ze program nie wspiera wielowątkowości. Jakiś link?
      Co do Adobe to sprawdzałem na swoim wyrywkowo i niestety nic się tutaj nie zmieniło. Test 2015 niestety jest aktualny. Jeśli masz jakieś linki potwierdzające Twoje rewelacje to chętnie się zapoznam.

    • JestLeczNiewiadomoGdzie

      Oficjalny knowledge base Autodesku mówi o utylizacji dwóch rdzeni od wersji 2000
      Nie podoba mi się Twój ton. Za bardzo uważasz się za autorytet i gdy ktoś podważa Twoje zdanie to zaczynasz być opryskliwy, owszem inteligentnie ale to dalej opryskliwy ton :-)

    • John Katharsis

      Winrar w 100% wykorzystuje fizyczne rdzenie – jak jest HT to zużycie nie będzie większe jak 50% ;)

    • Wojtek Sieradzan

      Gdy popełniasz taki artykuł o rdzeniach i walisz takiego babola ze głowa mała…

    • Jakiego babola? To oczywiste, że mam 2 rdzenie fizyczne i 4 w HP, przecież napisałem o tym w arcie. To nie zmienia faktu, że są programy, które potrafią obciążyć oba rdzenie na 100% (czyli cały procek też na 100%), a są takie, które obciążają tylko jeden rdzeń na 100%, czyli cały procek na 50%. Czego tu nie rozumiesz?

    • Chaos Deterministyczny

      To są 4 rdzenie fizyczne, skąd pomysł, że ich w procesorze nie ma?

    • Henrar

      Polecam się zapoznać jak skonstruowany jest procesor z SMT (w tym przypadku HT). To nie są cztery fizyczne rdzenie.

    • To są 2 rdzenie FIZYCZNE. W arcie masz podlikowany wpis w wikipedii dotyczący procesora o którym rozmawiamy. Poczytaj.

    • Borsuk

      4 rdzenie HT to nie to samo co 4 rdzenie fizyczne. Tak naprawdę to się nazywa „thread interleaving” czyli przeplatanie wątków. Do dwóch jednostek ALU dochodzą cztery potoki rozkazów. Kiedy których potok się wywali tj. procesor musi go wyczyścić, ALU może wykonywać drugi potok. Zysk z HT to jakies 10%. Wyłączenie HT w laptopie skutkuje nieco mniejszym zużyciem prądu. Dwa rdzenie oznaczają, że procesor wciąż wykonuje 2 rozkazy jednocześnie. Włączenie HT tego nie zmieni.

    • Wojtek Handke

      Ale wiesz, że jak pokazuje 50% ogólnie to nie znaczy, że jeden rdzeń działa na 100%, a już tym bardziej nie musi to znaczyć, że akurat procesor jest wąskim gardłem. Generalnie wielordzeniowość to najważniejsze co dzieje się w rozwoju procesorów i powinno się dziać, ponieważ pozwala na gigantyczne przyspieszenie operacji. Spójrz chociaż na karty graficzne, gdzie obecnie pracuje kilkaset (czy nawet kilka tysięcy) rdzeni – są one w bardzo wielu zastosowaniach wielokrotnie lepsze od nawet najmocniejszych procesorów.

    • Filip Skirtun

      W HT nie masz czterech fizycznych rdzeni, tylko dwa dodatkowe zestawy rejestrów, także tam jest dużo bardziej skomplikowana architektura niż by ci się mogło wydawać. Polecam najpierw się douczyć.

    • Którego wyrazu z „mam 2 rdzenie fizyczne i 4 w HP” nie zrozumiałeś?

    • Filip Skirtun

      Po jakości artykułu wnosiłem, że piszesz o HT, a nie o HP, sorry :)

  • Robert Lewandowski

    Jak to jest, że programiści potrafią wykorzystać ponad 2000 rdzeni strumieniowych w GPU a nie potrafią wykorzystać 2 w CPU?

    • 1. Zaszłości w kodzie.
      2. Opisana w artykule sytuacja, że znaczna cześć sprzętu nie ma więcej niż tych 2 rdzeni.

    • zakius

      specyfika zadań, GPU wykonuje wiele identycznych i niezależnych obliczeń
      większość programów użytkowych opiera się o obliczenia zależne, a czasem po prostu koszt synchronizacji (wliczając znacznie zwiększone ryzyko wystąpienia błędów) jest zbyt wyaoki, by zawracać sobie tym głowę (patrz webaplikacje, webworkerów mało kto używa, a każdy filtr po stronie klienta powinien być do takiego oddelegowany)

    • Kamil Ro. Dzióbek

      >specyfika zadań, GPU wykonuje wiele identycznych i niezależnych obliczeń

      Identycznych w jakim znaczeniu? Chyba każdy rdzeń GPU może wykonać inne obliczenie (instrukcję) w tym samym czasie. Czy tak nie jest?

    • zakius

      zazwyczaj są to stosunkowo proste obliczenia, zwłaszcza w porównaniu do wykonywanych orzez rdzenie CPU, ale „identycznych” może faktycznie być pewną przesadą
      w każdym razie i tak nie zmienia to faktu, że GPU się tak skalują, bo obliczenia przez nie wykonywane są niezależne od siebie w dużej mierze

    • Piotr Potulski

      Są identyczne – każdy strumień ma osobny bufor danych, ale wspólny rejestr rozkazów. Czyli GPU zrobi dobrze np. rozjaśnienie zdjęcia, bo do wystarczy do kilka milionów floatów pomnożyć przez określoną (taką samą) wartość. Operacja jest identyczna tylko dane wejściowe (piksel) inne.

    • Nxjdj

      Właśnie obliczenia często są bardzo skomplikowane, bardzo dużo liczb zmiennoprzecinkowych, mnóstwo mnożeń i dzielenia itd. CPU średnio sobie z tym radzi, bo z reguły jest ubogie w FPU i posiada np. 2x albo 1x FPU i 4x ALU na rdzeń jak i mechanizmy w które CPU jest bogate i zaawansowane (branch prediction, prefetch i inne) nie są tak rozbudowane w GPU. Za to w skład GPU wchodza nie raz tysiące rdzeni, które są przygotowane pod równolegle operacje i wszelakie branche, powodują nie raz zastoje zwłaszcza w przypadku generowania grafiki 3D.

    • Henrar

      Mogą wykonywać inne instrukcje jak najbardziej (oczywiście na pewnym poziomie granulacji), ale to się nie opłaca, bo pojedynczy „rdzeń” GPU jest strasznie słaby.

    • Henrar

      To są zupełnie inne zastosowania i zupełnie inne algorytmy, które da się masowo zrównoleglić. Jeżeli jakiegoś algorytmu nie da się przerobić na GPU, to odpalenie go na tym da nam efekt odwrotny do zamierzonego – spowolnienie równoległe.

    • wefhy

      Rozbicie programu na więcej niż dwa wątki to praktycznie zawsze tyle samo pracy – czy będą to 3, 4, czy 5000, nie ma znaczenia, kod jest identyczny. A większych bzdur niż w tym artykule to dawno nie widziałem.

    • No tak. Programiści od Adobe to matoły i z tak prostym zadaniem sobie nie poradzili….

    • Alot

      Programiści Adobe do pracowitych nie należą, bo skoro działa, to po co poprawiać.

    • No tak, Adobe zatrudnia stażystów z Ukrainy na czarno. W dodatku leniwych. Ty na pewno byś lepiej napisał Photoshopa.

    • Grubas

      Litości.. Adobe ma przestarzały codebase i zapewne jest tam wiele bottleneckow. To jest pewne, bo tak jest z każdym długo rozwijanym programem. Nie rusza się tego, bo się nie opłaca ryzykować. Łatwiej i taniej jest przyspieszyć (wymienić) sprzęt, co jest wciskane wam wszystkim od wielu lat.

      To nie chodzi o to, że w Adobe się nie znają. Znają się na tyle dobrze, że wiedza ile to kosztuje i dlaczego nie warto.

      To że soft nie wykorzystuje sprzętu ma dwie przyczyny – specyfikę procesu (np i/o wait) lub właśnie niedostosowany kod.

    • To jest problem KAŻDEGO softu o takim stopniu komplikacji i tylu funkcjach. Tego się nie da lub nie opłaca zrobić lepiej czego dowodzi praktyczna dominacja na rynku Adobe.

    • Grubas

      Nie opłaca. Nie da to się parasolki…

    • Kamil Ro. Dzióbek

      Czy to na pewno jest problem mocy procesora? Czy nie przypadkiem problem nie dotyczy prędkości przesyłania danych z pamięci w tą i z powrotem?
      Czy rzeczywiści kolesie od Adobe rozbijali na wątki zmianę rozmiarów obrazka? Może tego nie zrobili po prostu.

    • Masz link do pełnego testu. Jest opisana metodologia. Po prostu nie każdą operację da się podzielić na części, a nawet jak się da to komplikacja zadania jest tak duża, że poprawa wydajności jest niewielka. Ja na programowaniu znam się w stopniu podstawowym, o szczegóły trzeba by pytać zawodowców.

    • Krzysztof Szmergiel

      Adobe z prostszymi rzeczami nie potrafi sobie poradzić. Na przykład tryb full screen w MacOS jest już od ok 5 lat. Do dzisiaj nie ma wsparcia dla niego w żadnej aplikacji Adobe.

    • wefhy

      Powiedziała osoba, która testowała to na 2-rdzeniowym procesorze z HT i dziwi się, że ma 50% zużycia procesora xd
      Wyłącz HT – wydajność będzie taka sama, a użycie równo 100%. Uruchom na stacjonarnym i5, to wykorzysta 100% z wszystkich rdzeni ;)

    • Nie chcę niszczyć Twojego dziwnego światopoglądu, ale są programy, które potrafią obciążyć ten 2 rdzeniowy procesor na 100%, bez grzebania w domyślnych ustawieniach producenta.

    • wefhy

      Oczywiście, że są. To procesy, które mają mniejsze zapotrzebowanie na cache, przez co system może je łatwiej kolejkować na tych dwóch rdzeniach fizycznych. W tym wypadku wyświetla się 50% procent, ponieważ zadania są na zmianę kolejkowane na czterech rdzeniach wirtualnych, ale na tym dwóch fizycznym. W rzeczywistości to 100% możliwości tego procesora i nie wyciągniesz z niego nic więcej. Wybacz, ale nie masz pojęcia, jak działają dzisiejsze procesory, a bierzesz się za wątek, w który wypada się zagłębić na dłużej niż 10 minut i robisz z siebie pośmiewisko.

    • Czyli Twoim zdaniem 50% to jest 100%? Przy takiej logice nie sposób dalej ciągnąć dyskusji. EOT

  • To jaki procek kupić do 1070ti w 1 kwartale 2018?

    • Przemek

      zalezy od płyty…
      i tego co robisz

    • Kupię taka żeby pasowała :)

    • Bigos Trismegistos

      Jak kasa to nie problem to i7-8700K i płyta na Z370. Najszybszy w jednordzeniowych zastosowaniach, a do tego ma tych rdzeni 6 i jeszcze HT. Ale to będzie trochę marnowanie kasy. Dokładnych benchmarków nie mam pod ręką, ale żaden i5 ani Ryzen od 1600 w górę (a może nawet 1500x) nie powinien ci ograniczać karty.
      Jak kasę jednak wolisz oszczędzić, to poczekałbym na te nowe i3, które mają być 4-rdzeniowe i porównał ich osiągi z i5. No i cenę, jesli różnica w cenie będize procentowo większa na korzyść i3 niż różnica w wydajności na niekorzyść – to wiecie co z nim zrobić xD (kupić)

    • Slawko

      Do 1070ti niema co się już pchać w 4 rdzenie bez HT, bo już są gry gdzie 4 rdzenie beż HT to za mało
      np. do Battlefield 1 multiplayer.

    • 4.4-Litre V8

      Nie z czasownikami piszemy oddzielnie.

    • radeon hade

      Czekałbym na Zen+ albo brałbym teraz i5 8400 z naciskiem na drugą opcję bo nowy zen ma wprowadzać jedynie poprawki bez znaczącej poprawy wydajności

    • Slawko

      Cena/wydajnościowy to procek i7-8700 bez K, i płytę na chipset B350.
      do tego 2×8 GB ram i będziesz miał sprzęt na lata.

  • Czytelnik

    Wykorzystanie wielu rdzeni przez pojedyncze programy to jedno, ale czy autor sprawdzał wykorzystanie tych wielu rdzeni przy uruchomieniu wielu typowych aplikacji równocześnie na tej samej maszynie? Bo być może w tym zakresie wiele rdzeni czyni jednak sporą różnicę. Weźmy np. odtwarzanie filmu z YT, i choćby w tle wykonywanie zipowania wielu plików, przy jednoczesnym pobieraniu z sieci wielu dużych plików, a do tego każdy może dodać jeszcze swoje najczęściej wykonywane czynności – choćby renderowanie filmu, itp. itd.

  • airhead

    Czy jesteś pewien, że temu wykresowi można zaufać na tyle, żeby założyć, że 50% obciążenia procesora oznacza brak potrzeby więcej rdzeni procesora? Może lepiej wylaczyc jw w biosie i potem porównać wyniki.

    • Nie chciałem grzebać za bardzo. To miały być testy na zwykłym komputerze i zwykłych programach.

    • wefhy

      Tak tylko chciałem zaznaczyć, że ten komentarz to jest aktualnie największy hit na jednej z grup programistycznych xd

  • Brzdyl

    Właściwie qualcomm tworzy w większości konstrukcje działające jako 4+4. A jeśli chodzi o pc to wniosek prosty brać i3 i cieszyć się wydajnością.

  • mleczaj wełnianka

    Dobry tekst ale jedna podstawowa sprawa. Jak ilość rdzeni przekłada się na pracę w wielu aplikacjach na raz? Wiadomo że w danej chwili pracuje się na jednej ale co z tymi które są odpalone w tle i czekają na swoją kolej albo synchronizują pocztę, dane tudzież odtwarzają muzykę?
    Normalne środowisko pracy to kilka progeamow na raz… Niektóre mają otworzone do kilka-kilkanascie plików…

    • zakius

      biorąc pod uwagę wymagania alikacji działających w tle to o ile nie jesteś jednym z instalujących 3 antywirusy to nie powinieneś zauważyć różnicy między szybkim 2/4 a średnim 4/4, a gdy zauważysz to na korzyść tego pierwszego
      większość otwartych rzeczy potrzebuje tyle mocy, że context switch jest równie czasochłonny dla procesora, co sam program

    • Cililing

      Wlasnie dlatego ten tekst jest daleki od przyzwoitego, a co dopiero dobrego. Autor mial bledne zalozenia, rozpatrzyl dzialanie procesorow dla konkretynych casow, po czym wyciagnal zbyt ogolne (i bledne) wnioski. + nie widzę info o wykorzystaniu karty graficznej, a wiele aplikacji wlasnie tam wysyla swoje zadania obliczeniowe, bo one maja 2k rdzeni + i pozwalaja na szybkie obliczenia bez dlawienia sie procesora.

    • Ok. Rozważmy sytuację w której masz jeden szybki rdzeń i obok komputer z dwoma o połowę wolniejszymi rdzeniami. Odpalasz dwa programy, jak to w życiu, jeden mocno obciąża procek, drugi słabo. Komputer z dwoma rdzeniami – jeden rdzeń jest obciążony przez wymagający program i leci na 100%, drugi rdzeń odpoczywa bo drugi program obciąża na 20%. Komputer z jednym rdzeniem – 10% procesora przeznacza na lekki program i całe 90% na wymagający. Zagadka – który procesor poradzi sobie szybciej :) Podpowiedź – jedno rdzeniowy pracuje na 100% swoich możliwości, a 2 rdzeniowy na 60%…

    • Dawid Ochryniak

      no czyli według tego co tutaj piszesz im więcej rdzeni tym lepiej. czyli przeczysz własnym wnioskom zawartym w artykule. mając 10 programów odpalonych równocześnie będą one szybciej działały na 10 rdzeniach niż na 4 przykładowo.

    • Jak to obliczyłeś? Lepiej czekać na wyniki 10 minut (procek na 100% jednordzeniowy) czy 14 minut (procek na 60%)? Ja wolę te 10 minut…

    • Dawid Ochryniak

      a ok. jakoś przeoczyłem, że piszesz o sytuacje, że 2 rdzenie są o połowe wolniejsze. może mój mózg z automatu pomija takie absurdy. to jest zwyczajne zaklinanie rzeczywistości. między i7-2600k, a i7-8700k różnica w wydajności jednego rdzenia to 40% (http://cpu.userbenchmark.com/Compare/Intel-Core-i7-8700K-vs-Intel-Core-i7-2600K/3937vs621). przy czym 2600k to procesor z 2011 roku.

    • Bo cała teza artykułu opiera się na tym, że nie ma sensu płacić za więcej rdzeni, jeśli nie są one szybsze. Generalnie o to chodzi, że dla normalnych użytkowników liczy się zasadniczo tylko różnica w wydajności jednego rdzenia – te konstrukcje 18 rdzeniowe są do bardzo konkretnych, niewielu zastosowań.

    • Dawid Ochryniak

      No dobrze to rozważmy sytuacje, że musimy obsłużyć 4 zadania obciążające rdzeń w 100%. Mamy bardzo szybki procesor jednordzeniowy i drugi czterordzeniowy procesor, którego rdzenie są o połowe wolniejsze, cztery rdzenie to teraz taki standard. Załóżmy, że wykonanie jednego zadania trwa 10 minut na szybkim jedno rdzeniowym procesorze. na wolniejszym 20 minut. Wniosek. Procesor czterordzeniowy jest w stanie wykonać wszystkie zadania w czasie o połowe krótszym. Czyli twoją tezę można w bardzo prosty sposób obalić.
      Oczywiście masz racje, że 18 rdzeni dla zwykłego użytkownika to kompletna bzdura. Ale przykładowo pakowanie plików jest w stanie obciążyć procesor w 100%.

    • Jaki sens ma porównanie procesorów o różnej wydajności? W Twoim przykładzie „czterordzeniowy procesor, którego rdzenie są o połowe wolniejsze” jest o połowę szybszy niż jednordzeniowy. Program potrafiący skorzystać ze wszystkich rdzeni wykona zadanie dwa razy szybciej. Za to program używający tylko jednego (np AutoCad) dwa razy wolniej. To dokładne potwierdzenie tezy.

    • Filip Skirtun

      Nie ma żadnej dobrej miary wydajności procesora, benchmarki też nie są spójne i mogą dawać rezultaty o niskiej użyteczności względem prawdziwego zastosowania.

    • Jak nie ma? Robię render i sprawdzam ile czasu mi się zrobi. Na lepszym procesorze zrobi się szybciej. Po cholerę mi inne miary wydajności?

    • Filip Skirtun

      Ale przecież musiałbyś wtedy wytestować wszystkie możliwe instancje renderów, żeby wyciągnąć jakiekolwiek rzeczowe wnioski…

    • Po co? Jeden render wystarczy żeby wiedzieć który procesor jest szybszy. Choc wystarczy przeczytać specyfikację ze zrozumieniem…

    • Filip Skirtun

      Co masz na myśli przez „przeczytanie specyfikacji ze zrozumieniem”? Absolutnie ANI JEDEN parametr liczbowy nie mówi niczego bezpośredniego względem tego czy możemy się spodziewać szybkiego sprzętu czy też nie.

    • Przy tej samej architekturze szybszy zegar daje większą wydajność. Zawsze. Mało tego – dwa razy szybszy zegar to dwa razy więcej instrukcji w jednostce czasu, więc o połowę większa wydajność i połowę krótsze czasy przy ciężkich zadaniach. Proste.

    • Brudka

      Tylko zegara nie będziesz zwiększać w nieskończoność – bo patrz ograniczenia technologii i przewodnika jakim jest krzem – to raz.
      Dwa – nie zawsze cykl zegarowy przekłada się bezpośrednio na wydajność i ilość iteracji jednostki ALU (IPC). Bo duży wpływ ma właśnie jej architektura oraz rozwiązania algorytmów, przykładowo eliminacja algorytmu dzielenia i zastąpienie go przesunięciem bitów.
      Tutaj jako przykład optymalizacji pomimo zmniejszenia zegara – masz Pentium IV i jego sukcesora – czyli Core2. ;)

    • Dlatego napisałem „przy tej samej architekturze”. Nowsza architektura da wyższą wydajność przy tym samym zegarze, choć efekt tej poprawy nie jest już tak łatwy do przewidzenia matematycznie i trzeba faktycznie zdać się na testy.

    • Brudka

      Każda architektura ma swoje ograniczenia, każda ma też widełki modeli od tych najtańszych (najsłabszych) do najdroższych (najmocniejszych). Każda kolejna architektura zmienia proporcje IPC przeważnie je podnosząc. ;)

      Nie zakładaj, że w cenie taniej jednostki dostaniesz jednostkę wydajniejszą, która po prostu kolokwialnie mówiąc jest wyżej wyceniona. Oczywiście każdy by chciał – ale wiesz… Święty Mikołaj nie istnieje. ;)

  • Matjus Zicz

    na ten moment 6 rdzeni to max jakie ja osobiście potrzebuję – więcej to zdecydowanie za dużo jak dla moich działań a 18 to już totalny odlot :D

  • tekst w wielki ale to wielkim uproszczaniu i niejednokrotnie mijający się z prawdą, a i dwa rdzenie to nie dwa cpu (choć tu najbliżej miały stare pentiumy D , które nie grzeszyły wydajnością)

  • Assses Besses

    Czemu żaden producent nie pomyśli o łączeniu rdzeni na poziomie CPU? Skoro nie można tworzyć bardziej wydajnych rdzeni to dlaczego 8 rdzeni nie można połączyć w 4 na poziomie CPU? Oszczędziło by to czas programistom.

    • Szczepan

      Bo instrukcje trzeba wykonywać po kolei, jedyne na czym można oszczędzić to wykrywanie rozgałęzień (wykonywanie dwóch możliwych ścieżek jednocześnie) i zrównoleglanie pewnych instrukcji, gdzie nie narusza to wykonywania programu (i to wprowadzono już w pierwszych Pentiumach – tej informacji w artykule zabrakło). Nie zsynchronizujesz instrukcji na kilku rdzeniach, bo opóźnienia w wymianie danych zabiłyby cały zysk wydajności.

    • Filip Skirtun

      Pamiętajmy jednak o tym, że procesory baaaaaaaaardzo mocno odeszły od architektury z jednym potokiem wykonawczym…

    • zakius

      za duże porcje kodu trzeba by analizować, nawet jeśli by to działało, a nawet ostatecznie wykonanie całego czasochłonnego algorytmu poszłoby szybko, to spodziewam się sporych opóźnień na etapie samej analizy

    • Henrar

      Bo nic z tego nie wyjdzie.

    • wefhy

      Od bardzo dawna procesory to robią, poczytaj o branch prediction i podobnych mechanizmach. W jednym rdzeniu jest o wiele więcej jednostek wykonujących obliczenia niż potrzeba, w związku z czym procesor sam zrównolegla kod.

  • Pl

    Artykuł po prostu głupi, odpal Pan linuxa a na nim szachy albo avidemux do kodowania MPEG, jak ktoś siedzi w świecie wind no to ma cofke w głowie, pod Linux praktycznie wszystko korzysta z wielu rdzeni.

    • zakius

      to odpal pan menadżer plików albo przeglądarkę

    • marcinek

      Swięte słowa. Dodam jeszcze, że artykuł jest tencencyjny – cały „dowód” zdąża do z góry założonej tezy: wiele rdzeni to robienie klientów w bambino. żeby daleko nie szukać, wystarczy zamiast fotoszopa wziąć Corel AfterShot Pro (jest też na linuxa, tu go używam) – woła RAWy na wszystkich rdzeniach, że aż wszystkie moje 8 wątków kręci wiatrakami na maxa. A dla chcących, można jeszcze włączyć obsługę OpenCL, to i GPU się nie będzie nudziło.
      Autor wydaje się także zbytnio upraszaczać sprawę: „program to instrukcje wykonywane po kolei” – Otóż nie. Jesli mówimy o programie w sensie wysokopoziomowym, np kod w C++, programista, jeśli był łebski, użył wątków. A jeśli nie by łebski, to może programista API, a którego korzysta nasz programiasta… był łebski. A pewnie był, bo już od Win95 masa gadżetów okienkowych chodziła sobie we własnych wątkach. Java po ciuchitku też odpala masę wątków, aż rwących się do usmażenia kolejnego korka w naszym CPU (Android = Java).

      A na poziomie kodu maszynowego, do głosu dochodzi jeszcze kompilator ze swoimi sztuczkami, które wspomagają takie fiki-miki w procesorze jak out-of-order-execution czy choćby SMT/HT.
      Wniosek – surowa wydajność z jednego rdzenia to „Windows prawda”. Przyda się może do pracy z jedną aplikacją, Ale choćby Firefox, zdaje się że od wersji 57 odpala oddzielny proces dla każdej karty! I system będzie przeszczęśliwy mogąc powrzucać te procesy na oddzielne rdzenie.

    • aaa

      Jako niereformowalny linuxiarz to samo miałem napisać. Dodam jeszcze że sam proces kompilacji jest do bólu wielowątkowy.

  • ShadowDX

    Polecan i3-7360X na X299, napewno taki R7-1700 się nie umyje, no bo co, przecież szybsze te 2 rdzenie nie? 😂 Pogięta logika… Artykuł może nie bezużyteczny ale o parę lat spóźniony, bo teraz jesteśmy w trakcie konwersji, przejścia na wykorzystanie większej ilości rdzeni przez bardziej wymagające programy. Nawet gry, które są piętą Achillesa procesorów wielordzeniowych zaczynają być tworzone z myślą o nich, świetnym tego przykładem jest nowy Wolfenstein, który wykorzystuje VulkanAPI. A o tym, że zmniejszanie procesu litograficznego zmierza ku końcowi i wkrótce możemy uderzyć w ścianę gdy już nie będzie można pakować mocniejszych pojedńczych rdzeni autorowi wiadomo? Wiele aplikacji nie daje rady na 2, pojawiają się takie co nawet na 4 nie dają rady, są aplikacje i zastosowania bardziej codzienne, które wymagają więcej niż 4 rdzeni, aplikacje działające w tle. O tym też warto by napisać, dlatego pod ciężkim obciążeniem taki FX8350 z 8 słabymi rdzeniami bulldozer potrafi konkurować w pewnych przypadkach z i3-7350k który ma około dwukrotnie większą wydajność jednordzeniową.

    • zakius

      akurat gry wbrew pozorom łatwiej zrównoleglić, każda wykonuje wiele niezależnych (lub „luźno zależnych”) zadań
      a do tego nie są mission critical, jak coś się wywali to nikt nawet nie zwróci na to uwagi

    • ShadowDX

      A mimo to wzrost wydajności po 4 rdzeniach (czasem 6) jest dość słaby i nijaki. Taktowanie przeważa ilość rdzeni chipu. Taki efekt obserwowaliśmy już od dawna na rynku. Wreszcie coś się rusza przynajmniej…

    • zakius

      bo jest dużo niezależnych zadań, ale nadal masz pętle główną, którą ciężko rozbić

  • U mnie nie ma z tym problemu :) https://i.imgur.com/HLlkcxy.jpg

    • Kodowanie obrazu jest teoretycznie zadaniem łatwym do rozdzielenia i cieszę się, że HandBrake świetnie sobie z tym radzi. Szkoda, że jest to wyjątek potwierdzający regułę.

    • W VMware tez sa co do tego wymagania, wiedzialem co robie . :)
      Poza tym w 7zip mozna ustawic ile chcesz uzyc watkow ale faktem jest ze w wiekszosc czasu te procesory (domowe) nie wiele robia.

  • zz

    w przeciwieństwie do autora nigdy nie chce widziec zajętości 100%, procek nie ma czasu na robote bo ciągle musi przełączać zadania

    • „Przełączać” zadania? Nie ma czegoś takiego. Kolejkowanie zadań nie obciąża nijak procesora.

    • Bigos Trismegistos

      Eee, no jednak trochę obciąża. Przełączanie zadań istnieje, nie tylko kolejkowanie. W sensie, jeśli skolejkują się długotrwałe operacje i jedna z nich będzie trwać zbyt długo to zostanie zatrzymana i przez X czasu będzie wykonywana inna. Ta zmiana wymaga przeniesienia obliczanych wartości do pamięci i wczytania nowego kontekstu, co jest niezerowym wysiłkiem. Ale też niezauważalnym raczej. Jak masz procesor ciągle na 100% to nie zmiana kontekstu ci zabija płynność, tylko nadmiar wysokopriorytetowych zadań :). A zmiana kontektu jest dobra, bo dzięki niej ci myszka nie przycina ani film na youtubie :)

    • Filip Skirtun

      Przełączanie zadań jest kosztowne, bo to jednak dostępy do pamięci, przy obecnych architekturach – choćby dzięki HT, które sobie po prostu liczy na rdzeniu co innego, czekając na dane – może i niezauważalne, ale to tylko i wyłącznie kwestia przerostu wydajności względem potrzeb użytkowych.

      i3 zagryziesz naprawdę banalnymi zadaniami.

    • Filip Skirtun

      Przełączanie zadań nie obciąża? Ciągłe rzuty stanu do pamięci i zmiana kontekstu nie obciążają? Wariat po prostu.

  • devil304

    Prosty przykład dla zwykłego użytkownika, każda karta w chromie jest oddzielnym wątkiem, który może obsłużyć oddzielny rdzeń. Aktualnie ilość rdzeni się zwiększa tak szybko, że nie każda aplikacja z tym nadąża, ale są aplikacje i jest ich sporo, które wykorzystują dodatkowe rdzenie, posiadam 4 rdzeniowy, 8 wątkowy procesor i Blender (program do grafiki 3D) potrafi mi go obciążyć w 100%. Inna rzecz, WinRaR to już przestarzały program, taki 7zip, znacznie lepiej wykorzystuje wielordzeniowość. Ba, ja sam pisząc aplikacje na androida staram się dzielić ją na wątki i zadania asynchroniczne, jedna z moich aplikacji potrafi na telefonie wykorzystać nawet 8 rdzeni.

  • Gość

    „Sami sobie odpowiedzcie na pytanie, jaki sens jest w optymalizowaniu kodu pod kosztujące majątek konstrukcje kilkunastordzeniowe.”

    Majątek? To chyba stawka redaktorska na prawdę słaba jest, chyba że to artykuł z 2016 to przepraszam. Ale ale, artykuł jest świeży ale pisany za minione Intela żeby zniechęcić do przesiadki na AMD. Nie no jak płacą to czemu nie napisać trochę bzdur…

    • 2k $ za nowego i9 to nie majątek? Policz ile średnich krajowych trzeba żeby kupić procek za ponad 7 000 zł.

    • iksde

      A zwróć uwagę jak wysoki odsetek osób w branży tech zarabia więcej niż nawet te 7k pln…

    • Alot

      Potrzeba dokładnie 5 renderów A4 250dpi w jakości foto.
      A i to u raczej taniego wykonawcy.

    • Dawid Ochryniak

      Ale przytaczasz w tym momencie ekstremalny przypadek. To procesory do zastosowań profesjonalnych i pasjonatów, którzy zwyczajnie chcą mieć taki procesor. I są aplikacje, które wykorzystają wszystkie 18 rdzeni.

    • A jaki mam przytoczyc? Znasz jakieś tanie „kilkunastordzeniowe” procesory?

    • wefhy

      Ryzen 1920X – $680 za 12 rdzeni.

    • Jak za darmo :) Za tyle ludzie całe laptopy kupują :)

    • wefhy

      Jedni za tyle kupują laptopy, inni procesory…
      To tylko 2x więcej niż przeciętny procesor w gamingowym PC

  • Inwisible

    Kolego problem twojego kompa tkwi nie w procesorze poniewaz na twoim wykresiku ida 2 jajka po 50% wiec procek nie otrzymuje odpowiedniej ilosci info od ramu chocby sie zesral jak ma przetwarzac info bez danych… to jesli chodzi o twoja maszyne. Ogulnie sie zgodze a w szczegulnosci sie zgodze gdy chodzi o maszyny np 4 rdzeniowe do tego 8 watkowe… i z koro 4 rdzenie maja problem z odprowadzaniem ciepla jaki ses ma upychanie ich tam np 8 oczywiscie zabezpieczenie temp nie pozwoli na dluzsze uzycie 8 … kest to czysty wyscig szczuruw…

    • Ó

      Wyłączyli ci ó ?

  • POLO Mario

    Prosto i na temat procesory wielordzeniowe kupuje się do pracy profesjonalnej np 3d max render i to jest zastosowanie gdzie 100 procent ja wykorzystuje wzrost jest nieziemski po co pisać artykuły pokroju elaborate hah jest jedną prosta rzecz procesory wielordzeniowe służą do renderingow głównie i koniec jak kupujesz procesor do winrara lub Photoshopa to po prostu masz za dużo pieniędzy a za mało wiedzy hehe koniec tematu proste

    • Przecież masz screena z renderingu. Jest z AutoCada, ale to w końcu to firma od 3DS Maxa. Samo renderowanie wydaje się identyczne, z raytracingiem, fakturą powierzchni, refleksami i z rozmyciem obrazu w zależności od odległości.

    • Dawid Ochryniak

      Ale co ma piernik do wiatraka. Że efekt jest taki sam nie znaczy, że sam proces renderowania przebiega w taki sam sposób. Zapewniam, że 3ds max, a raczej silnik renderujący w nim uruchomiony obciąży wszystkie rdzenie.

  • Janusz

    Polecam autorowi przeprowadzenie tego testu na procesorze z 4 fizycznymi rdzeniami bez HT.

    • Stacjonarkę mam na i7. AF wcale nie renderuje dużo szybciej.

  • Pluto

    Na wielordzeniowość trzeba patrzeć z punktu Systemu Operacyjnego i codziennej pracy podczas której uruchamia się wiele aplikacji.

  • Wielkie_Nieba

    Nie pamiętam kiedy w internetach czytałem tak pożyteczny tekst. Brawo!
    Zastanawia mnie jednak jak to jest w przypadku wielu aplikacji? Zwykle mam ich otwartych kilka, a do tego w przeglądarce kilkanaście kart. Czy wtedy komputer nie korzysta z wielu rdzeni?

    • Henrar

      Korzysta.

    • Kamil Ro. Dzióbek

      Jeśli chodzi o chrome to każda karta to oddzielny proces, więc system może bez problemu każdą kartę odpalić na innym rdzeniu. Można też na sztywno ustawić koligację dla danego programu.
      http://www.centrumxp.pl/SkrzynkaPytan/2540,Koligacja-procesorow-wielordzeniowych-w-Windows.aspx

      Tak samo jest z różnymi programami, bo każdy program to oddzielny proces.

      https://uploads.disquscdn.com/images/01e0415f67ea46bb8c5640d601db3a60bc9f2cb6326a6c6610c11cab2eecb613.png

    • Chaos Deterministyczny

      Ojej, a byłem przekonany, że nieaktywne karty w chrome są już „usypiane” (widzę to w grze, po aktywacji karty aktualizują się pozycje obiektów). Z drugiej strony yt i muzyka leci…

    • Korzysta, ale dalekie jest to od efektywności. Różne strony w różnym stopniu obciążają procesor więc ogólne jego obciążenie jest po prostu wypadkową i nigdy nie osiągnie 100%. Jedna strona się zawiesi bo zadusi jedno jądro, a reszta będzie śmigała – na jednym, wydajniejszym rdzeniu moc oszczędzona na lekkich stronach mogłaby zostać wykorzystana przez tą jedną, wymagającą.

  • Son Goku

    XXI wiek. Zaglądam czasami na różnie fora internetowe. Jak ktoś chce kupić peceta do pracy to przynajmniej w ~80% przypadków oprócz programów liczą się także gry. To co? Do GTX’a 1080/ 1080 Ti brać i3 8350K, nie ilość tylko wydajność rdzenia? Raczej nie ;)

    • Gry się fajnie skalują i co do zasady nie powinny mieć problemów z wykorzystaniem wielu rdzeni. Jeśli składasz PCeta żeby zastępował konsolę do gier to wiele rdzeni nie przeszkadza.

    • Filip Skirtun

      Gry nie mogą się skalować dobrze, bo jest tam wiele powiązanych danych i powyżej pewnego progu nie rozplączesz powiązań między nimi. Cudem jest, że w ogóle cokolwiek można tam zrównoleglić.

  • Wojtek Sieradzan

    Szkoda gadać nad tym artykułem.
    Redaktorze- doucz się, a nie rób z siebie idiotę.

  • Cililing

    Drogi autorze, polecam dowiedzieć się dlaczego karty graficzne mają nawet 2k rdzeni, a CPU mają ich jednak trochę mniej. Może zrozumiesz pewną różnicę, kiedy można coś wykonywać wielowątkowo, a kiedy to po prostu nie ma racji bytu.
    A jeżeli ktoś oczekiwał, że wydajność kilku rdzeni liczy się wg wzoru n*[wydajność_rdzenia], to nie powinien w ogóle się wypowiadać na temat wielordzeniowości. Podobnie z Dual Channel, SLI/Crossfire ;)

  • Cililing

    + Zachęcam do masowego pisania do redakcji (grzegorz.marczak@antyweb.pl), aby autor felietonu napisal sprostowanie i przeprosil za szerzenie dezinformacji.

  • Michał

    Autor powinien głębiej zbadać temat, żeby zrozumieć tematykę rdzeni procesora. Większość tekstu to bzdura.

  • kba

    no dobra ale np podczas odpalania np illustratora, chroma, czy nawet excela mam przez chwile wszystkie 4 rdzenie na 100%

    • Nie wiem w sumie, ale teoretycznie odpalanie programu obciąża głównie dysk i pamięć (z jednego ładowane jest do drugiego) i to szybkość SSD jest tu wąskim gardłem a nie wydajność procesora. To od dysku zależy jak szybko się program odpali zasadniczo.

  • rimoraj

    Powinno być więcej tego typu tekstów zamiast gdybania o tym jak będzie wyglądał nowy iPhone czy gdzie będzie czytnik linii papilarnych w nowym Samsungu.

  • HVAC engineer

    Porównał bym to do kupna, zamiast sportowego gran turismo o mocy 600hp, 4szt hothatchow po 150hp – i tak będziemy jeździć tylko jednym.
    Niestety wmówiono nam, że 4hot hatche to to samo co jedbo BMW 650i…

    • Mariusz Jucha

      Bzdurne porównanie

    • HVAC engineer

      Jakieś lepsze, przychodzi Ci do głowy? Czy zostawisz tylko taki „bzdurny” komentarz?

    • Mariusz Jucha

      Napisałeś, że bedziemy jeździć jednym autem (rdzeniem) a to nieprawda, będziemy jeździć co najmniej jednym na raz (wszystkimi w najlepszym przypadku). To bzdurne bo nie da się jechać w 4 autach na raz. Bliższe prawdzie porównanie to mamy do przewiezeinia x towarów. Wybieramy albo auto zdolne rozwijać 400 km/h (jeden szybki rdzeń) albo 4 auta rozwijające 100 km/h. Nie wszystkie towary uda się rozdzielić na 4 auta, bo będą niepodzielnie. Sumarycznie pewnie jedno auto i tak szybciej przewiezie towary z powyższego powodu (w niektórych przypadkach z czterech aut, dwa pojadą puste bo towaru się nie udało podzielić na tak małe części) ale jednak łatwiej zbudować auto zdolne do rozwijania prędkości 100 km/h aniżeli zrobienie jednego, które wyciągnie 400 km/h. Pewnie nawet wyjdzie taniej. Co więcej takich małych aut możemy użyć 6, 8 czy 12, a auta poruszającego się z prędkością 800 km/h nie zrobimy bo nam technologia i stan naszej wiedzy nie pozwala, mimo że byłoby to lepsze rozwiązanie pod względem tylko wydajności (w tym przypadku wydajności przewożenia towarów).

      * dla uproszczenia musimy przyjąć, że szybsze auto ma zerowy czas powrotu po zawiezieniu ładunku w celu rozpoczęcia nowego kursu – przytoczona sytuacja nie jest w 100% analogiczna do schematu działania procesora

    • Lepiej bym tego nie ujął…

  • HVAC engineer

    Wydawać by się moglo, że płacąc za oprogramowanie roczna subskrypcje od jednego stanowiska za program Revit MEP około 7-8tys rocznie, dostaniemy wsparcie wielowątkowości… A skąd. Nawet najlepsze core i9 czy wielowątkowe xeony nie mają sensu bo liczy się wydajność góra 2-3 rdzeni, reszta śpi. Niestety giganci którzy odpowiadają za poważne i skomplikowane oprogramowanie branżowe rozwijane przez 10tki lat na zasadzie dopisywania funkcji nie jest w stanie przepisać wszystkiego na nowo w oparciu o założenia wielowątkowości. Wiem że firma Graphisoft (Archicad – program BIM dla architektów jeden z najstarszych i najlepszych na rynku) przepisuje kod programu od zera już kilka lat… A to nie jest kalkulator :) mogę sobie tylko wyobrażać jak duże są to koszty finansowe.

  • Mailosz

    Nie, to tak jakby kupić 4 samochody rozwijające w porywach 100km/h i oczekiwać, że pojadą 400km/h

  • Piotr Potulski

    Programy chcące użyć dużej mocy obliczeniowej do długotrwałych obliczeń powinny skalować ilość swoich wątków do ilości dostępnych fizycznych rdzeni. Intelowy HT to jedynie ograniczenie strat wynikających z przełączania się pomiędzy wątkami. Dlatego Winrar zajmuje 50% CPU – kwestia dziwnie zrobionego monitora. Gdyby dało się robić szybsze rdzenie, to by je robiono, tylko już jakieś 10 lat się nie da, więc rozwój idzie w ilość rdzeni. Wydajność pojedynczej aplikacji desktopowej wiele nie wzrośnie, ale już oprogramowanie serwerowe jest w stanie te dodatkowe rdzenie połknąć jak foka śledzia. Pytanie, czy użytkownik desktopa faktycznie tej mocy obliczeniowej potrzebuje.

  • Morski Morświn

    Linux obsłuży każdą ilość rdzeni i ramu… i to za darmo :)

  • stefan

    Wykorzystanie rdzeni zależy od systemu i aplikacji przecież. Stare aplikacje nie mają refaktorowanego kodu pod nowe ficzery OS, bo to się managierom nie opłaca.

    Natomiast mamy nowe frejmłorki programistyczne, ułatwiające korzystanie z współbieżności, jak C++ 14/threads czy Cocoa/GCD, i tam łatwiej napisać aplikację która wykorzysta wiele rdzeni.

    Testowanie na produktach Adobe to chyba najgorszy pomysł, bo tam wszystkie filtry opierają się na bazie kodu sprzed 20 lat.

  • Borsuk

    Jeżeli chodzi o photoshopa to wystarczy wyłączyć w opcjach „use graphics processor”. Zbyt wolne GPU kończy się niewykorzystaniem pełnej mocy CPU. Podobnie z innymi programami z Adobe.

  • Borsuk

    Jeżeli chodzi o Apple. Procesory appla to też architektura ARM, są to procesory podobne do tych stosowanych w Androidach. Jedyna różnica jest taka, że apple jest bardziej niskopoziomowy w stosunku do androida.

  • Borsuk

    I na koniec różnica między 1xCPU, a 10xCPU jest 400%, a nie 25%.

  • Borsuk

    Autor zapomina o tym, że CPU przetwarza znacznie szybciej informację niż pozwala na to pamięć i dysk twardy. Gdzieś zawsze pojawia się wąskie gardło i procesor po prostu czeka. W idealnym przypadku pamięć ram powinna być tak szybka jak cache. Tak niestety nie jest.

  • „Efekt jest taki, że w praktyce liczy się tylko wydajność jednego lub maksymalnie kilku rdzeni – cała reszta, na którą naciągnęli nas sprytni marketingowcy, będzie po prostu leżała odłogiem.”
    Autorze, co to za brednie?

    Intel i9, tak samo jak Ryzen 1800 i TR są ciągnikami (siodłowymi).
    Ciągnik ma tyle koni co Ford Mustang, a jedzie koło 130 km/h, z czego limiter nie pozwala więcej niż 90 km/h, a do tego potrafi ruszyć z 60 tonami z miejsca. I jaki z tego wniosek? Jeśli ktoś chce jeździć szybko po bułki, to nie kupuje ciągnika, tylko Mustanga.

    Nawiązując do bzdurnego podsumowania – czy samochodem posiadającym 250KM i prędkość maksymalną 290 km/h jeździ się cały czas z prędkością 290 km/h nonstop z gazem do podłogi? Nie. Wykorzystuje prędkość kiedy może, a moc kiedy potrzebuje. To nic, że zwykle 2 z 6 cylindrów nie pracują, to nic, że wykorzystuje 30% mocy. Ma zapas.

    Jedynie kto tu coś naciąga, to autor swoją niewiedzę do granic możliwości. Jak jest taki mądry, niech zapuści na niskonapięciowym 2-rdzeniowcu kopie zapasową, do tego w tle jakąś maszynę wirtualną i przy okazji film na YT wyrenderuje. W tle można sobie obejrzeć filmik 4K dla relaksu. W 2,35 fps oczywiście.

  • Erykk

    Przestańcie się ośmieszać i nie porywajcie na tematy o których nie macie pojęcia. Róbcie pseudotesty telefoników i przepisujcie newsiki z zachodnich sajtów. Na tyle jesteście zdolni.

    • Filip Skirtun

      Wyobraź sobie, co by to było, gdyby tego typu portal porwał się na deep dive w nowe architektury…

  • CirrusLogic

    Absolutnie nie narzekam na swoje 8R. Wrzucić film do staxripa i konwertować na GTXie do H265, pograć w międzyczasie. Przeglądarka nadal w tle w razie w. A cpu ma to gdzieś? Cudo. Stare, haswellowskie i5 nie pozwalało na coś takiego ;)

  • John Katharsis

    Test pokroju – Seicento jest lepsze od ferrari – bo w mieście i tak mogę 50 km/h maks. Poza tym Seicento mniej pali i łatwiej zaparkować. :D

  • U mnie, w Intelu i7-4790K, podczas konwertowania plików RAW na JPG w programie Canon DPP, wszystkie rdzenie pracują na 100%. A przynajmniej tak pokazuje Windowsowy monitor zasobów.

  • Daniel Poweska

    Dobry program nie powinien działać na 100%, bo proc wpadnie w trothling i tyle z wydajności. Poza tym patrz na to, że do topowych procesorów używa się topowych podzespołów, winrar może się krztusić na dysku, a wtedy i 100 rdzeni nic nie da

    • Filip Skirtun

      Throttling nie ma nic wspólnego ze zużyciem CPU, jedynie z temperaturą. WinRar lub dowolna aplikacja korzysta ze zoptymalizowanych procedur OS-u tak, żeby nim jeszcze dojdzie do kompresowania czegokolwiek mieć te dane pod ręką… Skąd wy się urwaliście?

    • Daniel Poweska

      Brawo, a co powoduje wzrost temperatury na procesorze? Kolor czcionki? :D
      Jak chcesz od razu kilka gb danych mieć pod ręką? Jak klikam rozpakuj to do rozpoczęcia program ma kilka sekund na przygotowanie danych. To nie zawsze musi działać

    • Filip Skirtun

      Jeśli zachodzi throttling, to ktoś spierdolił kwestię studzenia procesora, przecież to jest oczywista oczywistość i nie wiem jak możesz tego nie rozumieć. Throttling jest mechanizmem zapasowym! To, że obecnie choćby w smartfonach zachodzi on zbyt często, jest albo dowodem na zbyt małe wydatki na R&D i badania jak studzić tak cienkie sprzęty (wątpliwy powód), albo po prostu na to, że porywamy się na zbytnie cięcie rozmiarów. Odpowiednio zaprojektowany sprzęt NIE BĘDZIE wpadał w throttling, niezależnie od długości obciążenia.

      Fakt, ładowanie danych trwa i tego przeskoczyć się nie da, no ale to jest odwieczny problem architektury z wolną pamięcią masową.

    • Daniel Poweska

      Ciągła kilkunasto/dziesięcio minutowa praca na pełnych obrotach wymaga raczej bardzo dobrego chłodzenia, żeby procesor nie ograniczył zegarów

    • Filip Skirtun

      Jeśli nie mówimy o kręceniu zegarów i zestawach desktopowych, to w zasadzie chyba większość procesorów (wyjąwszy Intele z glutem, które bywają upośledzone w tym względzie) ma BOX-owe chłodzenie, które wystarcza do tego. Tak czy siak throttling jest dowodem na niechlujstwo projektowe, no.

    • Dlatego dobry radiator z wiatrakiem kosztuje powyżej stówy. W procesorze komputera stacjonarnego nie ma prawa wystąpić throttling.

  • Vincent Vega

    Jako zwykły użytkownik nie mogę się z tym zgodzić. Jako hobbysta bawię sie w Unity gdzie często mam odpaloną przeglądarkę, jakiś odtwarzacz multimedialny, blender, Photoshop itp. Gdzie samo Unity podczas obliczeń potrafi pochłonąć całą moc mojego 4 rdzeniowego i5, ciężko mi sobie wyobrazić pracę na jedno czy dwu rdzeniowym procku, nie mówiąc już o jakimkolwiek komforcie. Czasy się zmieniają i codzienne użytkowanie komputera to już nie tylko facebook i muzyka….

  • Brudka

    Mam wrażenie, że kolega sobie postawił tezę – by potem skierować tok myślenia tylko celem jej potwierdzenia. ;)
    Prawda jest taka, że to wszystko co jest wyżej napisane miało by sens – gdybyśmy nadal siedzieli na DOS-ie.

    A nie siedzimy, więc z założenia tok myślenia jest całkowicie błędny.

    Koledze sugeruję doczytać o kolejkowaniu procesów i wątków we współczesnych systemach operacyjnych. Dodatkowo doczytać, dowiedzieć się jak są współdzielone zasoby – szczególnie dla procesów rezydentnych.
    I wtedy zrobić drugi artykuł – o Tytule „Errata”. ;)

    Ps. Uprzedzę odpowiedzi – tak na razie rzadko wykorzystamy 16 rdzeni w Ryzenie przykładowo. Ale 4 rdzenie dzisiaj to norma dla systemu od Windows 7 w górę. I jeszcze taka dygresja – to, że ciągłe obciążenie procesora nie występuje w 100% – to jego zaleta, nie wada. ;)

    • Jarek Siedlak

      Dokładnie. Do tego niezrozumienie procesorów mobilnych gdzie bardziej opłaca się przydzielić kolejny słabszy rdzeń do zadania i go wyłączyć gdy nie jest potrzebny niż robić skomplikowane pojedyncze rdzenie mające wysokie zapotrzebowanie na energię w bazowym stanie. Apple jest tego najlepszym przykładem – mimo skrajnej optymalizacji jednak nie uzyskuje miażdżącej przewagi. Popatrzmy na konsole, które mimo znacznie słabszych parametrów dają dzięki optymalizacji radę ze znacznie mocniejszymi pc. Gdzie tu przewaga apple? Szczególnie jeśli chodzi o stosunek wydajność/zużycie energii?

    • Dobrze zrozumiałem? Zaletą jest to, że na render muszę czekać dwa razy dłużej bo programy za kupę kasy nie potrafią wykorzystać więcej niż jednego rdzenia? Dla Ciebie lepiej jest czekać na efekt pracy dwie godziny niż jedną? W takiej sytuacji nie mam więcej pytań.

    • Brudka

      A skąd kolego wygrzebałeś programy renderujące, które wykorzystują tylko jeden wątek? ;)
      Bo akurat w tym temacie dość mocno siedzę – i słownie żaden program w dzisiejszej dobie nie korzysta z jednego wątku (rdzenia) procesora. Zarówno Maya, 3D Studio, Blender i wszelkie ich silniki (Cycles, Octane, POV Ray, itd.) wykorzystują dosłownie wszystko co siedzi „pod maską”.

      Po drugie nawet gdybyś znalazł taki archetyp – to jeden program nie jest wyrocznią w wyznaczaniu kierunku rozwoju jednostek obliczeniowych.

      Po trzecie zakup danej jednostki – szczególnie wielordzeniowej winien być przeanalizowany właśnie pod kątem jej użycia. Gdzie wiadomo, że tylko do rozrywki nikt nie zakupi 16 rdzeniowego Ryzena czy Threadrippera.

      Zaletą wielordzeniowej jednostki fakt, że możesz ją dociążyć w sposób równoległy co znacząco skróci czas obliczeń – niezależnie jakie by były. Możesz również równolegle uruchomić kilka procesów obliczeniowych i analogicznie zmniejszyć czas na uzyskanie z nich wyników.

      Myślę, że właśnie – bez złośliwości – masz problem w zrozumieniu po co jest wielowątkowość.
      Usilnie stawiasz sobie tezę (nie wiem, może jakiś ulubiony Twój program, który Cię nagle rozczarował jednowątkowością), którą bronisz nie słuchając żadnych argumentów.

      Analogicznie do Twoich założeń moglibyśmy pozostać przy architekturze 386 – bo w końcu po co nam rozkazy SSE, MMX, czy rejestry i operacje AES.

      Technologia ma to do siebie, że z natury się nie uwstecznia – a przynajmniej nie ma tego w planach.
      Tak więc – złożoność kodu wzrośnie, kierunek obliczeń pójdzie ku zrównolegleniu, a architektura ku wielordzeniowości.

      Stanie się tak ponieważ:
      – jest to naturalna droga do zwiększenia wydajności obliczeniowej,
      – już dzisiaj jest problem z kolejnymi litografiami, niestety krzem i jego struktura ma ograniczenia – a następcy za zakrętem nadal nie widać,
      – fizyka jest nieugięta i by zaistniał tranzystor wymagana jest pewna skończona ilość atomów, jesteśmy coraz bliżej tej granicy – więc za chwilę pozostanie jako rozwój tylko zwielokrotnienie struktur, bo miniaturyzacja dojdzie do ściany technologicznej,

      Musisz się z tym pogodzić – niestety.
      Albo pozostać w tematyce Retro. ;)

    • TL&DR
      „A skąd kolego wygrzebałeś programy renderujące, które wykorzystują tylko jeden wątek? ” masz jak byk opis i screen w artykule na temat renderingu w AutoCadzie. Może najpierw przeczytaj to co zamierzasz skomentować zanim wysmażysz taki elaborat.

    • Brudka

      To jak już ripostujesz to powinieneś wiedzieć, że Autocad nie renderuje sam z siebie – ale silnik w nim zawarty. ;)
      Zmień silnik renderujący (doinstaluj inny) i Twój problem przestanie istnieć. ;)

      Btw. Tak czytałem, ale z tego co wypisujesz to tylko świadczy, że nie bardzo poruszasz się w tematach, które opisujesz. Zapewne programy sobie dobrałeś do testów w postaci „takie jakie są”, a niestety to zła droga. ;)

  • Wojciech Lewenstam Jr.

    Moje najcięższe obliczeniowo zadania (decymacja siatek po kilka milionów poly), duszą mi Ryzen 5 1600. Dlaczego? Bo Meshmixer wykorzystuje tylko jeden rdzeń. Podobnie 3D Builder.

  • ssf

    wystarczy podac przyklad firefoxa i caly art. do kosza.
    przegladarka zuzywa wszystkie procesory i juz.

    na razie brakuje nam procesorow asynchronicznych i to powinnismy

    • Jaka jest korzyść z tego, że przeglądarka wykorzystuje więcej niż jeden rdzeń? Przecież użytkownikowi nie robi to żadnego znaczenia, czy zadaniami nie wymagającymi żadnej znaczącej mocy oblivczeniowej zajmie się jeden czy więcej rdzeni. Ogromną różnicę robią natomiast ciężkie zadania – czekanie na render 2 godziny zamiast jednej cholernie komplikuje i utrudnia pracę. To ma bezpośrednie przełożenie na moją efektywność i kasę jaką zarabiam na godzinę.

  • Mariusz Jucha

    Na miejscu tego autora zdjął bym ten artykuł i przestał się pogrążać jeszcze bardziej w komentarzach.

  • jam ci

    Procka można wykorzystać w 100% pakując, konwertując, a co najczęstsze: korzystając z korporacyjnych kombajnów, używając komputera bez odpowiedniej konfiguracji, jak i doboru oprogramowania, kodeków etc…
    Blisko 100% użytkowników pakuje do kompa „jak leci” i to co „polecane” – mało kto słyszał o często darmowych, lekkich i o niebo lepszych programach do edycji multimediów, przeglądarkach internetowych, odtwarzaczach wideo, audio, etc… mało kto ma pojęcie jak skonfigurować kodeki, jakie usługi powyłączać w systemie, czy w harmonogramie… większość ma odpalonego antywira… mimo, że nie ma takiej potrzeby gdy się ma mózg /przy jednoczesnym braku jakichkolwiek zabezpieczeń przed włamem…/
    Można by długo… 30 lat temu były takie komputery, że trzeba się było zdrowo nagimnastykować, by wszystko co potrzebne chodziło jak należy: dziś user robi z kompa śmietnik i ma to niewielkie znaczenie ile ma rdzeni, bo i tak maszyna zabagniona…
    Pospolity user ma tyle oprogramowania począwszy od sterowników, poprzez system i wszelkie automaty latające w tle by się aktualizować / szpiegować / monitorować i podglądać… że i 16 rdzeni ma co robić…
    Te rdzenie nie są bezczynne: jest wiele sensownego oprogramowania, które potrafi z nich korzystać… poza tym tyle maszyn przejętych według statystyk, że zazwyczaj ktoś na nich kopie… gdy spicie :)
    autor: skonfiguruj sobie paker to ci połknie nie tylko cpu, ale i ram…

  • Hikari

    Sorry autorze, ale nie zgadzam się z podsumowaniem. Nawet jeśli aplikacje nie używają wielu rdzeni to kilka maszyn wirtualnych i vs działa równocześnie i po to jest większa liczba rdzeni, by robić więcej naraz. Gry to inny temat bo są bardziej zoptymalizowane pod konsole.
    I pomyśleć że kiedyś procek latał na 200% pasek użycia był czerwony a ekran był jak pokaż slajdów teraz masz te 50% przy kodowaniu video i w tle chrome i film full HD. Heh
    Tak technicznie to nie każdy problem da się rozbić na mniejszy i wtedy fakt nic to nie daje ale to raczej nie wpływa tak bardzo na pc dla domu, bardziej dla biznesu gdzie takie opóźnienia to czas a czas to pieniądz.
    Może warto by poprawić ten wpis i by osoba co się tym zajmuje podzieliła się wiedzą.
    To tak samo jak z ramem czemu tyle go zajmuje, a po co jest ram, teraz jak się pisze programy to raczej nie robi się aż takiej optymalizacji pod kątem pamięci., bo po co, jak jest jej dużo.

  • Póki co moje 4 rdzenie dają radę ze wszystkim. Wykręcone do 4.5GHz

  • Piotr

    Kilka faktów:
    1. Dwa rdzenie taktowane o połowę wolniej pobiorą mniej energii niż jeden szybki rdzeń o równoważnej wydajności. Wynika to z tego, że te wszystkie turboboosty zwiększające traktowanie wymagają podania odpowiednio wyższego napięcia dla zachowania stabilności, a pobór prądu jest proporcjonalny do kwadratu częstotliwości taktowania.

    2. HT nie daje więcej rdzeni. System widzi 2x więcej rdzeni, ale wydajność nie rośnie przez to dwukrotnie, bo fizycznie rdzeni jest tyle samo co bez HT. Wydajność rośnie głównie w słabo zoptymalizowanych programach, w których jeden wątek nie potrafi wykorzystywać dobrze rdzenia i np. czeka na pamięć.

    3. Większość programistów nie ma zielonego pojęcia o pisaniu wydajnego kodu, zarówno jedno jak i wielowątkowego. Dotyczy to też programistów C i C++, którzy myślą, że piszą w „szybkim języku” a kompilator zoptymalizuje wszystko za nich.

    4. Pojedyncze rdzenie nie będą już dużo szybsze niż teraz. Z generacji na generację mamy raptem kilka % przyrostu wydajności co roku. Tempo wzrostu mocno wyhamowalo. Procesory w 10nm są opóźnione względem planu. Czy tego chcecie czy nie, jeśli nie nastąpi jakiś przełom w fizyce, zwiększanie liczby rdzeni jest jedyną drogą dalszego zwiększania wydajności. Być może pociągnie to zmiany w architekturze dostępu do pamięci w kierunku podobnym do tego co jest stosowane od dawna w GPU – niejednorodny dostęp i brak współdzielenia pamięci. Wspólna pamięć jest podstawowym wąskim gardłem, które powoduje, że wydajność nie rośnie proporcjonalnie do liczby rdzeni. Programiści będą musieli się dostosować i nauczyć.

    5. Serwery mające po 48 rdzeni i więcej to już norma. Tam jakoś jest sens. Wcześniej czy później trafia te rdzenie do PC a potem do laptopów.

  • bqa82

    Jeśli sze

  • Tomasz Miroszkin

    Dokładnie, dodam jeszcze że oprogramowanie takie jak Corel Draw … na wielordzeniowych procesorach działa WOLNIEJ niż na pojedynczym rdzeniu (sic!). Dotyczy to zarówno Draw jak i Photopaint. Poważnie rozważam powrót do mocno przetaktowanego jednordzeniowca + windows 98SE jako stacji roboczej, odpaliłem ostatnio na takim sprzęcie Corel Draw 9.0 … prędkość była niesamowita, wszystko działało idealnie płynnie. W Windows 7 mimo optymalizacji, wycięciu wszystkich usług jakie się dało wyciąć, odinstalowaniu antywirusa, optymalizacji rejestru, wymianie dysku na SSD… nadal jest WOLNO JAK ŚLIMAK. Oczywiście sporo użytkowników tego nie zauważy .. bo sami się ślimaczą przy robocie. Gdy ktoś naprawdę szybko pracuje na komputerze to widzi tan sukcesywny spadek prędkości z każdym kolejnym systemem i procesorami :(

  • C is love FPGA is life

    O/S zarządza wątkami samodzielnie, jeśli masz 16 rdzeni wolnych a program ma 16 wątków włącznie z głównym, O/S zajmie ci te 16 rdzeni. Jeśli ktoś ma tylko 8 wolnych, O/S przydzieli ci 2 wątki na rdzeń, etc. Więc to nie jest tak, jak ci się wydaje. Oczywiście zarządzanie zlepkiem procesorów jest ciężkie, stąd ten spadek :)