Nota: No dude en enviarme complementos a esta parte.
SMP, abreviatura de Symetric Multi-Processors, designa la capacidad de los núcleos Linux 2.0 y versiones siguientes de funcionar sobre máquinas con varios procesadores. Sobre la arquitectura ix86, el soporte SMP de Linux sigue las especificaciones Intel MP (v1.1, v1.4) que llegan teóricamente hasta 16 procesadores. En realidad, SMP no es específico de las plataformas Intel: existe también en plataformas Alpha, Sparc, PowerPC. LA versión 2.0 gestiona SMP sólo para plataformas Intel.
Paraq compilar el núcleo con soporte SMP, hay que quitar el comentario de la
línea SMP = 1
en el fichero Makefile. Es también aconsejable compilar
el soporte para Enhanced Real Time Clock (CONFIG_RTC
).
Cuando el núcleo arranca, Linux se inicia primero sobre un procesador, y
después activa los demás. Extracto de la información suministrada por la orden 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).
Lo anterior es suficiente para tener un sistema multiprocesador que funcione. Lo que sigue lo convertirá en algo más agradable de utilizar y más eficaz.
El paquete procps
contiene entre otras las órdenes top
y ps
que
pueden ser modificadas para presentar el número del procesador sobre el que se
ejecuta una orden. Los pasos a seguir así como los parches están disponibles
(en inglés) en
http://www.cs.inf.ethz.ch/~rauch/procps.html.
GNU make
acepta la opción -j
que especifica un número máximo de
tareas que pueden ser lanzadas simultáneamente. Puede ser por tanto
interesante utilizar esta opción (make -j 5
por ejemplo) en un sistema
multiprocesador.
En la mayoría de los casos, un sistema SMP no se distingue porque una misma tarea se ejecute más rápido, sino más bien porque podemos ejecutar varias tareas pesadas simultáneamente (por ejemplo compilar un programa C y un fichero LaTeX al mismo tiempo) o bien porque el sistema responde instantáneamente a pesar de la presencia de una tarea pesada (p. ej. leer el correo mientras se compila el núcleo).
Para procurar verdaderamente que un mismo programa utilice toda la potencia de CPU de la máquina, hay que invertir en paralelismo, lo cual se sale claramente del propósito de esta guía. Lea a este propósito el excelentísimo Linux Parallel Processing HOWTO (que se encuentra en los sitios habituales).
Para saber más, se puede consultar la Linux SMP FAQ de David Mentré, http://www.irisa.fr/prive/mentre/smp-faq/.
Una descripción técnica (y un sumario) de la implementación de SMP en el
núcleo de Linux se da en el fichero Documentation/smp.tex
La plataforma Alpha es soportada desde hace bastante tiempo. El sitio a consultar antes que nada es http://www.azstarnet.com/~axplinux/. La distribución RedHat 5.1 está disponible para Alpha. Su instalación es mucho más compleja ya que depende un poco del tipo de máquina de que se disponga.
Si desea instalar esta versión, lea atentamente el ALPHA-HOWTO, el MILO-HOWTO y el SRM-HOWTO. Se trata de tres documentos clave.
Para aclarar la situación, el mayor problema no es realmente instalar Linux, sino iniciarlo. En efecto, existen dos formas de hacerlo, en función de la arquitectura de la máquina (véase la FAQ disponible en el sitio central de la implementación Alpha):
vmlinuz
para arrancar Linux. El SRM_HOWTO no es
realmente claro al respecto.
Sea como sea, si desea instalar Linux sobre Alpha, piense sobre todo en leerse
los documentos indicados más arriba. Para la RedHat, se ha escrito un
documento suplementario específico para Alpha. Finalmente, piense en apuntarse
al forum y a la lista de discusión sobre Linux/Alpha,
comp.os.linux.alpha
y axp-kernel-list@redhat.com
.