Está en la página 1de 5

24/8/2018 PelicanHPC: una distribución de clúster de Linux para informática paralela basada en MPI

Página 1

PelicanHPC: una distribución de clúster de Linux para informática paralela basada en MPI

Michael Creel
Departamento de Economía e Historia Económica, Edi ci B, Universitat Autònoma de Barcelona, Cerdanyola del Vallès (Barcelona)
08193, España

Dirección de correo electrónico: michael.creel@uab.es (Michael Creel)


Universitat Autònoma de Barcelona, Barcelona Graduate School of Economics y MOVE. Esta investigación fue financiada por proyectos
MICINN-ECO2009-11857 y SGR2009-578.

Preprint enviado a Elsevier 19 de enero de 2012

Página 2

Abstracto
Este documento describe la distribución PelicanHPC de GNU / Linux, que se puede usar para la creación rápida y simple de
un clúster para informática paralela basada en MPI. Se discuten diferentes modelos de uso, incluyendo clusters ad-hoc a corto plazo
clúster administrado remotamente a largo plazo y las posibilidades de mezclar hosts reales y virtualizados.
Se presentan formas de personalizar la distribución para tareas específicas y algunos ejemplos de distribuciones derivadas
son notados Documentación, rendimiento y seguridad se discuten.
Palabras clave: clúster Linux, MPI, Live CD / USB

https://translate.googleusercontent.com/translate_f 1/5
24/8/2018 PelicanHPC: una distribución de clúster de Linux para informática paralela basada en MPI

Página 3

1. Introducción

Este documento presenta y describe PelicanHPC (Creel, 2008), una distribución de GNU / Linux enfocada en MPI-
computación paralela basada en un clúster. PelicanHPC apareció por primera vez en enero de 2008, como continuación y evolución
del proyecto ParallelKnoppix (Creel, 2005), que tuvo su primer lanzamiento en 2004. El objetivo principal de esta línea de trabajo
ha sido y continúa siendo la provisión de un sistema flexible y versátil para la creación simple y rápida de un clúster
para la informática basada en MPI. Se puede crear un clúster PelicanHPC básico en menos de cinco minutos, sin especial
conocimientos técnicos. Un clúster ad hoc de este tipo puede ser útil para una serie de fines, incluido el uso de
recursos inactivos para un problema computacional urgente, que demuestra una solución computacional durante una presentación,
o para enseñar o aprender sobre clustering y computación paralela. También es posible usar PelicanHPC en un
La base de términos, con configuración automática, uso de almacenamiento permanente y con nodos de cómputo se puede iniciar automáticamente o
remotamente. Respetando el objetivo de la simplicidad, que mantiene las necesidades de mantenimiento al mínimo, el proyecto ha evolucionado
en la dirección de mejorar la flexibilidad y personalización del sistema, por lo que puede ser útil para los investigadores
en una variedad de campos ParallelKnoppix, PelicanHPC y derivados se han utilizado como herramientas de investigación en un número
de campos, incluido el procesamiento de imágenes (Dietlmeier, Begley y Whelan, 2008), física de estado sólido (San Sebastián et
Alabama. 2008), programación matemática (Grytsenko y Peratta, 2007), econometría (Creel y Kristensen, 2011),
la quimformática (Abreu et al., 2010) y la bioinformática (Chew et al., 2011). Este documento describe el sistema utilizado
para crear PelicanHPC, cómo se puede usar PelicanHPC y cómo se puede adaptar para satisfacer necesidades específicas.

2. Descripción

