Core i7 e scheduler
Moderatore: Staff
Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
- Ansa89
- Iper Master

- Messaggi: 2703
- Iscritto il: mer 29 ago 2007, 17:57
- Nome Cognome: Stefano Ansaloni
- Slackware: 14.2 64bit
- Kernel: 4.9.61
- Desktop: XFCE 4.12
- Località: Modena
Core i7 e scheduler
Con i nuovi processori i7 è stato reintrodotto il hyper-threading, quindi mi sorge un dubbio: (se mai avrò uno di questi processori) quale cpu-scheduler è meglio compilare all'interno del kernel?
Quello per il multithreading o quello per architetture smp?
Quello per il multithreading o quello per architetture smp?
Ultima modifica di Ansa89 il dom 25 apr 2010, 12:22, modificato 1 volta in totale.
-
ocman
- Linux 2.x

- Messaggi: 239
- Iscritto il: gio 31 lug 2008, 18:18
- Slackware: ArchLinux
- Desktop: xfce
- Distribuzione: OpenIndiana
Re: Core i7 e scheduler
Ciao
- credo intendessi hyper-threading
http://www.intel.com/technology/platfor ... /index.htm
- come avveniva per l'hyperthreading sui vecchi Pentium, il kernel dovrebbe rilevare 2 cpu LOGICHE per ogni core. Quindi a livello di scheduler fai la stessa scelta che faresti per un normale SMP
- non c'è ancora molta documentazione ufficiale, forse per essere certi della migliore configurazione conviene fare dei test http://kernel-perf.sourceforge.net/about_tests.php
- credo intendessi hyper-threading
http://www.intel.com/technology/platfor ... /index.htm
- come avveniva per l'hyperthreading sui vecchi Pentium, il kernel dovrebbe rilevare 2 cpu LOGICHE per ogni core. Quindi a livello di scheduler fai la stessa scelta che faresti per un normale SMP
- non c'è ancora molta documentazione ufficiale, forse per essere certi della migliore configurazione conviene fare dei test http://kernel-perf.sourceforge.net/about_tests.php
Ultima modifica di ocman il dom 25 apr 2010, 12:43, modificato 1 volta in totale.
- Ansa89
- Iper Master

- Messaggi: 2703
- Iscritto il: mer 29 ago 2007, 17:57
- Nome Cognome: Stefano Ansaloni
- Slackware: 14.2 64bit
- Kernel: 4.9.61
- Desktop: XFCE 4.12
- Località: Modena
Re: Core i7 e scheduler
Oddio! Avevo scritto una super cavolataocman ha scritto:credo intendessi hyper-threading
Sul fatto che rileva due cpu logiche sono d'accordo, ma non credo che gli sviluppatori del kernel si divertano a creare scheduler differenti se alla fine vengono implementati in modo uguale.ocman ha scritto:come avveniva per l'hyperthreading sui vecchi Pentium, il kernel dovrebbe rilevare 2 cpu LOGICHE per ogni core. Quindi a livello di scheduler fai la stessa scelta che faresti per un normale SMP
Nel kernel c'è chiaramente scritto che lo scheduler per il threading non è consigliato su architetture smp e viceversa.
-
ocman
- Linux 2.x

- Messaggi: 239
- Iscritto il: gio 31 lug 2008, 18:18
- Slackware: ArchLinux
- Desktop: xfce
- Distribuzione: OpenIndiana
Re: Core i7 e scheduler
Forse continui a confondere incosciamente la tecnologia intel con la normale politica di schedulazione dei thread.Ansa89 ha scritto:Nel kernel c'è chiaramente scritto che lo scheduler per il threading non è consigliato su architetture smp e viceversa.
Intel offre una tecnologia pressochè trasparente alla gestione a livello OS dei thread.
Lo "scheduler per il threading" può benissimo funzionare in sistemi a singolo processore. Il kernel in questo ultimo caso sarà ottimizzato per ordinare nella coda i vari thread creati dai processi in esecuzione indipendentemente che sotto di esso ci siano uno o più cores. Nel caso ci siano ciù cores si hanno comportamenti molto simili al multiprocessing per questo l'utilizzo ne viene scongliato.
http://codex.cs.yale.edu/avi/os-book/OS ... ir/ch5.pdf
- Ansa89
- Iper Master

