Rechercher
Derniers sujets
Le SMP venant du 32bits:(!
Page 1 sur 1
Re: Le SMP venant du 32bits:(!
8.1 SMP
SMP, abréviation de Symetric Multi-Processors, désigne la capacité des noyaux Linux 2.0 et versions suivantes de fonctionner sur des machines à plusieurs processeurs. Sur architecture ix86, le support SMP de Linux suit les spécifications Intel MP (v1.1, v1.4) qui vont théoriquement jusqu'à 16 processeurs. En fait, le SMP n'est pas spécifique aux plates-formes Intel : il existe également sur les plates-formes Alpha, Sparc, PowerPC. La version 2.0 ne gère le SMP que pour les plates-formes de type Intel.
Pour compiler un noyau avec le support SMP, il faut décommenter la ligne SMP = 1 dans le fichier Makefile. Il est en outre recommandé de compiler le support pour l'Enhanced Real Time Clock (CONFIG_RTC).
Lors du démarrage du noyau, Linux boot d'abord sur un processeur, puis active le(s) autre(s). Extraits des informations données par la commande dmesg :
Intel MultiProcessor Specification v1.1
Virtual Wire compatibility mode.
OEM ID: INTEL Product ID: Nightshade APIC at: 0xFEE00000
Processor #1 Pentium(tm) Pro APIC version 17
Processor #0 Pentium(tm) Pro APIC version 17
I/O APIC #2 Version 17 at 0xFEC00000.
Processors: 2
...
Calibrating delay loop.. ok - 396.49 BogoMIPS
...
Booting processor 0 stack 00002000: Calibrating delay loop.. ok - 396.49 BogoMIPS
Total of 2 processors activated (792.99 BogoMIPS).
Ce qui précède suffit pour avoir un système multiprocesseur qui fonctionne. Ce qui suit va le rendre plus agréable à utiliser et plus efficace.
Le package procps contient entre autre les commandes top et ps qui peuvent être modifiées pour afficher le numéro du processeur sur lequel une commande tourne. La marche à suivre ainsi que les patches sont disponibles (en anglais) à http://www.cs.inf.ethz.ch/~rauch/procps.html.
GNU make accepte l'option -j qui spécifie un nombre maximal de tâches pouvant être lancées simultanément. Il peut donc être intéressant d'utiliser cette option (make -j 5 par exemple) sur un système multi-processeurs.
Dans la majorité des cas, un système SMP ne se distingue pas parce qu'une même tâche se déroule plus vite, mais bien parce que l'on peut faire tourner plusieurs grosse tâches simultanément (par exemple compiler un programme C et un fichier LaTeX en même temps) ou bien parce que le système répond instantanément malgré la présence d'une grosse tâche (p.ex. lire son mail tout en compilant le noyau).
Pour vraiment faire en sorte qu'un même programme utilise toute la puissance CPU de la machine, il faut investir dans le parallélisme, ce qui sort très nettement du cadre de ce guide. Lire à ce sujet l'excellentissime Linux Parallel Processing HOWTO (que l'on trouve aux endroits habituels).
Pour en savoir plus, vous pouvez consulter la Linux SMP FAQ de David Mentré, http://www.irisa.fr/prive/mentre/smp-faq/.
Une description technique (et sommaire) de l'implémentation de SMP dans le noyau Linux est donnée dans le fichier Documentation/smp.tex
--
SMP, abréviation de Symetric Multi-Processors, désigne la capacité des noyaux Linux 2.0 et versions suivantes de fonctionner sur des machines à plusieurs processeurs. Sur architecture ix86, le support SMP de Linux suit les spécifications Intel MP (v1.1, v1.4) qui vont théoriquement jusqu'à 16 processeurs. En fait, le SMP n'est pas spécifique aux plates-formes Intel : il existe également sur les plates-formes Alpha, Sparc, PowerPC. La version 2.0 ne gère le SMP que pour les plates-formes de type Intel.
Pour compiler un noyau avec le support SMP, il faut décommenter la ligne SMP = 1 dans le fichier Makefile. Il est en outre recommandé de compiler le support pour l'Enhanced Real Time Clock (CONFIG_RTC).
Lors du démarrage du noyau, Linux boot d'abord sur un processeur, puis active le(s) autre(s). Extraits des informations données par la commande dmesg :
Intel MultiProcessor Specification v1.1
Virtual Wire compatibility mode.
OEM ID: INTEL Product ID: Nightshade APIC at: 0xFEE00000
Processor #1 Pentium(tm) Pro APIC version 17
Processor #0 Pentium(tm) Pro APIC version 17
I/O APIC #2 Version 17 at 0xFEC00000.
Processors: 2
...
Calibrating delay loop.. ok - 396.49 BogoMIPS
...
Booting processor 0 stack 00002000: Calibrating delay loop.. ok - 396.49 BogoMIPS
Total of 2 processors activated (792.99 BogoMIPS).
Ce qui précède suffit pour avoir un système multiprocesseur qui fonctionne. Ce qui suit va le rendre plus agréable à utiliser et plus efficace.
Le package procps contient entre autre les commandes top et ps qui peuvent être modifiées pour afficher le numéro du processeur sur lequel une commande tourne. La marche à suivre ainsi que les patches sont disponibles (en anglais) à http://www.cs.inf.ethz.ch/~rauch/procps.html.
GNU make accepte l'option -j qui spécifie un nombre maximal de tâches pouvant être lancées simultanément. Il peut donc être intéressant d'utiliser cette option (make -j 5 par exemple) sur un système multi-processeurs.
Dans la majorité des cas, un système SMP ne se distingue pas parce qu'une même tâche se déroule plus vite, mais bien parce que l'on peut faire tourner plusieurs grosse tâches simultanément (par exemple compiler un programme C et un fichier LaTeX en même temps) ou bien parce que le système répond instantanément malgré la présence d'une grosse tâche (p.ex. lire son mail tout en compilant le noyau).
Pour vraiment faire en sorte qu'un même programme utilise toute la puissance CPU de la machine, il faut investir dans le parallélisme, ce qui sort très nettement du cadre de ce guide. Lire à ce sujet l'excellentissime Linux Parallel Processing HOWTO (que l'on trouve aux endroits habituels).
Pour en savoir plus, vous pouvez consulter la Linux SMP FAQ de David Mentré, http://www.irisa.fr/prive/mentre/smp-faq/.
Une description technique (et sommaire) de l'implémentation de SMP dans le noyau Linux est donnée dans le fichier Documentation/smp.tex
--
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
Mar 19 Mai - 19:29 par Milux
» News #Open source, #FOSS , #Linux et autres #Freewares et #Free-mobile
Jeu 30 Mai - 15:29 par Milux
» Quelques news 'Portnawak' & autres bilevesées:(!
Jeu 30 Mai - 15:12 par Milux
» TinyLinux : Pupy
Mar 28 Mai - 17:41 par Milux
» Topics of interrest, FOSS et évolutions & relayés sur Sccop.it :)!
Jeu 16 Mai - 13:42 par Milux
» Après F.B. google Buzz & iGoogle, G+1 arrive:>?
Jeu 16 Mai - 11:41 par Milux
» Buzz, Blogs, FB et pages de sites censurées - Google +:<? -
Jeu 16 Mai - 11:33 par Milux
» Jaime pas, mais j'en parle aussi :)?
Mer 1 Mai - 18:30 par Milux
» J'aime, donc j'en parle:)!
Mer 17 Avr - 15:24 par Milux