PelicanHPC se lanza como una imagen ISO híbrida binaria que está construida a partir de paquetes de Debian GNU ! , / Linux
". La imagen se puede copiar a un CD o dispositivo de almacenamiento USB, que luego se puede utilizar
utilizando el sistema Debian Live
para arrancar una computadora. Alternativamente, la imagen ISO se puede usar para iniciar una máquina virtual, o se puede iniciar directamente
usando un gestor de arranque capaz de arrancar imágenes ISO desde el disco (por ejemplo, grub2). Una vez que una computadora, ya sea real o virtual,
ha sido arrancado desde la imagen, se conoce como nodo frontend. Una vez que haya iniciado sesión en el usuario de la cuenta
la interfaz, uno puede ejecutar la secuencia de comandos pelican_setup, que configura la interfaz como un servidor de inicio de red (proporcionando
servicios tales como dhcp, tftp, nfs). Una vez hecho esto, otras computadoras en la red que están configuradas en BIOS para
netboot arrancará como nodos de cómputo, recibiendo sus sistemas de archivos exactamente de la misma imagen que se usó para arrancar
el nodo frontend. Es posible ejecutar el frontend y / o los nodos de cálculo como dispositivos virtuales en cualquiera de
los sistemas operativos populares y los sistemas reales y virtualizados pueden mezclarse en un clúster. Porque todas las computadoras
en el clúster se inician desde la misma imagen, las versiones de software se sincronizan automáticamente en todos los nodos.
Los nodos de cálculo obtienen sus sistemas de archivos descomprimiendo un solo archivo que es exportado por el nodo frontend.
Este esquema minimiza el tráfico de red, a expensas de mayores requisitos de memoria para los nodos de cómputo.
Además, el directorio / home del nodo frontend es NFS-shared con todos los nodos de cálculo. Nuevo software
instalado en / home en la interfaz está automáticamente disponible en todo el clúster.
PelicanHPC tiene una sola cuenta de usuario, con el usuario de nombre de usuario. No hay software de programación de colas o puestos de trabajo
incluido en las imágenes publicadas. PelicanHPC está diseñado para ser utilizado por un usuario a la vez, que tiene acceso completo
a todos los recursos del clúster. Un clúster PelicanHPC a menudo se crea cuando es necesario, y las máquinas que
forman el clúster para volver a sus usos normales cuando el trabajo de clúster está terminado. Tal escenario podría tener lugar
en las instalaciones de las salas de computadoras de una universidad, por ejemplo, donde el clúster podría usarse para la investigación de noche,
mientras que las computadoras son usadas durante el día por#.estudiantes
También es posible ejecutar un clúster PelicanHPC para
largo período de tiempo, con arranque no supervisado de todos los nodos (suponiendo que los nodos de cómputo se han configurado para
wake-on-LAN) y la recuperación de estado a través de las botas. Si los investigadores deben compartir una instalación a largo plazo,
uno puede agregar cuentas de usuario según sea necesario. El directorio / home completo se comparte entre los nodos, por lo que las nuevas cuentas de usuario

http://pareto.uab.es/mcreel/PelicanHPC/
! Debian: http://www.debian.org/
"Debian Live: http://live.debian.net/
#Vea el video http://www.youtube.com/watch?v=NBgAeKEt9uo para obtener un ejemplo.

Página 4

también también es capaz de usar el clúster. Si esto se hace, puede ser conveniente agregar software de cola. Se espera
que en la mayoría de los casos, PelicanHPC será utilizado por un único investigador, y este documento se centra en esta forma de uso.
Como se señaló, PelicanHPC evolucionó a partir del proyecto ParallelKnoppix. Las imágenes ParallelKnoppix fueron creadas por
remasterización de la distribución de Knoppix GNU / Linux (refs). El proceso de remasterización podría estar parcialmente escrito, pero
todavía involucraba una buena cantidad de trabajo interactivo, con las consiguientes posibilidades de errores y dificultades de exactitud
replicación del proceso. El proceso también requirió una buena cantidad de conocimiento por parte de la persona que realiza
el remasterizado La diferencia fundamental entre PelicanHPC y ParallelKnoppix es que el PelicanHPC
la imagen se crea al ejecutar un solo script, make_pelican. Esto puede hacerlo fácilmente cualquier usuario con moderada
conocimiento del sistema operativo Linux. El script tiene solo unas pocas dependencias (debootstrap, rsync, wget, live-
compilación) que se puede instalar fácilmente en cualquier versión de Linux. Por ejemplo, es posible ejecutar el script en una ejecución
Sistema PelicanHPC, ya que todas las dependencias ya están instaladas. Para crear una versión personalizada con diferentes paquetes,
por ejemplo, uno puede editar el script para agregar los nombres necesarios del paquete Debian y luego ejecutarlo. Esto dará como resultado
un archivo de imagen personalizado que se puede usar de la misma manera que las imágenes PelicanHPC lanzadas. Por lo tanto, PelicanHPC
es flexible y puede personalizarse fácilmente para satisfacer las necesidades de los investigadores en diferentes campos. Dos muy buenos ejemplos
de distribuciones especializadas que se crearon utilizando versiones modificadas de make_pelican sonpsbirgHPC
(Chew y otros ,
2011) y MOLA %(Abreu et al. , 2010). El script make_pelican proporciona un medio bastante fácil de usar y robusto
generando una distribución de clustering hecha a medida con cualquier software especializado que pueda ser necesario. Debido a esto