- Messaggi: 2703
- Iscritto il: mer 29 ago 2007, 17:57
- Nome Cognome: Stefano Ansaloni
- Slackware: 14.2 64bit
- Kernel: 4.9.61
- Desktop: XFCE 4.12
- Località: Modena
Re: Core i7 e scheduler
Vediamo se ho capito: in pratica intel gestisce a livello hw i thread, in questo modo il sistema operativo può non conoscere nulla sui thread e schedulare normalmente i processi, giusto?
In questo caso la risposta alla mia domanda è immediata (scheduler per smp).
In questo caso la risposta alla mia domanda è immediata (scheduler per smp).
-
ocman
- Linux 2.x

- Messaggi: 239
- Iscritto il: gio 31 lug 2008, 18:18
- Slackware: ArchLinux
- Desktop: xfce
- Distribuzione: OpenIndiana
Re: Core i7 e scheduler
a quanto pare si:
http://software.intel.com/en-us/article ... ith-linux/
"A processor which does hyperthreading looks like two independent CPUs, but it [processes] should not be scheduled [by the scheduler] as such - it is better to divide process across real (hardware) processors first."
http://software.intel.com/en-us/article ... ith-linux/
"A processor which does hyperthreading looks like two independent CPUs, but it [processes] should not be scheduled [by the scheduler] as such - it is better to divide process across real (hardware) processors first."
- Ansa89
- Iper Master

- Messaggi: 2703
- Iscritto il: mer 29 ago 2007, 17:57
- Nome Cognome: Stefano Ansaloni
- Slackware: 14.2 64bit
- Kernel: 4.9.61
- Desktop: XFCE 4.12
- Località: Modena
Re: Core i7 e scheduler
Ok, allora mi viene un altro dubbio: siamo sicuri che il kernel capisca che la seconda cpu è logica (non fisica) e di conseguenza non scheduli processi su quest'ultima?
PS: comunque nel kernel c'è sia lo scheduler smp, sia smt; quindi credo che la mia domanda iniziale sia ancora valida, o continuo a non aver capito?
Questo è quello che ho capito.
PS: comunque nel kernel c'è sia lo scheduler smp, sia smt; quindi credo che la mia domanda iniziale sia ancora valida, o continuo a non aver capito?
In pratica con lo scheduler smt informi il kernel che le cpu che vede sono logiche e può schedulare più thread di uno stesso processo su ognuna di esse.Intel ha scritto:Hyper-Threading, also referred to as simultaneous multithreading (SMT), allows different threads to run simultaneously on different execution units within one physical processor.
Questo è quello che ho capito.
-
ocman
- Linux 2.x

- Messaggi: 239
- Iscritto il: gio 31 lug 2008, 18:18
- Slackware: ArchLinux
- Desktop: xfce
- Distribuzione: OpenIndiana
Re: Core i7 e scheduler
esatto.
La cosa da parte di kernel.org per i core i7 non è molto documentata, è per quello che se avessi un core i7 farei un semplice test per mettere la cpu sotto stress.
Infatti qui vengono citate le cpu che beneficiano del SMT ma manca ancora la nuova architettura nehalem.
http://cateee.net/lkddb/web-lkddb/SCHED_SMT.html
Non andrei ad occhi chiusi sulla SMT poichè ci sono controlli aggiuntivi che a volte introducono overhead e basta
http://www.ibm.com/developerworks/linux ... /l-htl/#h1 <<< qui spiega qualcosina anche se il test è stato fatto sui vecchi pentium
La cosa da parte di kernel.org per i core i7 non è molto documentata, è per quello che se avessi un core i7 farei un semplice test per mettere la cpu sotto stress.
Infatti qui vengono citate le cpu che beneficiano del SMT ma manca ancora la nuova architettura nehalem.
http://cateee.net/lkddb/web-lkddb/SCHED_SMT.html
Non andrei ad occhi chiusi sulla SMT poichè ci sono controlli aggiuntivi che a volte introducono overhead e basta
http://www.ibm.com/developerworks/linux ... /l-htl/#h1 <<< qui spiega qualcosina anche se il test è stato fatto sui vecchi pentium
- Ansa89
- Iper Master

