Computación de Alto Rendimiento con Gentoo Linux
1.
Introducción
Gentoo Linux, es un sabor especial de Linux que puede ser
automáticamente optimizado para cualquier aplicación o
necesidad. Rendimiento extremo, configurabilidad y una comunidad de
usuarios y desarrolladores de la mayor calidad imaginable son
característicos de la experiencia Gentoo.
Gracias a una tecnología llamada Portage, Gentoo Linux puede llegar a
ser un servidor seguro ideal, una estación de trabajo, un escritorio
profesional, un sistema de juegos, una solución que las integre o
... un sistema de computación de alto rendimiento. Debido a su
adaptabilidad casi ilimitada, llamamos a Gentoo Linux una
metadistribución.
Este documento explica cómo hacer de Gentoo un sistema de computación
de alto rendimiento. Explica paso a paso los paquetes a instalar y
ayuda a configurarlos.
Gentoo Linux puede obtenerse desde http://www.gentoo.org, y
puede obtenerse también la documentación
para instalarlo.
2.
Configurando Gentoo Linux para Clustering
Optimizaciones Recomendadas
Nota:
Clustering: grupo de ordenadores realizando una misma función.
|
Nota:
En esta sección nos referimos al
Manual Gentoo.
|
Durante el proceso de instalación, deben ajustarse los parámetros USE
en /etc/portage/make.conf. Recomendamos que se
desactiven los valores por defecto (véase
/etc/portage/make.profile/make.defaults) negándolos en
make.conf. De cualquier forma, pueden conservarse variables como
3dnow, gpm, mmx, nptl, nptlonly, sse, ncurses, pam y tcpd. Consulte la
documentación USE para más información.
Listado de Código 2.1: Parámetros USE |
USE="-oss 3dnow -apm -avi -berkdb -crypt -cups -encode -gdbm -gif gpm -gtk
-imlib -java -jpeg -kde -gnome -libg++ -libwww -mikmod mmx -motif -mpeg ncurses
-nls nptl nptlonly -ogg -opengl pam -pdflib -png -python -qt4 -qtmt
-quicktime -readline -sdl -slang -spell -ssl -svga tcpd -truetype -vorbis -X
-xml2 -xv -zlib"
|
O sencillamente:
Listado de Código 2.2: versión simplificada - Parámetros USE |
# Copyright 2000-2003 Daniel Robbins, Gentoo Technologies, Inc.
# Contains local system settings for Portage system
# Please review 'man make.conf' for more information.
USE="-* 3dnow gpm mmx ncurses pam sse tcpd"
|
Nota:
El parámetro USE tcpd incrementa la seguridad de paquetes como
xinetd.
|
En el paso 15 ("Instalando el núcleo y los registros del sistema"),
por razones de estabilidad, recomendamos las fuentes vanilla
(vanilla-sources), el código fuente oficial del núcleo realizado en
http://www.kernel.org/, a menos que se requiera soporte
específico, como el de xfs.
Listado de Código 2.3: Instalando las fuentes vanilla |
# emerge -a syslog-ng vanilla-sources
|
Recomendamos instalar los siguientes paquetes:
Listado de Código 2.4: Instalando los paquetes necesarios |
# emerge -p nfs-utils portmap tcpdump ssmtp iptables xinetd
|
Capa de Comunicación (TCP/IP Network)
Un grupo de computadoras (cluster) requiere una capa de
comunicación que permita la comunicación entre los nodos esclavos y el
nodo maestro. Normalmente, LAN: FastEthernet o GigaEthernet, pueden
ser usados, dado que tienen una buena relación
precio/rendimiento. Otras posibilidades incluyen el uso de productos
como Myrinet, QsNet u otros.
Un cluster se compone de dos tipos de nodo: maestro y
esclavo. Normalmente, un cluster dispone de un nodo maestro y varios
nodos esclavos.
El nodo maestro es el servidor del cluster. Es el responsable de
decirle a los nodos esclavo qué deben hacer. El servidor ejecutará
demonios como dhcpd, nfs, pbs-server, y pbs-sched. El nodo
maestro permitirá sesiones interactivas de usuarios y aceptará la
ejecución de trabajos.
Los nodos esclavo escuchan las instrucciones (quizá vía ssh/rsh) desde
el nodo maestro. Deben dedicarse a proporcionar resultados y, por
tanto, no deberían ejecutar ningún servicio innecesario.
El resto de este documento asume un cluster cuya configuración es la
que se proporciona en el siguiente archivo hosts. Debería
mantenerse cada nodo en el archivo /etc/hosts con
entradas para cada uno de los nodos que participe en el cluster.
Listado de Código 2.5: /etc/hosts |
# Adelie Linux Research & Development Center
# /etc/hosts
127.0.0.1 localhost
192.168.1.100 master.adelie master
192.168.1.1 node01.adelie node01
192.168.1.2 node02.adelie node02
|
Para configurar la LAN dedicada al cluster, se edita el archivo
/etc/conf.d/net en el nodo maestro.
Listado de Código 2.6: /etc/conf.d/net |
# Copyright 1999-2002 Gentoo Technologies, Inc.
# Distributed under the terms of the GNU General Public License, v2 or later
# Global config file for net.* rc-scripts
# This is basically the ifconfig argument without the ifconfig $iface
#
iface_eth0="192.168.1.100 broadcast 192.168.1.255 netmask 255.255.255.0"
# Network Connection to the outside world using dhcp -- configure as required for you network
iface_eth1="dhcp"
|
Finalmente, se configura un servidor DHCP en el nodo maestro para
evitar tener que mantener una configuración de red en cada uno de los
nodos esclavo.
Listado de Código 2.7: /etc/dhcp/dhcpd.conf |
# Adelie Linux Research & Development Center
# /etc/dhcp/dhcpd.conf
log-facility local7;
ddns-update-style none;
use-host-decl-names on;
subnet 192.168.1.0 netmask 255.255.255.0 {
option domain-name "adelie";
range 192.168.1.10 192.168.1.99;
option routers 192.168.1.100;
host node01.adelie {
# MAC address of network card on node 01
hardware ethernet 00:07:e9:0f:e2:d4;
fixed-address 192.168.1.1;
}
host node02.adelie {
# MAC address of network card on node 02
hardware ethernet 00:07:e9:0f:e2:6b;
fixed-address 192.168.1.2;
}
}
|
NFS/NIS
El sistema de archivos de red (NFS) se desarrolló para permitir a las
máquinas montar la partición de un disco en una máquina remota como si
estuviese en un disco duro local. Esto permite compartir ficheros a
través de una red de forma rápida y eficaz.
Hay otros sistemas que proporcionan una funcionalidad similar a NFS
que pueden usarse en entornos cluster. El Andrew File System de IBM,
recientemente de código abierto, proporciona un mecanismo que permite
compartir archivos con características adicionales de seguridad y
rendimiento. El Sistema de
archivos Coda se está desarrollando todavía, pero está diseñado
para trabajar bien, aún con clientes desconectados. Muchas de las
características de los sistemas de archivos Andrew y Coda se incluirán
en la siguiente versión de NFS
(Versión 4). La ventajas actuales de NFS son que es un sistema
maduro, estándar, bien entendido y soportado robustamente en una
extensa variedad de plataformas.
Listado de Código 2.8: Ebuilds para el soporte NFS |
# emerge -a nfs-utils portmap
|
Se ha de configurar e instalar un núcleo con soporte NFS V3 en todos
los nodos:
Listado de Código 2.9: Configuración Requerida por el Núcleo (kernel) para NFS |
CONFIG_NFS_FS=y
CONFIG_NFSD=y
CONFIG_SUNRPC=y
CONFIG_LOCKD=y
CONFIG_NFSD_V3=y
CONFIG_LOCKD_V4=y
|
En el nodo maestro, se edita el archivo /etc/hosts.allow
para permitir conexiones desde los nodos esclavos. Si la LAN del
cluster está en 192.168.1.0/24, el hosts.allow
debe ser:
Listado de Código 2.10: hosts.allow |
portmap:192.168.1.0/255.255.255.0
|
Se edita el archivo /etc/exports en el nodo maestro para
exportar una estructura de directorios (/home es adecuado para esto).
Listado de Código 2.11: /etc/exports |
/home/ *(rw)
|
Se añade nfs en el nivel de ejecución default del nodo maestro:
Listado de Código 2.12: Añadiendo NFS al nivel de ejecución default |
# rc-update add nfs default
|
Para montar el NFS exportado desde el nodo maestro, se tiene que
configurar /etc/fstab en los nodos esclavo. Ha de
añadirse la siguiente línea:
Listado de Código 2.13: /etc/fstab |
master:/home/ /home nfs rw,exec,noauto,nouser,async 0 0
|
También se han de configurar los nodos para que monten el sistema de
archivos nfs con el siguiente comando:
Listado de Código 2.14: Añadiendo nfsmount al nivel de ejecución default |
# rc-update add nfsmount default
|
RSH/SSH
SSH es un protocolo que proporciona servicios de red seguros, entre
ellos el acceso remoto seguro (login), en una red
insegura. OpenSSH usa criptografía de una llave pública para asegurar
una autorización segura. Generar la llave pública, que es compartida
con los sistemas remotos, y la llave privada, que se mantiene en el
sistema local, debe hacerse antes de configurar OpenSSH en el
cluster.
Para hacer un uso transparente del cluster, pueden usarse las
llaves privadas/públicas. Este proceso se hace en dos pasos:
- Generar llaves públicas y privadas
- Copiar la llave pública en los nodos esclavo
Para autenticación basada en usuario, ha de hacerse lo siguiente:
Listado de Código 2.15: Autenticación con llave SSH |
# ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/root/.ssh/id_dsa): /root/.ssh/id_dsa
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_dsa.
Your public key has been saved in /root/.ssh/id_dsa.pub.
The key fingerprint is:
f1:45:15:40:fd:3c:2d:f7:9f:ea:55:df:76:2f:a4:1f root@master
# scp /root/.ssh/id_dsa.pub node01:/root/.ssh/authorized_keys
root@master's password:
id_dsa.pub 100% 234 2.0MB/s 00:00
# scp /root/.ssh/id_dsa.pub node02:/root/.ssh/authorized_keys
root@master's password:
id_dsa.pub 100% 234 2.0MB/s 00:00
|
Nota:
Las llaves del anfitrión deben tener una contraseña vacía. Se requiere
RSA para una autenticación basada en el anfitrión.
|
Para una autenticación basada en el anfitrión se necesita editar
también /etc/ssh/shosts.equiv.
Listado de Código 2.16: /etc/ssh/shosts.equiv |
node01.adelie
node02.adelie
master.adelie
|
Y algunas modificaciones al archivo /etc/ssh/sshd_config:
Listado de Código 2.17: configuración de sshd |
# $OpenBSD: sshd_config,v 1.42 2001/09/20 20:57:51 mouring Exp $
# This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin
# This is the sshd server system-wide configuration file. See sshd(8)
# for more information.
# HostKeys for protocol version 2
HostKey /etc/ssh/ssh_host_rsa_key
|
Si la aplicación requiere comunicaciones RSH, se necesita hacer un
emerge de net-misc/netkit-rsh y sys-apps/xinetd.
Listado de Código 2.18: Instalando las aplicaciones necesarias |
# emerge -a xinetd
# emerge -a netkit-rsh
|
Entonces se ha de configurar el demonio rsh. Editando el
archivo /etc/xinet.d/rsh.
Listado de Código 2.19: rsh |
# Adelie Linux Research & Development Center
# /etc/xinetd.d/rsh
service shell
{
socket_type = stream
protocol = tcp
wait = no
user = root
group = tty
server = /usr/sbin/in.rshd
log_type = FILE /var/log/rsh
log_on_success = PID HOST USERID EXIT DURATION
log_on_failure = USERID ATTEMPT
disable = no
}
|
Se edita /etc/hosts.allow para permitir conexiones rsh:
Listado de Código 2.20: hosts.allow |
# Adelie Linux Research & Development Center
# /etc/hosts.allow
in.rshd:192.168.1.0/255.255.255.0
|
O se puede, sencillamente, confiar en la LAN del cluster:
Listado de Código 2.21: hosts.allow |
# Adelie Linux Research & Development Center
# /etc/hosts.allow
ALL:192.168.1.0/255.255.255.0
|
Finalmente, se configura la autenticación del anfitrión en
/etc/hosts.equiv.
Listado de Código 2.22: hosts.equiv |
# Adelie Linux Research & Development Center
# /etc/hosts.equiv
master
node01
node02
|
Y se añade xinetd al nivel de ejecución default:
Listado de Código 2.23: Añadiendo xinetd al nivel de ejecución default |
# rc-update add xinetd default
|
NTP
El Protocolo de Tiempo de Red (NTP) se usa para sincronizar el tiempo
de una computadora cliente o servidor con otro servidor como fuente de
referencia temporal, como un receptor radio o satélite o
módem. Proporciona ajustes con una diferencia de un milisegundo en una
LAN o de varias decenas de milisegundos en WANs relativas al Tiempo
Universal Coordinado (UTC) vía el receptor del Servicio de
Posicionamiento Global (GPS), por ejemplo. Las configuraciones típicas
de NTP utilizan múltiples servidores redundantes y diversas rutas de
red para alcanzar la máxima sincronización posible.
Ha de seleccionarse un servidor NTP geográficamente cercano en
Servidores públicos de tiempo NTP, y configurar los archivos
/etc/conf.d/ntp y /etc/ntp.conf en el
nodo maestro.
Listado de Código 2.24: /etc/conf.d/ntp en el nodo maestro |
# Copyright 1999-2002 Gentoo Technologies, Inc.
# Distributed under the terms of the GNU General Public License v2
# /etc/conf.d/ntpd
# NOTES:
# - NTPDATE variables below are used if you wish to set your
# clock when you start the ntp init.d script
# - make sure that the NTPDATE_CMD will close by itself ...
# the init.d script will not attempt to kill/stop it
# - ntpd will be used to maintain synchronization with a time
# server regardless of what NTPDATE is set to
# - read each of the comments above each of the variable
# Comment this out if you dont want the init script to warn
# about not having ntpdate setup
NTPDATE_WARN="n"
# Command to run to set the clock initially
# Most people should just uncomment this line ...
# however, if you know what you're doing, and you
# want to use ntpd to set the clock, change this to 'ntpd'
NTPDATE_CMD="ntpdate"
# Options to pass to the above command
# Most people should just uncomment this variable and
# change 'someserver' to a valid hostname which you
# can aquire from the URL's below
NTPDATE_OPTS="-b ntp1.cmc.ec.gc.ca"
##
# A list of available servers is available here:
# http://ntp.isc.org/bin/view/Servers/NTPPoolServers
# Please follow the rules of engagement and use a
# Stratum 2 server (unless you qualify for Stratum 1)
##
# Options to pass to the ntpd process that will *always* be run
# Most people should not uncomment this line ...
# however, if you know what you're doing, feel free to tweak
#NTPD_OPTS=""
|
Se edita el archivo /etc/ntp.conf en el nodo maestro para
configurar una fuente externa de sincronización:
Listado de Código 2.25: ntp.conf en el nodo maestro |
# Adelie Linux Research & Development Center
# /etc/ntp.conf
# Synchronization source #1
server ntp1.cmc.ec.gc.ca
restrict ntp1.cmc.ec.gc.ca
# Synchronization source #2
server ntp2.cmc.ec.gc.ca
restrict ntp2.cmc.ec.gc.ca
stratum 10
driftfile /etc/ntp.drift.server
logfile /var/log/ntp
broadcast 192.168.1.255
restrict default kod
restrict 127.0.0.1
restrict 192.168.1.0 mask 255.255.255.0
|
Y en el resto de nodos esclavo, se configura como fuente de
sincronización el nodo maestro.
Listado de Código 2.26: /etc/conf.d/ntp en el resto de nodos |
# Copyright 1999-2002 Gentoo Technologies, Inc.
# Distributed under the terms of the GNU General Public License v2
# /etc/conf.d/ntpd
NTPDATE_WARN="n"
NTPDATE_CMD="ntpdate"
NTPDATE_OPTS="-b master"
|
Listado de Código 2.27: ntp.conf en un nodo |
# Adelie Linux Research & Development Center
# /etc/ntp.conf
# Synchronization source #1
server master
restrict master
stratum 11
driftfile /etc/ntp.drift.server
logfile /var/log/ntp
restrict default kod
restrict 127.0.0.1
|
Después se añade ntpd al nivel de ejecución default en todos los
nodos:
Listado de Código 2.28: Añadiendo ntpd al nivel de ejecución default |
# rc-update add ntpd default
|
Nota:
NTP no actualizará el reloj local si la diferencia de tiempo es muy
grande con respecto a la fuente de sincronización.
|
IPTABLES
Para configurar un cortafuego en el cluster, se necesita
iptables.
Listado de Código 2.29: Instalando iptables |
# emerge -a iptables
|
Configuración necesaria del núcleo (kernel):
Listado de Código 2.30: Configuración IPtables en el núcleo |
CONFIG_NETFILTER=y
CONFIG_IP_NF_CONNTRACK=y
CONFIG_IP_NF_IPTABLES=y
CONFIG_IP_NF_MATCH_STATE=y
CONFIG_IP_NF_FILTER=y
CONFIG_IP_NF_TARGET_REJECT=y
CONFIG_IP_NF_NAT=y
CONFIG_IP_NF_NAT_NEEDED=y
CONFIG_IP_NF_TARGET_MASQUERADE=y
CONFIG_IP_NF_TARGET_LOG=y
|
Y las reglas requeridas para este cortafuego:
Listado de Código 2.31: rules-save |
# Adelie Linux Research & Development Center
# /var/lib/iptables/rules-save
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -s 192.168.1.0/255.255.255.0 -i eth1 -j ACCEPT
-A INPUT -s 127.0.0.1 -i lo -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -j LOG
-A INPUT -j REJECT --reject-with icmp-port-unreachable
COMMIT
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A POSTROUTING -s 192.168.1.0/255.255.255.0 -j MASQUERADE
COMMIT
|
Después se añade ipables al nivel de ejecución default en todos los
nodos:
Listado de Código 2.32: Añadiendo iptables al nivel de ejecución default |
# rc-update add iptables default
|
3.
Herramientas HPC
OpenPBS
El Sistema de Lotes Portables Portable Batch System (PBS) es un
sistema flexible de puesta en cola de lotes según la carga de trabajo,
originalmente desarrollado para la NASA. Opera en entornos
multi-plataforma UNIX, incluyendo clusters heterogéneos de estaciones
de trabajo, supercomputadoras, y sistemas paralelos masivos. El
desarrollo de PBS está a cargo de Altair Grid Technologies.
Listado de Código 3.1: Instalando openpbs |
# emerge -a openpbs
|
Nota:
El ebuild OpenPBS no ajusta los permisos adecuadamente en los
directorios var usados por OpenPBS.
|
Antes de empezar a usar OpenPBS, es necesario configurar algunas
cosas. Los archivos necesarios para personalizar el sistema son:
- /etc/pbs_environment
- /var/spool/PBS/server_name
- /var/spool/PBS/server_priv/nodes
- /var/spool/PBS/mom_priv/config
- /var/spool/PBS/sched_priv/sched_config
Aquí tenemos una muestra de sched_config:
Listado de Código 3.2: /var/spool/PBS/sched_priv/sched_config |
#
# Create queues and set their attributes.
#
#
# Create and define queue upto4nodes
#
create queue upto4nodes
set queue upto4nodes queue_type = Execution
set queue upto4nodes Priority = 100
set queue upto4nodes resources_max.nodect = 4
set queue upto4nodes resources_min.nodect = 1
set queue upto4nodes enabled = True
set queue upto4nodes started = True
#
# Create and define queue default
#
create queue default
set queue default queue_type = Route
set queue default route_destinations = upto4nodes
set queue default enabled = True
set queue default started = True
#
# Set server attributes.
#
set server scheduling = True
set server acl_host_enable = True
set server default_queue = default
set server log_events = 511
set server mail_from = adm
set server query_other_jobs = True
set server resources_default.neednodes = 1
set server resources_default.nodect = 1
set server resources_default.nodes = 1
set server scheduler_iteration = 60
|
Para someter una tarea a OpenPBS, se usa el comando qsub con
algunos parámetros opcionales. En el siguiente ejemplo, "-l" permite
especificar los recursos que se requieren, "-j" permite la redirección
de las salidas de error estándar y la salida estándar, y "-m" enviará
un correo electrónico al usuario al principio (b), final (e) y al
cancelar (a) el trabajo.
Listado de Código 3.3: Sometiendo una tarea |
# qsub -l nodes=2 -j oe -m abe myscript
|
Normalmente, las tareas sometidas a OpenPBS están en forma de
macros. A veces, se puede intentar una tarea manualmente. Para
solicitar un intérprete de comandos interactivo desde OpenPBS, se usa
el parámetro "-I".
Listado de Código 3.4: Solicitando un intérprete de comandos interactivo |
# qsub -I
|
Para comprobar el estado de las tareas, se usa el comando qstat:
Listado de Código 3.5: Comprobando el estado de las tareas |
# qstat
Job id Name User Time Use S Queue
------ ---- ---- -------- - -----
2.geist STDIN adelie 0 R upto1nodes
|
MPICH
Pasar Mensajes es un paradigma usado ampliamente en ciertas clases de
máquinas en paralelo, especialmente en aquellas con memoria
distribuida. MPICH es una implementación portable de MPI disponible
libremente. El estándar para las librerías pasar-mensajes.
El ebuild de mpich proporcionado por Adelie Linux permite dos
parámetros USE: doc y crypt. doc hará que la
documentación sea instalada, mientras que crypt configurará
MPICH para usar ssh en lugar de rsh.
Listado de Código 3.6: Instalando la aplicación mpich |
# emerge -a mpich
|
Se debe exportar un directorio de trabajo mpich a todos los nodos
esclavo en /etc/exports:
Listado de Código 3.7: /etc/exports |
/home *(rw)
|
La mayoría de sistemas de procesamiento en paralelo masivo (MPPs)
proporcionan una forma de iniciar un programa en un número determinado
de procesadores; mpirun hace uso del comando adecuado siempre
que sea posible. En contraste, los clusters de estaciones de
trabajo requieren que cada proceso de un trabajo en paralelo sea
iniciado individualmente, aunque programas para iniciar estos procesos
existen. Debido a que los clusters con estaciones de trabajo no
están organizados como MPP, se requiere información adicional para
hacer uso de ellos. Mpich debe ser instalado con una lista de las
estaciones de trabajo en el archivo machines.LINUX del
directorio /usr/share/mpich/. Este archivo es utilizado
por mpirun para elegir los procesadores en los que se ejecuta.
Se edita este archivo para reflejar la configuración del
cluster-lan:
Listado de Código 3.8: /usr/share/mpich/machines.LINUX |
# Change this file to contain the machines that you want to use
# to run MPI jobs on. The format is one host name per line, with either
# hostname
# or
# hostname:n
# where n is the number of processors in an SMP. The hostname should
# be the same as the result from the command "hostname"
master
node01
node02
# node03
# node04
# ...
|
Se usa el macro tstmachines en /usr/sbin/ para
asegurarse de que se pueden usar todas las máquinas de la lista. Esta
macro realiza un rsh y un breve listado de directorio; con lo
cual se comprueba tanto que se tiene acceso el nodo como que el
programa en el directorio puede verse en el nodo remoto. De haber
algún problema, será comunicado. Estos problemas deben resolverse
antes de proceder.
El único argumento para tstmachines es el nombre de la
arquitectura; es el mismo nombre que el del archivo machines. Por
ejemplo, lo siguiente comprueba si un programa en el directorio actual
puede ser ejecutado por todas las máquinas en la lista LINUX.
Listado de Código 3.9: Haciendo un test |
# /usr/local/mpich/sbin/tstmachines LINUX
|
Nota:
Este programa es silencioso si todo va bien; si quiere verse lo que
está haciendo, se ha de usar el argumento -v (modo detallado):
|
Listado de Código 3.10: Haciendo un test en modo detallado |
# /usr/local/mpich/sbin/tstmachines -v LINUX
|
La salida de este comando podría ser:
Listado de Código 3.11: Mensajes del comando anterior |
Trying true on host1.uoffoo.edu ...
Trying true on host2.uoffoo.edu ...
Trying ls on host1.uoffoo.edu ...
Trying ls on host2.uoffoo.edu ...
Trying user program on host1.uoffoo.edu ...
Trying user program on host2.uoffoo.edu ...
|
Si tstmachines encuentra un problema, sugerirá las posibles
razones y las soluciones. Resumidamente, he aquí tres mensajes:
-
¿Se pueden iniciar los procesos en las máquinas remotas?
tstmachines intenta ejecutar el comando de shel true en cada
máquina que aparece en el archivo de máquinas usando un
intérprete de comandos remoto.
-
¿Está disponible el directorio de trabajo para todas las
máquinas? Esto intenta hacer un ls de un archivo que crea
tstmachines ejecutándolo desde un intérprete de comandos remoto.
-
¿Se pueden ejecutar programas de usuario en los sistemas
remotos? Esto comprueba que las librerías compartidas y otros
componentes han sido correctamente instalados en todas las
máquinas.
Y el test requerido para cada herramienta de desarrollo:
Listado de Código 3.12: Comprobando una herramienta de desarrollo |
# cd ~
# cp /usr/share/mpich/examples1/hello++.c ~
# make hello++
# mpirun -machinefile /usr/share/mpich/machines.LINUX -np 1 hello++
|
Para mayor información acerca de MPICH, puede consultarse la
documentación de
http://www-unix.mcs.anl.gov/mpi/mpich/docs/mpichman-chp4/mpichman-chp4.htm
.
LAM
(¡Pronto Disponible!)
OMNI
(¡Pronto Disponible!)
4.
Bibliografía
El documento original se publicó en la página del Centro Adelie Linux R&D, y
se ha reproducido aquí con el permiso de los autores y del Centro Cyberlogic de Adelie
Linux R&D.
-
http://www.gentoo.org, Gentoo Technologies,
Inc.
-
http://www.adelielinux.com,
Adelie Linux Research and Development Centre
-
http://nfs.sourceforge.net,
Linux NFS Project
-
http://www-unix.mcs.anl.gov/mpi/mpich/,
Mathematics and Computer Science Division, Argonne National
Laboratory
-
http://ntp.org
-
http://www.eecis.udel.edu/~mills/,
David L. Mills, University of Delaware
-
http://www.ietf.org/html.charters/secsh-charter.html,
Secure Shell Working Group, IETF, Internet Society
-
http://www.linuxsecurity.com/,
Guardian Digital
-
http://www.openpbs.org/,
Altair Grid Technologies, LLC.
|