https://translate.googleusercontent.com/translate_f 2/5
24/8/2018 PelicanHPC: una distribución de clúster de Linux para informática paralela basada en MPI
ámbito
MPI de personalización,
(Open PelicanHPCinstalada),
MPI es la implementación en sí mismo
conseguirá siendo simple,
pocas campanas proporcionando
y silbatos. agrupamiento
La simplicidad y una únicabásica
de la configuración implementación de
tiene como objetivo facilitar su comprensión, modificación y fácil mantenimiento.

3. Uso

El nodo frontend primero debe ser iniciado, utilizando un CD o dispositivo de almacenamiento USB, o directamente desde la imagen ISO si
la interfaz es una máquina virtual. A medida que se inicia, se le solicita al usuario que ingrese cierta información, como la que desea
contraseña, o el dispositivo de red a usar para el clúster, si hay más de uno disponible. Al finalizar el arranque,
la máquina está en el indicador de inicio de sesión de la consola de Linux. Uno inicia sesión con el usuario de nombre de usuario y la contraseña que fue
suministrado. Entonces uno puede ingresar al entorno de escritorio gráfico escribiendo startx o continuar en la consola. A
configurar el clúster, uno ingresa pelican_setup. Este script configura servicios como dhcp, tftp y nfs. Cuando
esto se hace, aparece un mensaje para activar los nodos de computación. Luego, los ciclos frontend, verificando y reportando
cuántos nodos de cálculo se han iniciado. Cuando todos se inician, el usuario indica que es así, y un MPI abierto básico
el archivo bhosts está escrito. Este archivo se puede modificar fácilmente para lograr un mejor equilibrio de carga en un clúster heterogéneo.
A continuación, se compila un sencillo programa Fortran MPI que calcula el número total de operaciones disponibles.
ejecutar, suponiendo una ranura por nodo. Esto logra el objetivo simple de probar que el clúster es funcional. Después de este,
Aparece el mensaje de la consola y la configuración está lista. Desde el arranque de la interfaz hasta completar el proceso toma aproximadamente
cinco minutos.
Es muy útil si el nodo frontend tiene dos dispositivos de red, uno para el clúster y otro para el acceso a Internet.
Si el frontend es una máquina virtual, uno puede crear dos dispositivos de red virtuales, uno que use NAT, que permita ssh a
y desde la interfaz virtual, y la que utiliza redes en puente, para conectarse a la red del clúster.
Es muy importante que la interfaz de red utilizada para el clúster esté aislada de cualquier red pública, o el dhcp
el servidor que se ejecuta en el nodo frontend PelicanHPC puede interferir con la red pública.
PelicanHPC hereda sus características del sistema Debian Live. Este sistema incluye el módulo de kernel aufs,
que es un sistema de archivos en capas que permite modificaciones a un sistema de archivos que se origina a partir de un medio de solo lectura como
como un CD. Debido a esto, es posible instalar el software de la manera habitual en la interfaz fronteriza de PelicanHPC en ejecución.
nodo.
Ejemplo 1. Para instalar el editor de emacs en la interfaz, ejecute
sudo apt - get install emacs

ps
birgHPC: http://birg1.fbb.utm.my/birghpc/
%MOLA: http://www.esa.ipb.pt/ ~ ruiabreu / mola /

Página 5

para instalar un editor que no se proporciona en las imágenes publicadas.

