Dual Core e HyperThreading: un possibile bug

Dual Core e HyperThreading: un possibile bug

Alcune analisi con processori Xeon DP hanno evidenziato un possibile problema del sistema operativo Windows XP, nella gestione di sistemi biprocessore con tecnologia HyperThreading attivata

di pubblicata il , alle 14:17 nel canale Processori
WindowsMicrosoft
 
61 Commenti
Gli autori dei commenti, e non la redazione, sono responsabili dei contenuti da loro inseriti - info
DioBrando10 Marzo 2005, 02:30 #41
Originariamente inviato da leoneazzurro
Un bel Service pack 3 (Intel Edition) e tutto torna a posto


in questo caso Ecstrim Ediscion allora

street10 Marzo 2005, 09:25 #42
Non riesco a capire una cosa.

Se dal punto di vista di una dual-cpu con ht posso capire che non si possa a livello hw decidere l' ordine delle cpu (fisiche e logiche), da un punto di vista dual-core, quindi dove l' assegnazione é fissa, non sarebbe più semplice organizzare la cosa via hardware, dentro la cpu stessa, fare cioé cpu1-cpu2-cpu1ht-cpu2ht ?
cionci10 Marzo 2005, 09:40 #43
L'assegnazione di un thread ad un certa CPU lo decide sempre e solo lo scheduler...
street10 Marzo 2005, 10:05 #44
Si, questo l' avevo capito (scusatemi se son duro di comprendonio) quel che non capisco é la logica che ha lo scheduler, cioé da dove prende l' ordine delle cpu.

Attualmente se ho capito é come se venissero assegnati come ordine questi: (ammettendo anche cpu=core)

1 - cpu1ht1
2 - cpu1ht2
3 - cpu2ht1
4 - cpu2ht2

Se invece proprio a livello hw avessimo

1 - cpu1ht1
2 - cpu2ht1
3 - cpu1ht2
4 - cpu2ht2

sarebbe risolto il problema. Quel che voglio dire, é che a livello di controller (immagino, sono digiuno di molti concetti) della cpu venga assegnato quell' ordine, che poi viene utilizzato dallo scheduler per smistare i thread.
Superboy10 Marzo 2005, 10:33 #45

problema

Secondo me in questo modo il problema nn può essere risolto, come ho scritto nel post precedente! Quando si danno in pasto ad un p4 con ht attivato 2 thread, questi nn vengono eseguiti in realtà contemporaneamente, bensì tramite tecniche di register renaming si passa dall'esecuzione di uno a quella dell'altro ogni qual volta vi sia da attendere un qualche tipo di fault da una memoria o altri conflitti. Quindi se vengono assegnati due grossi thread di calcolo al un singolo core le prestazioni saranno scarse in confronto all'esecuzione su core diversi... questo indipendentemente dall'"ordine" delle cpu dentro lo scheduler, semplicemente egli nn sa cosa il thread debba eseguire (come è giusto che sia, altrimenti si porterebbe l'ht a livello di codice cosa non bella)
cionci10 Marzo 2005, 10:47 #46

Re: problema

Originariamente inviato da Superboy
questo indipendentemente dall'"ordine" delle cpu dentro lo scheduler, semplicemente egli nn sa cosa il thread debba eseguire (come è giusto che sia, altrimenti si porterebbe l'ht a livello di codice cosa non bella)

E' chiaro questo...ma già assegnare le CPU in ordine diverso potrebbe aiutare... Comunque l'HT a livello di codice già esiste...vedi le SSE3...
Superboy10 Marzo 2005, 12:02 #47

x cionci

Secondo me è inutile assegnare le cpu in ordine diverso
per i motivi scritti prima: non c'è determinismo nell'assegnamento di un thread ad una unità di esecuzione più performante o meno!
Nelle SSE3 ci sono 2 istruzioni per la gestione dei thread Monitor e MWAIT: servono solo per ottimizzare consumi e prestazioni nei casi in cui un thread si deve sospendere in attesa di un qualsiasi evento (es spin-wait) non sono indispensabili
max8410 Marzo 2005, 12:38 #48
ora non ho modo di controllare i reply e di informarmi perchè starò offline per alcuni giorni.
comunque ringrazio coloro che mi hanno (forse) risposto
ci si sente prossimamente e statemi bene
Superboy10 Marzo 2005, 12:50 #49

x MaxArt

Qualche errore macroscopico:
La prima cpu pipelined x86 è stata il 386 (pipe di 4 stage).
Il concetto di cpu superscalare invece è tutt'altra cosa: esistono all'interno dello stesso core più path di esecuzione delle istruzioni, quindi più pipeline lavorano affiancate. La prima cpu x86 superscalare è stata il Pentium, con un parallelismo pari a due (anche se il secondo path nn è in grado di eseguire il set completo di istruzioni)
midian10 Marzo 2005, 12:53 #50
non vorrei sbagliarmi ma quindi il P4 con 4 cpu logiche non potra essere sfruttato a pieno con widnows xp perche è stato progettato solo per 2 cpu al massimo?
se è cosi non rispondo.
e sull' uso di queste cpu su linux si sa qualcosa?

Devi effettuare il login per poter commentare
Se non sei ancora registrato, puoi farlo attraverso questo form.
Se sei già registrato e loggato nel sito, puoi inserire il tuo commento.
Si tenga presente quanto letto nel regolamento, nel rispetto del "quieto vivere".

La discussione è consultabile anche qui, sul forum.
 
^