- Messaggi: 2703
- Iscritto il: mer 29 ago 2007, 17:57
- Nome Cognome: Stefano Ansaloni
- Slackware: 14.2 64bit
- Kernel: 4.9.61
- Desktop: XFCE 4.12
- Località: Modena
Re: Core i7 e scheduler
Da notare il fatto che CONFIG_SCHED_SMT dipende sempre da CONFIG_SMP, il ché lascerebbe pensare che il kernel vede in ogni caso le cpu logiche come cpu fisiche
.
Più vado avanti, più mi pento della domanda iniziale
.
Più vado avanti, più mi pento della domanda iniziale
-
ocman
- Linux 2.x

- Messaggi: 239
- Iscritto il: gio 31 lug 2008, 18:18
- Slackware: ArchLinux
- Desktop: xfce
- Distribuzione: OpenIndiana
Re: Core i7 e scheduler
Si, magari con SMT le decisioni dello scheduler sono più efficaci su cpu con hyperthreading anche se le cpu vengono viste sempre come fisicamente separate (siccome dipende da SMP)
Pat nella configurazione della slackware64-current penso l'abbia abilitato per ovvii motivi di compatibilità.
Pat nella configurazione della slackware64-current penso l'abbia abilitato per ovvii motivi di compatibilità.
-
ocman
- Linux 2.x

- Messaggi: 239
- Iscritto il: gio 31 lug 2008, 18:18
- Slackware: ArchLinux
- Desktop: xfce
- Distribuzione: OpenIndiana
Re: Core i7 e scheduler
...ho trovato per caso una informazione importante riguardo alla configurazione per i7
è fortemente consigliato abilitare
"CONFIG_NUMA: Numa Memory Allocation and Scheduler Support (EXPERIMENTAL)"
http://cateee.net/lkddb/web-lkddb/NUMA.html
Descrizione:
"Enable NUMA (Non Uniform Memory Access) support.
The kernel will try to allocate memory used by a CPU on the local memory controller of the CPU and add some more NUMA awareness to the kernel.
For 64-bit this is recommended if the system is Intel Core i7 (or later), AMD Opteron, or EM64T NUMA.
For 32-bit this is only needed on (rare) 32-bit-only platforms that support NUMA topologies, such as NUMAQ / Summit, or if you boot a 32-bit kernel on a 64-bit NUMA platform."
Una piccola descrizione della nuova tecnica NUMA usata dai Corei7 è qui:
http://en.wikipedia.org/wiki/Symmetric_ ... ternatives
Le motivazioni principali di questo supporto specifico per l'allocazione della memoria e di conseguenza dello scheduling per i7 sono:
-il fatto che il controller della memoria è sulla cpu stessa
-il fatto che è stata introdotta anche la cache L3 che viene interrogata con algoritmi differenti rispetto alla cache L2
è fortemente consigliato abilitare
"CONFIG_NUMA: Numa Memory Allocation and Scheduler Support (EXPERIMENTAL)"
http://cateee.net/lkddb/web-lkddb/NUMA.html
Descrizione:
"Enable NUMA (Non Uniform Memory Access) support.
The kernel will try to allocate memory used by a CPU on the local memory controller of the CPU and add some more NUMA awareness to the kernel.
For 64-bit this is recommended if the system is Intel Core i7 (or later), AMD Opteron, or EM64T NUMA.
For 32-bit this is only needed on (rare) 32-bit-only platforms that support NUMA topologies, such as NUMAQ / Summit, or if you boot a 32-bit kernel on a 64-bit NUMA platform."
Una piccola descrizione della nuova tecnica NUMA usata dai Corei7 è qui:
http://en.wikipedia.org/wiki/Symmetric_ ... ternatives
Le motivazioni principali di questo supporto specifico per l'allocazione della memoria e di conseguenza dello scheduling per i7 sono:
-il fatto che il controller della memoria è sulla cpu stessa
-il fatto che è stata introdotta anche la cache L3 che viene interrogata con algoritmi differenti rispetto alla cache L2
- Ansa89
- Iper Master

- Messaggi: 2703
- Iscritto il: mer 29 ago 2007, 17:57
- Nome Cognome: Stefano Ansaloni
- Slackware: 14.2 64bit
- Kernel: 4.9.61
- Desktop: XFCE 4.12
- Località: Modena
Re: Core i7 e scheduler
Capito.