Lo mismo se aplica a los nodos de cómputo, que comparten la conexión a Internet de la interfaz usando enmascaramiento de IP:
se puede acceder desde la interfaz por ssh, y el software también se puede instalar en cada nodo de cómputo. los
El paquete dsh está instalado, lo que simplifica la ejecución de un conjunto de comandos en cada uno de un conjunto de hosts.

Ejemplo 2. Para instalar la biblioteca científica de GNU en todos los nodos, uno puede ejecutar
dsh - f / home / usuario / tmp / bhosts sudo apt - get - y install libgsl0 - dev
en el nodo frontend.

Esto proporciona una solución simple para agregar un pequeño número de paquetes en el y. Los paquetes agregados de esta manera
no estará disponible después de un reinicio, sin embargo, porque las superposiciones de aufs viven en la RAM. Para paquetes recién instalados para sobrevivir
un reinicio, hay dos opciones. Esta primera, que se recomienda para los usuarios que tengan la intención de utilizar PelicanHPC en un
término, es para preparar una imagen personalizada, como se describe en la siguiente sección. El segundo, que puede ser más
adecuado para un proyecto que requiere agregar un número limitado de paquetes, es usar almacenamiento permanente para / home,
e instalar un nuevo software en un destino en / home. Como / home es NFS compartido en todos los nodos, hay una sola instalación allí
en la interfaz proporciona el nuevo software para todo el clúster. El interruptor de configuración --with-prefix = / home
alcanzará este objetivo para mucho software compilado de la fuente.
Para usar el almacenamiento permanente, hay dos métodos. El primero es ingresar el nombre del dispositivo (p. Ej., / Dev / sda4) de un
partición formateada ext2, ext3 o ext4 en el momento del arranque, en lugar de aceptar el valor predeterminado de usar tmpfs (en RAM) para
/casa. Si esto se hace, entonces la partición especificada se monta en / home, y todos los cambios en / home sobrevivirán
un reinicio. El software instalado allí estará disponible permanentemente. Una opción más sofisticada apareció por primera vez en
PelicanHPC v2.2, gracias a Robert Petry. En este momento, se agregó el mecanismo pelican_config. En el arranque,
PelicanHPC escanea para una partición etiquetada PELHOME. Si se encuentra este nombre de volumen, se le preguntará al usuario como
si la partición debe o no estar montada en / home. A continuación, como es habitual en el momento del arranque, se le preguntará al usuario
si el software de ejemplo debe copiarse en / home. Si esto se hace, el archivo pelican_config, entre otros,
se copiará en el almacenamiento permanente. El contenido de pelican_config se puede editar para modificar el comportamiento
de PelicanHPC en el arranque y el tiempo de configuración. Es posible configurar el automount de la partición PELHOME, automático
configuración, adición de una lista de nombres de usuario, configuración de una dirección IP estática, uso de una red diferente a la
predeterminado 10.11.12.x, uso de un firewall, si las solicitudes deben esperar a la intervención del usuario o no, y una cantidad de
otras características. El archivo está auto-documentado, y los usuarios serios deben leerlo cuidadosamente, ya que proporciona características que
puede hacer que el clúster sea mucho más flexible y poderoso cuando se usa de forma no transitoria.

Ejemplo 3. Los medios para asignar una etiqueta dependen del tipo de sistema de archivos de la partición. Para asignar el
etiqueta de volumen PELHOME para la partición / dev / sda6 que está formateada como ext2 / ext3 / ext4, se puede ejecutar
sudo / sbin / e2label / dev / sda6 "PELHOME"

mientras se ejecuta PelicanHPC. En el próximo reinicio, se encontrará la partición.

Después de arrancar y configurar el clúster utilizando pelican_setup, el clúster está listo para su uso. El MPI abierto
implementación de MPI está instalado en las imágenes publicadas, y el archivo de fantasmas creado en el momento de la instalación se encuentra en
/ home / usuario / tmp / bhosts. Este archivo simplemente enumera las máquinas en el clúster por dirección IP, sin intento de carga
equilibrio. Los usuarios deben editar el archivo según corresponda para el hardware del clúster. Esto es importante para obtener
buen rendimiento si los hosts son heterogéneos, por ejemplo, con diferentes números de núcleos. Si los nodos de cálculo son
agregado o eliminado después de la configuración inicial, uno puede ejecutar pelican_restarthpc para volver a configurar el entorno MPI básico,
incluyendo la re-generación del archivo bhosts.

