|
このページは大阪弁化フィルタによって翻訳生成されたんですわ。 |
Ce HOWTO reprend et enrichit first draft 馗rit par Chris Pirih.
Toutes les informations contenues dans ce HOWTO sont fournies "tel que".
Oui. Les processus et les threads du noyau sont r駱artis entre les processeurs. Ceux de l'espace utilisateur ne le sont pas.
MIPS, m68k et ARM ne g鑽ent pas le SMP; les deux derniers ne le supporteront probablement jamais.
Ceci 騁ant, je ferai un hack pour MIPS-SMP d鑚 que j'aurais une machine SMP...
Vous devez reconstruire votre noyau et vos modules quand vous passez en SMP make bzImage # ou ce que vous voulez # copiez l'image du noyau manuellement puis RELANCER LILO # ou make lilo make modules make modules_install
Vous devez absolument recompiler votre noyau et ses modules pour activer
ou d駸activer le mode SMP. N'oubliez pas de faire make modules,
make modules_install et de relancer lilo. Voyez les notes plus haut
sur les probl鑪es de configuration possibles.
cat /proc/cpuinfo
Sortie typique (bi-PentiumII):
processor : 0 cpu : 686 model : 3 vendor_id : GenuineIntel [...] bogomips : 267.06 processor : 1 cpu : 686 model : 3 vendor_id : GenuineIntel [...] bogomips : 267.06
Les noyaux 2.3 (futur 2.4) poss鐡ent vraiment des verrous noyaux fins. Dans la s駻ie des noyaux 2.3 l'usage des gros blocages noyau a tout simplement disparu. Tous les sous-syst鑪es majeurs du noyau Linux sont compl鑼ement cod駸 avec des threads : r駸eau, VFS, VM, ES, block/pages de cache, ordonnancement, interruptions, signaux, etc... (Ingo Molnar)
Ce projet a pour but d'offrir une version compatible au niveau beaucoup de processus simultan駑ent et que l'utilisation processeur est tr鑚 forte, alors vous 黎es susceptible d'am駘iorer les performances de votre syst鑪e. Les disques dur SCSI peuvent 黎re tr鑚 efficaces en utilisation avec plusieurs processeurs. Ils peuvent g駻er plusieurs commandes simultan駑ent sans immobiliser le processeur (C. Polisher).
Tout d駱end de l'application, mais g駭駻alement non. Le SMP implique pratiques :
xosview-1.5.1 supporte le SMP, les noyaux sup駻ieurs au 2.1.85 (inclus) et l'entr馥 cpuX dans le fichier /proc/stat.
Page d'accueil officielle pour xosview : http://lore.ece.utexas.edu/~bgrayson/xosview.html
Vous ici trouverez une version patch馥 par Kumsup Lee pour les noyaux 2.2.p : http://www-isia.cma.fr/~forissie/smp_kernel_patch/
N饌nmoins, vous ne pouvez pas contr?er l'ordonnancement de fa輟n pr馗ise avec xosview car ce dernier le perturbe (H. Peter Anvin).
Dans la s駻ie des 2.0, le r駸ultat de la commande time est faux.
La somme utilisateur+syst鑪e est juste *mais* 'l'騁endue' entre le temps
utilisateur et le temps syst鑪e est faux.
Cette section a pour but de signaler ce qui fonctionne et ce qui ne fonctionne pas quand il s'agit de programmer des logiciels avec des threads pour Linux SMP.
Comme ni fork() ni les processus PVM/MPI ne partagent g駭駻alement la m駑oire, mais communiquent au moyen d'IPC ou d'une API de messagerie, LinuxThreads, une librairie de thread 馗rite par Xavier Leroy est maintenant int馮r馥 avec la glibc2 (aka libc6). Les distributions Linux approche de type threads, on rencontre des probl鑪es d'incompatibilit駸 et de non-adaptation aux thread des librairies, compilateurs et d饕ogueurs. GNU/Linux n'y fait pas exception. Esp駻ons que les sections qui suivent apporteront quelques lumi鑽es sur ce qui est possible et sur ce qui ne l'est pas.
Les vieilles librairies ne sont pas s?es au niveau des threads. Il est tr鑚 important que vous utilisiez la GNU libc (glibc), aussi connue sous le nom de libc6. Vous pouvez 騅idemment utiliser des versions
Il existe de nombreux langages de programmation disponibles pour GNU/Linux et beaucoup d'entre eux utilisent les threads d'une mani鑽e ou d'une autre. Certains langages comme Ada et Java incluent m麥e les threads dans les primitives du langage.
Cette section, pour l'instant, ne d馗rira que le C et le C++. Si vous avez une exp駻ience de programmation SMP avec d'autre langages, merci de nous en faire part.
Les compilateurs GNU C et C++, tout comme EGCS C et C++, fonctionnent avec le support thread de la librairie C standard (glibc). Il y a n饌nmoins quelques probl鑪es :
Il n'est pas n馗essaire de patcher la glibc pour qu'elle fonctionne avec des threads. Si vous n'avez pas besoin de d饕oguer le logiciel m騁hode 駘馮ante de trouver ce qui se passe : lancez le programme depuis la ligne de commande, sans GDB. Faites d駻ailler votre thread. Utilisez top pour obtenir le PID du processus. Lancez GDB tel que Linux Parallel Processing HOWTO
Beaucoup d'informations utiles se trouvent sur Parallel Processing using Linux
Voyez aussi
Multithreaded programs on linux (j'adore les
liens hypertextes, le saviez vous ? ;))
En ce qui concerne les librairies :
BLAS et FFTs optimis駸 Pentium pro pour Intel Linux
Les routines multithread BLAS ne sont pas disponibles pour l'instant, mais une librairie multithread est pr騅ue pour 1998-05-27, voir Blas News pour plus de d騁ails.
Emil Briggs, la m麥e personne qui est impliqu馥 dans la version multithread de MESA, est aussi en train de travailler sur la version multithread des plugins de The Gimp. Voyez ne prend pas de licence d'Intel pour cela, ils ne peuvent pas l'utiliser. Aucune compagnie ne l'a fait pour l'instant. Cela peut 騅idement changer dans le futur. A titre anecdotique, Cyrix et AMD adh鑽ent au standard non-propri騁aire OpenPIC SMP mais actuellement il n'existe pas de carte m鑽e l'utilisant.
(F7 je pense) pour les options de configuration "APIC mode" et cochez "full Table mode". Il s'agit d'une recommandation officielle de Compaq (Daniel Roesen).Adrian Portelli :
De Alan Cox: si un de vos processeurs rapporte une valeur bogomips
Un noyau 2.0 (> 2.0.36) contient un patch MTRR qui devrait r駸oudre ce probl鑪e (s駘ectionnez l'option "handle buggy SMP BIOSes with bad MTRR setup" dans le menu "General setup").
Je pense que les BIOS SMP bogu駸 sont pris en charge automatiquement dans les derniers noyaux 2.2.
Non (selon Alan :) ), 1.4 est juste une sp馗ification plus stricte de 1.1.
Il s'agit d'un probl鑪e connu avec la gestion des IRQ et les blocages noyau LILO afin d'黎re sur que votre noyau charge correctement le syst鑪e de fichier racine au d駑arrage.
(Robert M. Hyatt) Avec 3 processeurs, avez-vous un terminateur dans le 4鑪e emplacement ?
Essayez l'option de d駑arrage "noapic" (John Aldrich) et/ou "reboot=bios" (Terry Shull).
Essayez le dernier noyau 2.2.x et le patch knfsd. Cela est en cours d'investigation. (Wade Hampton)
Si vous utilisez les noyaux 2.2.11 ou 2.2.12, r馗up駻ez le dernier noyau. Par configuration (Dual Celeron 466 Abit BP6) :
POWER MANAGEMENT SETUP. ACPI: Disabled POWER MANAGEMENT: Disabled PM CONTROL by APM: No
Il y a plusieurs options de d饕ogage. N'utilisez PAS l'option de blocage logicielle ! Pour des machines SMP r馗entes, activez l'option kernel debugging selon la seconde colonne et cherchez ensuite les adresses dans le fichier System.map. Ca ne marche qu'en mode console.
Notez que l'utilisation d'une console s駻ie facilite grandement le d饕ogage des blocages noyau, qu'ils soient SMP ou non !
Un message comme:
APIC error interrupt on CPU#0, should never happen. ... APIC ESR0: 00000002 ... APIC ESR1: 00000000
De Ralf B臘hle: (concernant la taille des bo?iers et les ventilateurs) il est important que l'air circule. Bien s?, ce n'est pas possible quand toutes sortes d'obstacles, tels des c稈les, l'en emp鹹hent dans des bo?iers par trop exigus. bo?ier. Des bo?iers suppl駑entaires pour les p駻iph駻iques d馮ageant de la chaleur sont 馮alement utiles.
Bien s? vous pouvez toujours aller chez Radio Shack (ou similaire) et acheter
De Ralf B臘hle: le surcadencement pose des probl鑪es tr鑚 subtils. J'ai un bel exemple: une de mes vieilles machines surcadenc馥s commet des erreurs de calcul pour quelques pixels d'une fractale de 640 X 400. Le probl鑪e est seulement visible quand on les compare en utilisant des outils. Le mieux est donc de ne jamais, never, nuncas, niemals surcadencer.
Les noyaux 2.0.x sur des syst鑪es Ethernet rapide et hautes performances ont pg. 13
http://www.intel.com/design/pcisets/specupdt/297654.htm
Le probl鑪e peut se r駸oudre avec un contournement par le BIOS (ou un patch du noyau). David Wragg a 馗rit un patch qui est inclus dans le patch MTRR de Richard Gooch's. Pour plus d'informations ainsi qu'un descriptif de solution, voyez ici:
De Mark Duguid, R鑒le implicite #1 avec une carte m鑽e W6LI. ;)
Notez que des informations plus pr馗ises peuvent 黎re trouv馥s avec la liste des Cartes m鑽e suppos馥s fonctionner sous Linux SMP
R駱onse officielle d'Intel : non, le Celeron ne peut pas fonctionner en mode SMP.
R駱onse pratique : c'est possible, mais cela demande une modification mat駻ielle pour les processeurs Slot 1. La manipulation est d馗rite par Tomohiro Kawada sur sa page Dual Celeron System. Naturellement, de telles modifications annulent la garantie... Certaines versions du processeur Celeron sont aussi disponibles au format Socket 370.
Il existe aussi une carte m鑽e (ABIT BP6) autorisant l'insertion de deux Celerons dans le format Socket 370 (Martijn Kruithof, Ryan McCue), l'ABIT Computer BP6 v駻ifi馥, test馥 et support馥 sous linux avec deux ppga socket 370 (Andre Hedrick).
Bien, merci.
Citation de la page web UltraLinux (syst鑪es SMP seulement):
(David Miller) Il ne devrait pas y avoir d'inqui騁udes.
Le seul probl鑪e connu et que nous n'avons pas l'intention de corriger,
Geerten Kuiper : le SMP marche pour la plupart des serveurs AXP, sinon pour tous.
Jay A Estabrook : le SMP semble fonctionner sur la plupart de nos machines [Compaq] avec deux processeurs ou plus. La liste de celles-ci comprend :
En sont exclus :
Aucun (vraiment ? :-) ).