Lista winnt@man.lodz.pl
[Lista archiwów] [Inne Listy]

Re: [WINNT] Rozpoznawanie procesorów logicznych w menadżerze zadań

To: winnt@man.lodz.pl
Subject: Re: [WINNT] Rozpoznawanie procesorów logicznych w menadżerze zadań
From: peter <ToJestTo@nic.nie.wiem>
Date: Thu, 27 Oct 2016 23:06:30 +0200
robot pisze:

Jak w windowsie 8.1, w menadżerze zadań, w zakładce "wydajność", rozróżnić 
wirtualne procesory
logiczne od rzeczywistych? Pisząc wirtualne mam na myśli te powstałe w wyniku 
hyper-thredingu intela.

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.

Nie raz zastanawiałem się który rdzeń jest wykorzystywany przez taki program.

Program nie ma to nic do powiedzenia. To system operacyjny ( czyli W8.1) decyduje, że program jest realizowany naprzemiennie na wszystkich rdzeniach mimo ,że program jest linearny. Tylko w specjalne zlecenia zmuszą system by program działał na 1 rdzeniu.

Czy zwykły, czy taki wirtualny. W tym drugim przypadku zachodzą oczywiście 
podejrzenia,
że program będzie działał wolniej.

Hyper-threding robi z 1 rdzenia fizycznego dwa kanały obliczeniowe, i jeżeli koniecznie chcesz je nazwać wirtualnymi to obydwa są wirtualne. Obydwa działają jednakowo szybko. Jednak jak SO przy dużym obciążeniu prowadzi obliczenia na obydwu wątkach to szybkość nie jest 2 razy większa tylko nieco lub więcej mniej ( i to zależy co aktualnie jest przetwarzane)

Pracuję na komputerze który ma 24 rdzenie i drugie tyle wirtualnych w programie

hm. Nie sądzę, że pracujesz na 24 rdzeniowym Intel Xeon E7 v4 za 7000$, wiec zapewne jest to serwer wieloprocesorowy. Możesz przybliżyć co to za maszyna i jakiego typu jest to program

w programie który wykorzystuje jeden z dostępnych 48 rdzeni. Gdy obciąża ten 
jeden rdzeń na 100%
nie da się robić nic innego w tym czasie bo cały system jest zatkany.

NIE. 1 program nie może zatkać 48-wątkowy komputer. Nawet na zwyczajnych procesorach 4-rdzeniowych możesz równolegle pracować z kilkunastoma aplikacjami równocześnie. To SO podzieli czas procesowa dla wszystkich aplikacji w zależności od priorytetu danego programu.
Jeżeli prawdą jest to co piszesz to twój program pracuje na wszystkich 48 
wątkach na najwyższym priorytecie.

Czy nie dałoby się zrobić chociaż tak, żeby program pracował na tym jednym 
rdzeniu
a inne programy na innych rdzeniach?

W świetle tego co napisałem wyżej to zupełny bezsens. Naprzemienna praca wszystkich rdzeni ma uzasadniony sens. W czasie obliczeń wydziela się ciepło. Naprzemienne obliczenia prowadzą do równego nagrzewania procesora. A ty chciałbyś jeden rdzeń mocno nagrzać a inne obok byłyby zimne. Tego procesory nie lubią ;)

PS. przeczytałem kolejny post w którym piszesz
 "Ale może to być jeszcze coś związanego z kartą graficzną".

Jeżeli masz bardzo aktywną grafikę na ekranie ( np filmy 4K) i zwykłą kartę graficzną ( co przy 24 rdzeniach i 64 GB RAM jest absurdem) to karta graficzna może opóźnić działanie programu, ale nie blokować pracy innych aplikacji!

--
 Peter


<Pop. w Wątku] Aktualny Wątek [Nast. w Wątku>