Ejemplo 4. Para obtener una lista de los hosts en el clúster, uno puede ejecutar
mpirun - hostfile ~ / tmp / bhosts nombre de host

Página 6

4. Personalización

https://translate.googleusercontent.com/translate_f 3/5
24/8/2018 PelicanHPC: una distribución de clúster de Linux para informática paralela basada en MPI
Las versiones PelicanHPC contienen la implementación Open MPI de MPI, así como un conjunto razonablemente completo de
herramientas y bibliotecas para compilar aplicaciones C, C ++ y Fortan. GNU / Octave con extensiones MPI y bastante
También se proporciona un amplio conjunto de ejemplos relacionados con la investigación y la enseñanza del autor, pero estos ejemplos
será de interés para un grupo limitado de usuarios. Python con mpi4py también se proporciona, y se encuentran ejemplos en
/ home / usuario / mpi4py- $ VERSION / demo /. Los ejemplos de Octave y Python pueden ser de interés para algunos usuarios,
pero la mayoría de los usuarios con necesidades específicas requerirán un software que no está instalado en las imágenes publicadas. Como se notó
más arriba, las imágenes PelicanHPC se crean ejecutando un solo script, make_pelican. Este script tiene un pequeño conjunto de
dependencias: wget, rsync, deboostrap y live-build versión 2.x (a partir de esta redacción, las versiones futuras de
versiones más nuevas de live-build). Todos estos paquetes pueden instalarse fácilmente en cualquier sistema Linux, y son
instalado en las versiones de PelicanHPC. Para construir una imagen, uno solo ejecuta el script (como root o usando sudo). Un internet
se requiere conexión, para descargar paquetes desde espejos de Debian. Además, una buena cantidad de espacio en disco (varios GB
es suficiente) es necesario para acomodar los paquetes descargados y para construir la imagen. Para ejecutar el script en un
corriendo el sistema PelicanHPC, lo más probable es que necesite usar almacenamiento permanente, como se discutió anteriormente, porque
la mayoría de los sistemas no tendrán suficiente RAM para construir una imagen en la memoria.
Ejemplo 5. Para ejecutar la versión actual en este momento, haga
sudo sh ./make_pelican - v2. 6
en un sistema corriendo PelicanHPC
La secuencia de comandos make_pelican está principalmente documentada por sí misma, y también se analiza en el Tutorial de PelicanHPC (ver el
siguiente sección sobre Documentación). En el script, uno puede especificar la arquitectura (amd64 o i386), el Debian
release (estable es el valor predeterminado), réplica Debian para usar y la lista de paquetes Debian para incluir en la imagen. Todas
de estas opciones están en la parte superior de la secuencia de comandos, y son fáciles de localizar.
El script busca un directorio ./pelicanhome en el directorio de compilación (la ubicación de make_pelican). Todo
los contenidos de este directorio se copian a la imagen, y estarán en / home / user después de que la imagen que se genera sea
arrancado Además, si este directorio contiene un script make_pelicanhome.sh, este script se ejecutará durante
el proceso de compilación para realizar las acciones necesarias, como la descarga del código fuente, la compilación del código fuente, etc.
Esto proporciona un medio para incluir software y datos que no forman parte de Debian en una imagen PelicanHPC. los
script se ejecuta en el entorno chroot que contiene el sistema de archivos que aparecerá en la imagen, en el último
etapa antes de que se haga la imagen. Por lo tanto, todas las bibliotecas y paquetes que se incluyeron en los paquetes Debian serán
disponible para la compilación de software especial que no está en Debian. El software también se puede instalar en cualquier ubicación
como / usr, / opt o / usr / local, no tiene que instalarse en / home. Octave, los ejemplos de Octave, y
mpi4py están incluidos en las imágenes publicadas utilizando este mecanismo, y el archivo pelicanhome.tar.bz2 que está
disponible en la página web de PelicanHPC proporciona un ejemplo de cómo se puede usar el mecanismo.
Ejemplo 6. Las siguientes líneas de código, contribuidas por Stanislav Godi²ka de la Universidad Técnica Eslovaca de
La tecnología se encuentra en el script make_pelicanhome.sh que se usa de manera predeterminada. Si estas líneas no están comentadas, entonces
un módulo de NIC que no es parte de Debian estará disponible. Una estrategia similar podría usarse para agregar otro kernel
módulos.
# Encabezados de Linux (para la instalación del controlador Atheros)
# descomentar debajo de esta línea
# cd / etc / skel
# wget http://launchpadlibrarian.net/86474951/linux - encabezados - 2.6.32 - 37_2.6.32 - 37.81 _todos. debutante
# dpkg - i linux - encabezados - 2.6.32 - 37_2.6.32 - 37.81 _todos. debutante
# wget http://launchpadlibrarian.net/86453234/linux - encabezados - 2.6.32 - 37 - generic_2 .6.32 - 3 7. 8 1 _amd64. debutante
# dpkg - i linux - encabezados - 2.6.32 - 37 - generic_2 .6.32 - 3 7. 8 1 _amd64. debutante
## Atheros 81 Controlador de red familiar
# cd / etc / skel
# mkdir AR81Family
# wget http://k003.kiwi6.com/hotlink/5h69ss0y70/ar81family_linux_v1_0_1_14_tar.gz

