Página siguiente Página anterior Índice general

9. SMP, otras arquitecturas

Nota: No dude en enviarme complementos a esta parte.

9.1 SMP

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

9.2 Plataformas Alpha

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):

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.


Página siguiente Página anterior Índice general