Liczba Procesorów

Moc Obliczeniowa czyli liczba procesorów

To jedno z częściej pojawiających się zagadnień IT.
W różnym kontekście pojawia się ono zarówno w przypadku zastosowań domowych, biurowych, jak również serwerów w dużych rozwiązaniach informatycznych.
Intuicyjnie wiemy, że im więcej procesorów (CPU) tym szybciej działa komputer 🙂.
Co dla użytkownika oznacza, że może więcej przetwarzać lub szybciej uzyskać wynik 😛.

Procesory można z grubsza podzielić na uniwersalne i specjalizowane zwane również pomocniczymi.
Ta druga grupa jest bardzo różnorodna ze względu na wielość zadań, które mogą wykonywać.
W komputerach stosowanych w biznesie i w domu główną jednostką obliczeniową są procesory uniwersalne i to je opiszę dokładniej.

Procesor, rdzeń, potok

Procesor, rdzeń (procesor logiczny, często zwany wirtualnym), potok(wątek, po angielsku Thread) to słowa opisujące jednostkę obliczeniową czyli CPU.
Są również inne parametry mające wpływ na szybkość obliczeń/przetwarzania najczęściej zwracamy uwagę na szybkość taktowania.
Kolejnym istotnym parametrem jest wielkości pamięci podręcznej 1, 2 i 3 poziomu.

Bez wnikania w szczegóły ponieważ dla różnych modeli i producentów mogą się różnić.
Krótko jak należny rozumieć poszczególne pojęcia i jakie mają dla nas jako użytkowników znaczenie:

Procesor Fizyczny

Procesor fizyczny jak sama nazwa wskazuje jest elementem fizycznym.
Konkretna płyta główna może mieć wiele gniazd na procesory, oczywiście przynajmniej jedno 🙂.
W przypadku komputerów z wieloma gniazdami można zdecydować ile z nich ma być obsadzone lub włączone (wiele modeli ma możliwość wy-konfigurowania/wyłączenia procesora).
Natychmiast rodzi się pytanie:
Po co mieć komputer w którym zmniejszamy moc obliczeniową?
Odpowiedź jest prosta:
Licencje, których wolumen bardzo często jest liczony jako mnożnik liczby rdzeni – czyli kasa 🙁.
Przecież temat przewodni bloga to PLN`y w IT, więc uznałem że należny to zagadnienie zasygnalizować 😛.

Procesor logiczny

Procesor logiczny/rdzeń fizyczny/core – to taki procesor w procesorze, realizujący obliczania.
W starych procesorach nie było rdzeni.
Problem odprowadzania ciepła przy zwiększaniu taktowania zegara spowodował, iż obecne producenci procesorów zwiększają moc tworząc jednostki, które mają kilka rdzeni pracując równolegle.

To liczba rdzeni jest głównym miernikiem mocy obliczeniowej, dlatego wiele licencji jest liczona właśnie od tej liczby – a co za tym idzie koszty są od niej uzależnione.

System Operacyjny działający na komputerze/serwerze traktuje wszystkie rdzenie z wszystkich procesorów jak wspólną pulę i uruchamia poszczególne procesy (programy) starając się balansować obciążeniem.
Istnieją zaawansowane rozwiązania które pozwalają zarządzać przypisaniem rdzeni – taka śruba mikrometryczna, ale te rozważania pominiemy na tym etapie 😛.

Oczywiście dotyczy to również konsolidacji CPU o której napisałem wcześniej, zapotrzebowanie na CPU oznacza zapotrzebowanie na rdzenie.

Wątki czyli Multithreading

W dużym uproszczeniu nowoczesne rozwiązania (model procesora + system operacyjny) na jednym rdzeniu potrafią uruchamiać więcej niż jeden wątek. Aby to zrozumieć wyobraźmy sobie typowe działanie procesu:

  • pracujący proces musi poczekać na dane, z pamięci, dysku lub sieci …
  • w jednowątkowych procesorach rdzeń nic nie robi – czeka 🙁
  • w dwu-wątkowych w tym czasie rdzeń może pracować na rzecz innego procesu – nie nudzi się 😀
  • w wielowątkowych takie przełączanie jest wielopoziomowe

Oczywiście system operacyjny musi umieć zarządzać przełączeniami w sposób efektywny, a to nie jest proste. Twórcy OS radzą sobie z tym coraz lepiej.

Aplikacja powinna również w sposób świadomy wykorzystywać te możliwości, a z tym nie jest dobrze.
Niewielu programistów ma świadomość korzyści i ograniczeń wynikających z użycia tej technologii.
Oczywiście z czasem będzie się to poprawiać, ponieważ wiele mechanizmów wspierających zostanie wkodowane w środowiska tworzenia rozwiązań i będzie działało z automatu 🙂.

Podsumowanie

Pytanie z tytułu wpisu o liczbę procesorów w rzeczywistości jest pytaniem o liczbę rdzeni (core).
Obecnie liczba fizycznych procesorów najczęściej określana jest mianem liczy podstawek (sockets) lub liczby gniazd w które możemy włożyć procesor fizyczny.

Aktualnie liczba rdzeni jest miernikiem mocy obliczeniowej.
Świadczą o tym metody licencjonowania uzależnione od mocy obliczeniowej oraz cenniki rozwiązań hostingowych i chmurowych (cloud`owych).

Jeżeli ktoś chciałby skorzystać z przeliczników licencyjnych dla różnych procesorów tzw. core factor jako przelicznika wydajności to bardzo to odradzam 👿.

Licencjodawcy ustalając obligatoryjnie wartość tego przelicznika promują określone rozwiązania.
To tylko Biznes: z jednymi jest po drodze a z innymi nie.

Na zakończenie jeszcze jedna uwaga:

Dostawcy sprzętu z nowymi CPU często chwalą się wzrostem wydajność, co jest prawdą dla uśrednionej aplikacji/testu porównawczego.
Rzeczywisty wzrost wydajność, dla konkretnego rozwiązania może być różny.
Szczególnie jeżeli rozwiązanie jest stare: wymaga starego OS, programy były przygotowane pod stare procesory …
Do tego stopnia, że przy „zmianie sprzętu (CPU) na szybszy” nie uzyskamy praktycznie żadnego wzrostu wydajności, tylko pojedyncze procenty.
Nie powinno to być zaskoczeniem jeżeli używany rozwiązań bardzo starych 🙁.


Komentarze |0|

Legenda *) Pola oznaczone gwiazdką są wymagane
**) Możesz używać tych znaczników i atrybutów HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>
Kategorie: IT w PLN | Koszty IT
Etykiety: , ,