Página 7

# mv ar81family_linux_v1_0_1_14_tar.gz AR81Family
# cd AR81Family
# tar zxvf ar81family_linux_v1_0_1_14_tar.gz
# make install
# modprobe atl1e

5. Limitaciones y precauciones

Se necesita cierta precaución al configurar un clúster PelicanHPC, especialmente si uno tiene poca experiencia con
redes. El nodo frontend PelicanHPC comienza a actuar como un servidor de inicio de red después de ejecutar pelican_setup.
Esto significa que proporcionará una dirección IP a cualquier cliente que solicite una. Si la red del clúster no es
aislado de redes más grandes, el servicio dhcp PelicanHPC puede interferir con el servicio dhcp que se ejecuta en el
una red más grande, causando problemas de conectividad para los usuarios de la red más grande.
Una segunda precaución es que los intentos de utilizar el almacenamiento permanente se deben realizar solo después de que uno entienda qué es
el nombre del dispositivo Linux dado al disco duro o las particiones de almacenamiento USB. En su configuración predeterminada, PelicanHPC lo hace
no use almacenamiento permanente, y no hay riesgo de pérdida de datos. Si uno usa almacenamiento permanente, es posible
para borrar o comprometer datos en los dispositivos de almacenamiento. Usuarios con poca experiencia con el sistema operativo Linux
debe ser especialmente cuidadoso. Es aconsejable garantizar que la información importante se haya respaldado correctamente.
Una advertencia final se refiere a la seguridad y la privacidad. El usuario de un clúster PelicanHPC puede acceder fácilmente a todos los datos en todos
de las máquinas en el clúster Por ejemplo, un instructor de una clase debe tener cuidado al permitir que los estudiantes usen
máquinas que contienen datos confidenciales para hacer un clúster, ya que los estudiantes podrán acceder a los datos mientras se ejecutan
PelicanHPC. Con respecto a las amenazas externas, existe poco riesgo de acceso no autorizado desde redes externas como
siempre que se use una contraseña segura. PelicanHPC usa un firewall y un software que bloquea las direcciones IP de las cuales demasiados
intentos fallidos de inicio de sesión se originan.

6. Documentación y soporte
&(Creel, 2008) que está incluido en el lanzamiento
La documentación principal para PelicanHPC es el tutorial de PelicanHPC
imágenes y también está disponible como una página web. El Tutorial explica cómo configurar y usar un clúster, así como también cómo
para hacer imágenes personalizadas La documentación también es provista por archivos README en lugares apropiados en la imagen,
así como por comentarios en guiones. Por ejemplo, make_pelican y pelican_config se comentan ampliamente.
' . Los
El soporte está disponible principalmente a través del foro de usuario
proyectos ParallelKnoppìx y PelicanHPC han sido
en existencia continua desde 2004, y continuará existiendo en una forma similar para el futuro previsible, por lo que el nivel
de soporte que existe actualmente seguirá estando disponible.

7. Rendimiento y ejemplos

Un clúster PelicanHPC es un clúster normal de Beowulf para MPI después de que se haya realizado toda la configuración. Es posible
use almacenamiento permanente, espacio de intercambio y particiones de reutilización. El rendimiento de un clúster PelicanHPC depende de la
hardware que se utiliza, y con el ajuste adecuado del entorno MPI, especialmente si las máquinas que componen
el grupo es heterogéneo. Ajuste del entorno MPI, por ejemplo editando el archivo bhosts utilizado por Open
MPI, no es un problema específico de PelicanHPC, y por esta razón no se trata aquí. Uno puede obtener casi
aceleraciones lineales para problemas apropiados.
Ejemplo 7. PelicanHPC contiene varios ejemplos de scripts de Octave de GNU que realizan varias tareas en
econometría y estadística, incluida la regresión de kernel no paramétrica multivariante. Para ejecutar el código de ejemplo para
Regresión del kernel en un solo núcleo, uno entra en Octave y se ejecuta

&Tutorial PelicanHPC: http://pareto.uab.es/mcreel/PelicanHPC/Tutorial/PelicanTutorial.html


' Foro de usuario: http://pelicanhpc.788819.n4.nabble.com/

https://translate.googleusercontent.com/translate_f 4/5
24/8/2018 PelicanHPC: una distribución de clúster de Linux para informática paralela basada en MPI

Página 8

kernel_example (5000, falso, falso)

Para ejecutar en los 8 núcleos de una máquina de doble núcleo dual, se ejecuta uno (desde la terminal, no desde el indicador de Octave)
mpirun - np 8 octava - q - eval "kernel_example (5000, true, false)"

Para ejecutar en los 24 núcleos de 3 máquinas de doble núcleo dual en un clúster, se ejecuta uno
mpirun - np 24 - h ~ / tmp / bhosts octava - q - eval "kernel_example (5000, true, false)"

Los tiempos para estos tres comandos son 10.41 segundos, 1.77 segundos y 0.53 segundos, respectivamente, lo que muestra una buena
escalar el rendimiento para este problema. Para aprender lo que hace el ejemplo y cómo se implementa la regresión del kernel,
uno puede ingresar a Octave y luego ingresar ayuda kernel_example o ayudar kernel_regression.

Una serie de resultados similares para una variedad de problemas son reportados por Creel (2005) utilizando ParallelKnoppix,
que funcionó fundamentalmente de la misma manera que PelicanHPC. Abreu et al. (2010) proporcionan rendimiento
mediciones (véase especialmente la Figura 2) en el contexto del cribado virtual de moléculas pequeñas, utilizando MOLA, un
versión personalizada y mejorada de PelicanHPC. Chew et al. (2011) encuentran que el rendimiento de un PelicanHPC
el clúster puede ser tan bueno como el de un clúster instalado tradicionalmente que usa el mismo hardware (consulte su Tabla 1).
Una posibilidad interesante que surge cuando se construye una imagen Live CD / USB es la de incluir complicadas
entornos de software que son difíciles o requieren mucho tiempo para reproducirse, especialmente por parte de personas no especializadas que pueden estar
usuarios de diferentes sistemas operativos. Un investigador puede incluir todo el software necesario para replicar los resultados en un
Imagen de PelicanHPC, y esto puede permitir que otros investigadores repliquen y extiendan los resultados de inmediato, sin el
necesidad de instalar y configurar una larga lista de dependencias de software. También puede ser una herramienta muy útil para demostraciones
en seminarios o conferencias. Para dar un ejemplo de esta posibilidad, y para dar más evidencia del desempeño
de un clúster PelicanHPC, podemos considerar el archivo runme.sh que se proporciona en las imágenes PelicanHPC. Este archivo
permite la replicación de los resultados encontrados en la Tabla 7 en Creel y Kristensen (2011). Para obtener estos resultados, uno
necesita tener instalado GNU Octave , MPI abierto , las extensiones de MPI para Octave ! , el paquete Dynare para
" y la ANN
resolver modelos estocásticos no lineales dinámicos # biblioteca para encontrar vecinos más cercanos a los puntos, como
así como código adicional proporcionado por el autor. Dada esta lista de artículos, sería difícil replicar los resultados
si todo fuera a ser instalado desde cero. Sin embargo, dada una copia reciente de PelicanHPC, es muy fácil
replicar los resultados, ya que uno solo ejecuta el script runme.sh. Este medio de compartir código es gratuito y abierto, pero
también es práctico y fácil de usar, y puede conducir a una difusión más rápida y efectiva de los resultados científicos.
En un clúster heterogéneo formado por 3 máquinas de doble núcleo dual (24 núcleos), la secuencia de comandos se ejecuta en 48 segundos, mientras que en un
solo núcleo lleva 570 segundos. Esta aplicación implica una buena cantidad de archivos de E / S durante la ejecución, y una gran cantidad de
porción que no está paralelizada, por lo tanto, es de esperar una escala menor que la lineal.

8. Conclusión

Este documento acaba de presentar PelicanHPC. La característica más obvia de esta solución de agrupamiento es la rapidez
con el que puede poner a disposición un clúster. Las características menos obvias incluyen la personalización del esquema, que
permite que se adapte para satisfacer las necesidades de una gran variedad de usuarios y las posibilidades de usar PelicanHPC para
crear un clúster que pueda administrarse de forma remota y utilizarse a largo plazo. Este documento ha intentado
señale estas características menos obvias, brinde ejemplos y brinde fuentes de información adicional.

La ruta completa del archivo en PelicanHPC es /home/user/Econometrics/MyOctaveFiles/Econometrics/IL/DSGE_PO/runme.sh


Octava de GNU: http://www.gnu.org/software/octave/
Open MPI: http://www.open-mpi.org/
! Abra extensiones de MPI para Octave: http://octave.sourceforge.net/openmpi_ext/index.html
" Dynare: http://www.dynare.org/
# ANN: http://www.cs.umd.edu/ ~ mount / ANN /

Página 9

[1] Abreu, R., Froufe, H., Queiroz, M., Ferreira, I. (2010) MOLA: un sistema de autoconfiguración de arranque
para el cribado virtual utilizando AutoDock4 / Vina en clústeres de computadoras, Journal of Cheminformatics, 2010,
2:10.
[2] Teong Han Chew, Kwee Hong Joyce-Tan, Farizuwana Akma y Mohd Shahir Shamsir (2011),
birgHPC: creación de clusters de computación instantánea para bioinformática y dinámica molecular, Bioin-
formatics, 27, 1320-1321.
[3] Creel, M. (2005) Cálculos paralelos fáciles de usar con ejemplos econométricos, Computational Eco-
NOMICS , 26, 107-128.
[4] Creel, M. (2008) PelicanHPC Tutorial, UFAE y IAE Working Papers, 74908,
http://econpapers.repec.org/RePEc:aub:autbar:749.08.
[5] Creel, M. y D. Kristensen (2011) Inferencia de probabilidad indirecta, Documento de trabajo de Barcelona GSE
Series, 558, http://research.barcelonagse.eu/tmp/working_papers/558.pdf.
[6] Dietlmeier, J, S. Begley y P. Whelan (2008) Agrupación rentable de HPC para visión artificial
aplicaciones, IMVIP '08 Proceedings of the International Machine Vision 2008 and Image Processing
Conferencia, 97-102.
[7] Grytsenko, T. y Peratta (2007) Evaluación de implementación y rendimiento de un solucionador paralelo
para sistemas lineales dispersos de ecuaciones y reglas para una solución óptima en Data Mining VIII: Data, Text
y Web Mining y sus aplicaciones comerciales, A. Zanasi y C. Brebbia, eds., Transacciones WIT
en Tecnologías de la Información y la Comunicación, WIT Press.
[8] San Sebastián, I, J. Aldazabal, C. Capdevila, C. García-Mateo (2008) Simulación de difusión de Cr Fe
sistemas bcc a nivel atómico usando un algoritmo de recorrido aleatorio, estado físico solidi (a), 205, 1337 1342.

https://translate.googleusercontent.com/translate_f 5/5