27
LABORATORIO : Simulación y Mecánica Computacional TRABAJO : Instalación de un Super-Servidor de procesamiento paralelo basado en MPI Idioma: Español Plataforma de Hardware: AMD64 Sistema Operativo: Debian Versión: 5.0 (Lenny) Fecha (dd/mm/aaaa): 17/09/2009 Página 1 de 27

Instalacin de un Super-Servidor de procesamiento paralelo … · 2010-01-30 · computadora mediante un intérprete de comandos, y también puede redirigir el tráfico de X para poder

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Instalacin de un Super-Servidor de procesamiento paralelo … · 2010-01-30 · computadora mediante un intérprete de comandos, y también puede redirigir el tráfico de X para poder

LABORATORIO

Simulacioacuten y Mecaacutenica Computacional

TRABAJO

Instalacioacuten de un Super-Servidor de procesamiento paralelo basado en MPI

Idioma Espantildeol Plataforma de Hardware AMD64 Sistema Operativo Debian Versioacuten 50 (Lenny) Fecha (ddmmaaaa) 17092009

Paacutegina 1 de 27

Proacutelogo

La idea de este documento es la de guiar al usuario para que pueda utilizando herramientas de software y hardware standard montar un superservidor de procesamiento paralelo basado en el standard Open MPI

Para esto se han utilizado seis PCs con procesadores AMD64 dual core interconectadas entre siacute utilizando una red Ethernet de 100Mbps a traveacutes de un switch luego haciendo funcionar una de ellas como servidor maestro y las otras cinco como servidores secundarios

Se veraacute a continuacioacuten que los pasos son sencillos pudiendo implementarse en cualquier plataforma de procesadores y con cualquier cantidad de PCs

Paacutegina 2 de 27

i 1 Prerrequisitos de hardware

11 Prerrequisitos miacutenimos

12 Prerrequisitos requeridos

2 Instalacioacuten del software necesario

21 Instalacioacuten del sistema operativo Debian versioacuten 50 (Lenny)

22 Instalacioacuten de paquetes requeridos en el servidor primario o maestro y en los servidores secundarios

221 Instalacioacuten de SSH (Secure Shell)

222 Instalacioacuten de RSSH (Restricted Secure Shell)

223 Instalacioacuten del paquete NFS-KERNEL-SERVER

224 Instalacioacuten de los paquetes LIBOPENMPI-DEV LIBOPENMPI1 OPENMPI-BIN OPENMPI-COMMON y OPENMPI-DOC

225 Instalacioacuten y desinstalacioacuten de otros paquetes

226 Instalacioacuten de los paquetes en los servidores secundarios

3 Configuracioacuten de servidores primario o maestro y secundarios 31 Verificacioacuten de directorios y clave puacuteblica en el servidor

primario o maestro

32 Regeneracioacuten de archivos de claves puacuteblicas en el servidor primario o maestro

33 Configuracioacuten de los servidores secundarios (vieacutendose algo similar al print screen)

34 Modificacioacuten de los archivos de configuracioacuten del servidor primario o maestro

35 Prueba de conexioacuten y configuracioacuten desde el servidor primario o maestro a los servidores secundarios

4 Probando nuestro superservidor

41 Programa ldquoPicrdquo

42 Compilacioacuten del programa ldquoPicrdquo con MPICC

43 Ejecucioacuten del programa ldquoPicrdquo en forma local con MPIRUN

Paacutegina 3 de 27

44 Ejecucioacuten del programa ldquoPicrdquo en forma multiproceso con MPIRUN

45 Visualizacioacuten de los procesos ejecutados en forma paralela con TOP

5 Fuentes consultadas y sitios de intereacutes

6 Autores

7 Agradecimientos

Esquema de conexioacuten

Servidor Principal 192168131

INTERNET Servidor Secundario

192168134 Servidor Secundario

192168133

Servidor Secundario 192168135

Servidor Secundario 192168136 Servidor Secundario

192168132

Paacutegina 4 de 27

1 Prerrequisitos de hardware 11 Prerrequisitos miacutenimos

Una PC con conexioacuten a internet permanente para poder descargar el Small CD de Debian Lenny [httpwwwdebianorgdistribnetinstsmallcd]

Grabadora de CD

Un CD en blanco para grabar dicha imagen descargada

Realizar la instalacioacuten de Linux Debian versioacuten 50 (Lenny) en una particioacuten adicional de la PC o instalarlo en una PC diferente [httpwwwdebianorgreleasesstablei386indexhtmles]

Para todos los pasos anteriores conexioacuten a internet permanente

12 Prerrequisitos requeridos

Una PC con conexioacuten a internet permanente para poder descargar el Small CD de Debian Lenny [httpwwwdebianorgdistribnetinstsmallcd]

Grabadora de CD

Un CD en blanco para grabar dicha imagen descargada

Realizar la instalacioacuten de Linux Debian versioacuten 50 (Lenny) en dos o maacutes PCs [httpwwwdebianorgreleasesstablei386indexhtmles]

Para todos los pasos anteriores conexioacuten a internet permanente

Paacutegina 5 de 27

2 Instalacioacuten del software necesario

21 Instalacioacuten del sistema operativo Debian versioacuten 50 (Lenny)

Debido a que estaacute fuera del alcance del presente mini How To no se indican los pasos para la instalacioacuten de Debian versioacuten 50 (Lenny) en este punto se recomienda consultar el manual de instalacioacuten en el siguiente link [httpwwwdebianorgreleasesstablei386indexhtmles]

22 Instalacioacuten de paquetes requeridos en el servidor primario o maestro y en los servidores secundarios

Para esto utilizaremos el comando APT (Advanced Package Tool) en un terminal ingresando como usuario Root En nuestro caso estamos utilizando la intefaz graacutefica Gnome 2223

Estos paquetes deben instalarse en todas las maacutequinas que formen parte del superservidor tener en cuenta que soacutelo una de las PCs funcionaraacute como servidor primario o maestro (en nuestro caso la que tiene nuacutemero IP 192168131) teniendo las demaacutes PCs la funcioacuten de servidores secundarios

221 Instalacioacuten de SSH (Secure Shell)

Descripcioacuten del paquete

SSH (Secure SHell en espantildeol inteacuterprete de oacuterdenes segura) es el nombre de un protocolo y del programa que lo implementa y sirve para acceder a maacutequinas remotas a traveacutes de una red Permite manejar por completo la computadora mediante un inteacuterprete de comandos y tambieacuten puede redirigir el traacutefico de X para poder ejecutar programas graacuteficos si tenemos un Servidor X (en sistemas Unix y Windows) corriendo

Ademaacutes de la conexioacuten a otras maacutequinas SSH nos permite copiar datos de forma segura (tanto ficheros sueltos como simular sesiones FTP cifradas) gestionar claves RSA para no escribir claves al conectar a las maacutequinas y pasar los datos de cualquier otra aplicacioacuten por un canal seguro tunelizado mediante SSH

La instalacioacuten de este programa es necesario para que las computadores intercambien informacioacuten en forma segura

Paacutegina 6 de 27

Instalacioacuten del paquete (vieacutendose algo similar al print screen)

root192168131 apt-get install openssh-server

222 Instalacioacuten de RSSH (Restricted Secure Shell)

Descripcioacuten del paquete

RSSH es un shell restringido que provee acceso limitado a un server viacutea SSH incluyendo soporte a RDIST RSYNC y CVS Un ejemplo de utilizacioacuten es si se tuviese un servidor en el cual soacutelo se quiere que los usuarios copien ficheros con el somando SCP (Secure Copy) sin proveer acceso al shell puede usarse RSSH para hacerlo

Paacutegina 7 de 27

Instalacioacuten del paquete (vieacutendose algo similar al print screen)

root192168131 apt-get install rssh

223 Instalacioacuten del paquete NFS-KERNEL-SERVER

Descripcioacuten del paquete

MPI necesita encontrar especiacuteficamente el programa que se quiere ejecutar en los nodos (son nodos servidores primadior y secundarios) del superservidor NFS (Net File System) provee un directorio puacuteblico en cada nodo del superservidor para ejecutar el programa que el usuario quiera ejecutar

Paacutegina 8 de 27

Instalacioacuten del paquete (vieacutendose algo similar al print screen)

root192168131 apt-get install nfs-kernel-server

224 Instalacioacuten de los paquetes LIBOPENMPI-DEV LIBOPENMPI1 OPENMPI-BIN OPENMPI-COMMON y OPENMPI-DOC

Descripcioacuten de los paquetes

MPI (Message Passing Interface Interfaz de Paso de Mensajes) es un estaacutendar que define la sintaxis y la semaacutentica de las funciones contenidas en una biblioteca de paso de mensajes disentildeada para ser usada en programas que exploten la existencia de muacuteltiples procesadores

El paso de mensajes es una teacutecnica empleada en programacioacuten concurrente para aportar sincronizacioacuten entre procesos y permitir la exclusioacuten mutua de manera similar a como se hace con los semaacuteforos monitores etc

Su principal caracteriacutestica es que no precisa de memoria compartida por lo que es muy importante en la programacioacuten de sistemas distribuidos

Paacutegina 9 de 27

Instalacioacuten del paquete (vieacutendose algo similar al print screen)

root192168131 apt-get install libopenmpi-dev libopenmpi1 openmpi-bin openmpi-common openmpi-doc

225 Instalacioacuten y desinstalacioacuten de otros paquetes

En nuestro sistema aparte de los mencionados se han instalado adicionalmente los siguientes paquetes (apt-get install NOMBRE-PAQUETE)

mc

gfortran

build-essentials

popularity-contest

ntp

ntpdate

sshguard

autossh

Paacutegina 10 de 27

iproute

iptables

smartmontools

Desinstalaacutendose los siguientes paquetes (apt-get remove NOMBRE PAQUETE)

network-manager

avahi-daemon

226 Instalacioacuten de los paquetes en los servidores secundarios

Realizar los pasos 221 222 223 224 y 225 en las PCs que vayan a funcionar como servidores secundarios en nuestro caso las PCs con nuacutemeros IP desde el 192168132 al 192168136

Recordemos que los pasos son los siguientes

221 root19216813236 apt-get install openssh-server

222 root19216813236 apt-get install rssh

223 root19216813236 apt-get install nfs-kernel-server

224 root19216813236 apt-get install libopenmpi-dev libopenmpi1 openmpi-bin openmpi-common openmpi-doc

225 Instalacioacuten y desinstalacioacuten de paquetes adicionales

Paacutegina 11 de 27

3 Configuracioacuten de servidores primario o maestro y secundarios La configuracioacuten se requiere tanto en el servidor primario o maestro como en los servidores secundarios Esta configuracioacuten se requiere para que el sistema quede en funcionamiento

31 Verificacioacuten de directorios y clave puacuteblica en el servidor primario o maestro

Una vez finalizada la instalacioacuten todos los paquetes deberiacuteamos poder ingresar al directorio ldquorootsshrdquo para ver su contenido (vieacutendose algo similar al siguiente print screen)

Paacutegina 12 de 27

32 Regeneracioacuten de archivos de clave puacuteblica en el servidor primario o maestro

Este paso soacutelo debe hacerse en el servidor primario o maestro Si bien dentro del directorio ldquorootsshrdquo en el servidor primario (IP 192168131) podemos ver la existencia de los archivos ldquoid_rsardquoe ldquoid_rsapubrdquo que son los que contienen la clave puacuteblica para acceder al mismo en forma segura utilizando SSH generaremos nuevamente las mismas Esta clave es las que serviraacute luego para poder hacer que las PCs que funcionan como servidores secundarios se conecten al servidor primario en forma segura y sin necesidad de tipear ninguacuten password para ello (Passwordless Connection)

Regeneracioacuten de los archivos de clave puacuteblica en el servidor primario o maestro (vieacutendose algo similar al print screen)

root192168131 ssh-keygen -t rsa

Paacutegina 13 de 27

33 Configuracioacuten de los servidores secundarios (vieacutendose algo similar al print screen)

Una vez generado el archivo que contiene la clave puacuteblica (id_rsapub) se copia a las demaacutes PCs o servidores secundarios (en nuestro caso nuacutemeros IP desde el 192168132 al 192168136) para que los mismos puedan acceder a ejecutar los comandos que el usuario necesite sin requerir password (Passwordless Connection)

Este paso debe repetirse por cada servidor secundario por lo que la sintaxis vista en el print screen maacutes abajo cambiaraacute en su segunda parte de ldquoroot192168132homenombre-usuarioid_rsaserverpubrdquo a ldquoroot192168133homenombre-usuarioid_rsaserverpubrdquo y asiacute sucesivamente hasta llegar al nuacutemero IP 192168136

Paacutegina 14 de 27

34 Modificacioacuten de los archivos de configuracioacuten del servidor primario o maestro

Debemos modificar en el servidor primario o maestro el archivo ldquoetcopenmpiopenmpi-default-hostfilerdquo Este archivo es el que contiene tanto los nuacutemeros IP de todos los nodos de nuestro superservidor (recordar que nodo es tanto el servidor primario como los secundarios) como la cantidad de procesadores que tiene cada nodo es de 2 pondremos este valor

Paacutegina 15 de 27

Agregando lo siguiente al archivo

192168231 slots=2

192168232 slots=2

192168233 slots=2

192168234 slots=2

192168235 slots=2

192168236 slots=2

Como dato adicional y a modo de ejemplo mostraremos como deben modificarse los siguientes archivos agregando lo que figura debajo de cada tiacutetulo (no entraremos en detalle en cuanto a la explicacioacuten de cada uno respecta debido a que forman parte de la configuracioacuten standard de la red del sistema operativo Linux Debian versioacuten 50 (Lenny))

Archivo ldquoetcresolvconfrdquo

domain lanfrhutneduar

Paacutegina 16 de 27

search lanfrhutneduar frhutneduar

nameserver 19216821

nameserver 17021017154

Archivo ldquoetchostsrdquo

192168231 symc01nnfrhutneduar symc01

192168232 symc02nnfrhutneduar symc02

192168233 symc03nnfrhutneduar symc03

192168234 symc04nnfrhutneduar symc04

192168235 symc05nnfrhutneduar symc05

192168236 symc06nnfrhutneduar symc06

Archivo ldquoetcnetworkinterfacesrdquo

iface eth0 inet static

address 192168231

netmask 2552552550

gateway 19216821

35 Prueba de conexioacuten y configuracioacuten desde el servidor primario o

Paacutegina 17 de 27

maestro a los servidores secundarios

Ahora deberemos realizar los siguientes pasos en cada servidor secundario (en nuestro casos desde el IP 192168132 al IP 192168136)

Realizamos una prueba de conexioacuten viacutea SSH para ver si funciona la conectividad sin password (Passwordless Connection) desde el servidor primario (IP 192168131) al primer servidor secundario (IP 192168132) Una vez que SSH encuentre el servidor secundario nos solicitaraacute el password del usuario ROOT por lo que deberemos escribirlo para ingresar al mismo

Modificar los permisos del directorio ldquorootsshrdquo ponieacutendolos en 700

Agregar el pasword puacuteblico al archivo ldquorootsshauthorized_keysrdquo

Cambiar los permisos del archivo ldquoauthorized_keysrdquo ponieacutendolos en 644

Una vez finalizados estos pasos deberemos hacer lo mismo con los demaacutes

servidores secundarios vieacutendose algo similar al siguiente print screen

Paacutegina 18 de 27

4 Probando nuestro superservidor Asumimos en este paso que ya deberiacuteamos tener instalado apropiadamente nuestro superservidor con capacidades de procesamiento paralelo del tipo MPI ahora usted pude probar el mismo con un programa de testeo que calcularaacute el nuacutemero PI

El programa a utilizarse seraacute el contenido en el archivo ldquoPicrdquo el mismo es un programa simple escrito en lenguaje ldquoC que reporta el nuacuteemro PI de cada nodo sobre el superservidor usando los servicios MPI

41 Para esto deberemos descargar el archivo ldquoPicrdquo del link httpwwwps3clusterorgdistrospic y ponerlo en el directorio ldquoopenmpirdquoen el servidor primario o maestro (se adjunta maacutes abajo el programa del sitio original para que pueda guardarse en un archivo que deberaacute llamarse ldquoPicrdquo)

COMIENZO DEL PROGRAMA To run this program --------------------- Issue time mpirun -np [nprocs] pi (SGI Beowulf) ------------------------------------------------------------------ include ltstdiohgt include ltstdlibhgt

Paacutegina 19 de 27

include mpih int main(int argc char argv[]) int i n double h pi x int me nprocs double piece --------------------------------------------------- MPI_Init (ampargc ampargv) MPI_Comm_size (MPI_COMM_WORLD ampnprocs) MPI_Comm_rank (MPI_COMM_WORLD ampme) --------------------------------------------------- if (me == 0) printf(s Input number of intervalsn) scanf (d ampn)

Paacutegina 20 de 27

--------------------------------------------------- MPI_Bcast (ampn 1 MPI_INT 0 MPI_COMM_WORLD) --------------------------------------------------- h = 1 (double) n piece = 0 for (i=me+1 i lt= n i+=nprocs) x = (i-1)h piece = piece + ( 4 (1+(x)(x)) + 4 (1+(x+h)(x+h)) ) 2 h printf(d pi = 2515fn me piece)

Paacutegina 21 de 27

--------------------------------------------------- MPI_Reduce (amppiece amppi 1 MPI_DOUBLE MPI_SUM 0 MPI_COMM_WORLD) --------------------------------------------------- if (me = = 0) printf(pi = 2515fn pi) --------------------------------------------------- MPI_Finalize() return 0 FIN DEL PROGRAMA

Paacutegina 22 de 27

42 Compilar el programa utilizando el comando ldquompiccrdquo Como resultado se

generaraacute un archivo binario ejecutable llamado ldquoPirdquo

Paacutegina 23 de 27

43 Para ejecutar el programa ldquoPirdquo en forma local solo basta con tipear

ldquoroot192168131~ mpirun -np 2 Pirdquo el nuacutemero 2 denota la cantidad de procesos que se utilizaraacuten cuando se ejecute el programa

Paacutegina 24 de 27

44 Para realizar la ejecucioacuten del programa ldquoPirdquoen nuestro superservidor

ahora deberemos realizar una copia del programa ldquoPirdquoen cada directorio compartido de nuestro ldquoNFSrdquo de cada nodo Como paso posterior ejecutaremos desde el servidor primario nuevamente nuestro programa tecleando ldquoroot192168131~ mpirun -np 12 Pirdquo Vemos que se ha aumentado la cantidad de procesos (slots) esto es debido a que ahora estaremos realizando la ejecucioacuten con mayor cantidad de procesadores (12 en total)

Paacutegina 25 de 27

45 Para visualizar la cantidad de procesos utilizaremos el comando ldquoTOPrdquo Aquiacute veremos los datos de cada proceso paralelo ejecutado

Paacutegina 26 de 27

Fuentes consultadas y sitios de intereacutes

httpwwwdebianorg

httpwwwopen-mpiorg

httpwwwps3clusterumassdeduindexhtml

httpwwwphilchencom20070728how-to-enable-passwordless-authentication-with-ssh

6 Autores Alumnos de la Universidad Tecnoloacutegica Nacional ndash Facultad Regional Haedo ndash Laboratorio de Simulacioacuten y Mecaacutenica Computacional

Andreacutes Trapanotto

Antonio Sebastiaacuten Rodriacuteguez Capello

7 Agradecimientos Profesores de la Universidad Tecnoloacutegica Nacional ndash Facultad Regional Haedo ndash Laboratorio de Simulacioacuten y Mecaacutenica Computacional

Ing Carlos Carlassare

Ing Miguel Bavaro

Ing Juan C Polidoro

Paacutegina 27 de 27

Page 2: Instalacin de un Super-Servidor de procesamiento paralelo … · 2010-01-30 · computadora mediante un intérprete de comandos, y también puede redirigir el tráfico de X para poder

Proacutelogo

La idea de este documento es la de guiar al usuario para que pueda utilizando herramientas de software y hardware standard montar un superservidor de procesamiento paralelo basado en el standard Open MPI

Para esto se han utilizado seis PCs con procesadores AMD64 dual core interconectadas entre siacute utilizando una red Ethernet de 100Mbps a traveacutes de un switch luego haciendo funcionar una de ellas como servidor maestro y las otras cinco como servidores secundarios

Se veraacute a continuacioacuten que los pasos son sencillos pudiendo implementarse en cualquier plataforma de procesadores y con cualquier cantidad de PCs

Paacutegina 2 de 27

i 1 Prerrequisitos de hardware

11 Prerrequisitos miacutenimos

12 Prerrequisitos requeridos

2 Instalacioacuten del software necesario

21 Instalacioacuten del sistema operativo Debian versioacuten 50 (Lenny)

22 Instalacioacuten de paquetes requeridos en el servidor primario o maestro y en los servidores secundarios

221 Instalacioacuten de SSH (Secure Shell)

222 Instalacioacuten de RSSH (Restricted Secure Shell)

223 Instalacioacuten del paquete NFS-KERNEL-SERVER

224 Instalacioacuten de los paquetes LIBOPENMPI-DEV LIBOPENMPI1 OPENMPI-BIN OPENMPI-COMMON y OPENMPI-DOC

225 Instalacioacuten y desinstalacioacuten de otros paquetes

226 Instalacioacuten de los paquetes en los servidores secundarios

3 Configuracioacuten de servidores primario o maestro y secundarios 31 Verificacioacuten de directorios y clave puacuteblica en el servidor

primario o maestro

32 Regeneracioacuten de archivos de claves puacuteblicas en el servidor primario o maestro

33 Configuracioacuten de los servidores secundarios (vieacutendose algo similar al print screen)

34 Modificacioacuten de los archivos de configuracioacuten del servidor primario o maestro

35 Prueba de conexioacuten y configuracioacuten desde el servidor primario o maestro a los servidores secundarios

4 Probando nuestro superservidor

41 Programa ldquoPicrdquo

42 Compilacioacuten del programa ldquoPicrdquo con MPICC

43 Ejecucioacuten del programa ldquoPicrdquo en forma local con MPIRUN

Paacutegina 3 de 27

44 Ejecucioacuten del programa ldquoPicrdquo en forma multiproceso con MPIRUN

45 Visualizacioacuten de los procesos ejecutados en forma paralela con TOP

5 Fuentes consultadas y sitios de intereacutes

6 Autores

7 Agradecimientos

Esquema de conexioacuten

Servidor Principal 192168131

INTERNET Servidor Secundario

192168134 Servidor Secundario

192168133

Servidor Secundario 192168135

Servidor Secundario 192168136 Servidor Secundario

192168132

Paacutegina 4 de 27

1 Prerrequisitos de hardware 11 Prerrequisitos miacutenimos

Una PC con conexioacuten a internet permanente para poder descargar el Small CD de Debian Lenny [httpwwwdebianorgdistribnetinstsmallcd]

Grabadora de CD

Un CD en blanco para grabar dicha imagen descargada

Realizar la instalacioacuten de Linux Debian versioacuten 50 (Lenny) en una particioacuten adicional de la PC o instalarlo en una PC diferente [httpwwwdebianorgreleasesstablei386indexhtmles]

Para todos los pasos anteriores conexioacuten a internet permanente

12 Prerrequisitos requeridos

Una PC con conexioacuten a internet permanente para poder descargar el Small CD de Debian Lenny [httpwwwdebianorgdistribnetinstsmallcd]

Grabadora de CD

Un CD en blanco para grabar dicha imagen descargada

Realizar la instalacioacuten de Linux Debian versioacuten 50 (Lenny) en dos o maacutes PCs [httpwwwdebianorgreleasesstablei386indexhtmles]

Para todos los pasos anteriores conexioacuten a internet permanente

Paacutegina 5 de 27

2 Instalacioacuten del software necesario

21 Instalacioacuten del sistema operativo Debian versioacuten 50 (Lenny)

Debido a que estaacute fuera del alcance del presente mini How To no se indican los pasos para la instalacioacuten de Debian versioacuten 50 (Lenny) en este punto se recomienda consultar el manual de instalacioacuten en el siguiente link [httpwwwdebianorgreleasesstablei386indexhtmles]

22 Instalacioacuten de paquetes requeridos en el servidor primario o maestro y en los servidores secundarios

Para esto utilizaremos el comando APT (Advanced Package Tool) en un terminal ingresando como usuario Root En nuestro caso estamos utilizando la intefaz graacutefica Gnome 2223

Estos paquetes deben instalarse en todas las maacutequinas que formen parte del superservidor tener en cuenta que soacutelo una de las PCs funcionaraacute como servidor primario o maestro (en nuestro caso la que tiene nuacutemero IP 192168131) teniendo las demaacutes PCs la funcioacuten de servidores secundarios

221 Instalacioacuten de SSH (Secure Shell)

Descripcioacuten del paquete

SSH (Secure SHell en espantildeol inteacuterprete de oacuterdenes segura) es el nombre de un protocolo y del programa que lo implementa y sirve para acceder a maacutequinas remotas a traveacutes de una red Permite manejar por completo la computadora mediante un inteacuterprete de comandos y tambieacuten puede redirigir el traacutefico de X para poder ejecutar programas graacuteficos si tenemos un Servidor X (en sistemas Unix y Windows) corriendo

Ademaacutes de la conexioacuten a otras maacutequinas SSH nos permite copiar datos de forma segura (tanto ficheros sueltos como simular sesiones FTP cifradas) gestionar claves RSA para no escribir claves al conectar a las maacutequinas y pasar los datos de cualquier otra aplicacioacuten por un canal seguro tunelizado mediante SSH

La instalacioacuten de este programa es necesario para que las computadores intercambien informacioacuten en forma segura

Paacutegina 6 de 27

Instalacioacuten del paquete (vieacutendose algo similar al print screen)

root192168131 apt-get install openssh-server

222 Instalacioacuten de RSSH (Restricted Secure Shell)

Descripcioacuten del paquete

RSSH es un shell restringido que provee acceso limitado a un server viacutea SSH incluyendo soporte a RDIST RSYNC y CVS Un ejemplo de utilizacioacuten es si se tuviese un servidor en el cual soacutelo se quiere que los usuarios copien ficheros con el somando SCP (Secure Copy) sin proveer acceso al shell puede usarse RSSH para hacerlo

Paacutegina 7 de 27

Instalacioacuten del paquete (vieacutendose algo similar al print screen)

root192168131 apt-get install rssh

223 Instalacioacuten del paquete NFS-KERNEL-SERVER

Descripcioacuten del paquete

MPI necesita encontrar especiacuteficamente el programa que se quiere ejecutar en los nodos (son nodos servidores primadior y secundarios) del superservidor NFS (Net File System) provee un directorio puacuteblico en cada nodo del superservidor para ejecutar el programa que el usuario quiera ejecutar

Paacutegina 8 de 27

Instalacioacuten del paquete (vieacutendose algo similar al print screen)

root192168131 apt-get install nfs-kernel-server

224 Instalacioacuten de los paquetes LIBOPENMPI-DEV LIBOPENMPI1 OPENMPI-BIN OPENMPI-COMMON y OPENMPI-DOC

Descripcioacuten de los paquetes

MPI (Message Passing Interface Interfaz de Paso de Mensajes) es un estaacutendar que define la sintaxis y la semaacutentica de las funciones contenidas en una biblioteca de paso de mensajes disentildeada para ser usada en programas que exploten la existencia de muacuteltiples procesadores

El paso de mensajes es una teacutecnica empleada en programacioacuten concurrente para aportar sincronizacioacuten entre procesos y permitir la exclusioacuten mutua de manera similar a como se hace con los semaacuteforos monitores etc

Su principal caracteriacutestica es que no precisa de memoria compartida por lo que es muy importante en la programacioacuten de sistemas distribuidos

Paacutegina 9 de 27

Instalacioacuten del paquete (vieacutendose algo similar al print screen)

root192168131 apt-get install libopenmpi-dev libopenmpi1 openmpi-bin openmpi-common openmpi-doc

225 Instalacioacuten y desinstalacioacuten de otros paquetes

En nuestro sistema aparte de los mencionados se han instalado adicionalmente los siguientes paquetes (apt-get install NOMBRE-PAQUETE)

mc

gfortran

build-essentials

popularity-contest

ntp

ntpdate

sshguard

autossh

Paacutegina 10 de 27

iproute

iptables

smartmontools

Desinstalaacutendose los siguientes paquetes (apt-get remove NOMBRE PAQUETE)

network-manager

avahi-daemon

226 Instalacioacuten de los paquetes en los servidores secundarios

Realizar los pasos 221 222 223 224 y 225 en las PCs que vayan a funcionar como servidores secundarios en nuestro caso las PCs con nuacutemeros IP desde el 192168132 al 192168136

Recordemos que los pasos son los siguientes

221 root19216813236 apt-get install openssh-server

222 root19216813236 apt-get install rssh

223 root19216813236 apt-get install nfs-kernel-server

224 root19216813236 apt-get install libopenmpi-dev libopenmpi1 openmpi-bin openmpi-common openmpi-doc

225 Instalacioacuten y desinstalacioacuten de paquetes adicionales

Paacutegina 11 de 27

3 Configuracioacuten de servidores primario o maestro y secundarios La configuracioacuten se requiere tanto en el servidor primario o maestro como en los servidores secundarios Esta configuracioacuten se requiere para que el sistema quede en funcionamiento

31 Verificacioacuten de directorios y clave puacuteblica en el servidor primario o maestro

Una vez finalizada la instalacioacuten todos los paquetes deberiacuteamos poder ingresar al directorio ldquorootsshrdquo para ver su contenido (vieacutendose algo similar al siguiente print screen)

Paacutegina 12 de 27

32 Regeneracioacuten de archivos de clave puacuteblica en el servidor primario o maestro

Este paso soacutelo debe hacerse en el servidor primario o maestro Si bien dentro del directorio ldquorootsshrdquo en el servidor primario (IP 192168131) podemos ver la existencia de los archivos ldquoid_rsardquoe ldquoid_rsapubrdquo que son los que contienen la clave puacuteblica para acceder al mismo en forma segura utilizando SSH generaremos nuevamente las mismas Esta clave es las que serviraacute luego para poder hacer que las PCs que funcionan como servidores secundarios se conecten al servidor primario en forma segura y sin necesidad de tipear ninguacuten password para ello (Passwordless Connection)

Regeneracioacuten de los archivos de clave puacuteblica en el servidor primario o maestro (vieacutendose algo similar al print screen)

root192168131 ssh-keygen -t rsa

Paacutegina 13 de 27

33 Configuracioacuten de los servidores secundarios (vieacutendose algo similar al print screen)

Una vez generado el archivo que contiene la clave puacuteblica (id_rsapub) se copia a las demaacutes PCs o servidores secundarios (en nuestro caso nuacutemeros IP desde el 192168132 al 192168136) para que los mismos puedan acceder a ejecutar los comandos que el usuario necesite sin requerir password (Passwordless Connection)

Este paso debe repetirse por cada servidor secundario por lo que la sintaxis vista en el print screen maacutes abajo cambiaraacute en su segunda parte de ldquoroot192168132homenombre-usuarioid_rsaserverpubrdquo a ldquoroot192168133homenombre-usuarioid_rsaserverpubrdquo y asiacute sucesivamente hasta llegar al nuacutemero IP 192168136

Paacutegina 14 de 27

34 Modificacioacuten de los archivos de configuracioacuten del servidor primario o maestro

Debemos modificar en el servidor primario o maestro el archivo ldquoetcopenmpiopenmpi-default-hostfilerdquo Este archivo es el que contiene tanto los nuacutemeros IP de todos los nodos de nuestro superservidor (recordar que nodo es tanto el servidor primario como los secundarios) como la cantidad de procesadores que tiene cada nodo es de 2 pondremos este valor

Paacutegina 15 de 27

Agregando lo siguiente al archivo

192168231 slots=2

192168232 slots=2

192168233 slots=2

192168234 slots=2

192168235 slots=2

192168236 slots=2

Como dato adicional y a modo de ejemplo mostraremos como deben modificarse los siguientes archivos agregando lo que figura debajo de cada tiacutetulo (no entraremos en detalle en cuanto a la explicacioacuten de cada uno respecta debido a que forman parte de la configuracioacuten standard de la red del sistema operativo Linux Debian versioacuten 50 (Lenny))

Archivo ldquoetcresolvconfrdquo

domain lanfrhutneduar

Paacutegina 16 de 27

search lanfrhutneduar frhutneduar

nameserver 19216821

nameserver 17021017154

Archivo ldquoetchostsrdquo

192168231 symc01nnfrhutneduar symc01

192168232 symc02nnfrhutneduar symc02

192168233 symc03nnfrhutneduar symc03

192168234 symc04nnfrhutneduar symc04

192168235 symc05nnfrhutneduar symc05

192168236 symc06nnfrhutneduar symc06

Archivo ldquoetcnetworkinterfacesrdquo

iface eth0 inet static

address 192168231

netmask 2552552550

gateway 19216821

35 Prueba de conexioacuten y configuracioacuten desde el servidor primario o

Paacutegina 17 de 27

maestro a los servidores secundarios

Ahora deberemos realizar los siguientes pasos en cada servidor secundario (en nuestro casos desde el IP 192168132 al IP 192168136)

Realizamos una prueba de conexioacuten viacutea SSH para ver si funciona la conectividad sin password (Passwordless Connection) desde el servidor primario (IP 192168131) al primer servidor secundario (IP 192168132) Una vez que SSH encuentre el servidor secundario nos solicitaraacute el password del usuario ROOT por lo que deberemos escribirlo para ingresar al mismo

Modificar los permisos del directorio ldquorootsshrdquo ponieacutendolos en 700

Agregar el pasword puacuteblico al archivo ldquorootsshauthorized_keysrdquo

Cambiar los permisos del archivo ldquoauthorized_keysrdquo ponieacutendolos en 644

Una vez finalizados estos pasos deberemos hacer lo mismo con los demaacutes

servidores secundarios vieacutendose algo similar al siguiente print screen

Paacutegina 18 de 27

4 Probando nuestro superservidor Asumimos en este paso que ya deberiacuteamos tener instalado apropiadamente nuestro superservidor con capacidades de procesamiento paralelo del tipo MPI ahora usted pude probar el mismo con un programa de testeo que calcularaacute el nuacutemero PI

El programa a utilizarse seraacute el contenido en el archivo ldquoPicrdquo el mismo es un programa simple escrito en lenguaje ldquoC que reporta el nuacuteemro PI de cada nodo sobre el superservidor usando los servicios MPI

41 Para esto deberemos descargar el archivo ldquoPicrdquo del link httpwwwps3clusterorgdistrospic y ponerlo en el directorio ldquoopenmpirdquoen el servidor primario o maestro (se adjunta maacutes abajo el programa del sitio original para que pueda guardarse en un archivo que deberaacute llamarse ldquoPicrdquo)

COMIENZO DEL PROGRAMA To run this program --------------------- Issue time mpirun -np [nprocs] pi (SGI Beowulf) ------------------------------------------------------------------ include ltstdiohgt include ltstdlibhgt

Paacutegina 19 de 27

include mpih int main(int argc char argv[]) int i n double h pi x int me nprocs double piece --------------------------------------------------- MPI_Init (ampargc ampargv) MPI_Comm_size (MPI_COMM_WORLD ampnprocs) MPI_Comm_rank (MPI_COMM_WORLD ampme) --------------------------------------------------- if (me == 0) printf(s Input number of intervalsn) scanf (d ampn)

Paacutegina 20 de 27

--------------------------------------------------- MPI_Bcast (ampn 1 MPI_INT 0 MPI_COMM_WORLD) --------------------------------------------------- h = 1 (double) n piece = 0 for (i=me+1 i lt= n i+=nprocs) x = (i-1)h piece = piece + ( 4 (1+(x)(x)) + 4 (1+(x+h)(x+h)) ) 2 h printf(d pi = 2515fn me piece)

Paacutegina 21 de 27

--------------------------------------------------- MPI_Reduce (amppiece amppi 1 MPI_DOUBLE MPI_SUM 0 MPI_COMM_WORLD) --------------------------------------------------- if (me = = 0) printf(pi = 2515fn pi) --------------------------------------------------- MPI_Finalize() return 0 FIN DEL PROGRAMA

Paacutegina 22 de 27

42 Compilar el programa utilizando el comando ldquompiccrdquo Como resultado se

generaraacute un archivo binario ejecutable llamado ldquoPirdquo

Paacutegina 23 de 27

43 Para ejecutar el programa ldquoPirdquo en forma local solo basta con tipear

ldquoroot192168131~ mpirun -np 2 Pirdquo el nuacutemero 2 denota la cantidad de procesos que se utilizaraacuten cuando se ejecute el programa

Paacutegina 24 de 27

44 Para realizar la ejecucioacuten del programa ldquoPirdquoen nuestro superservidor

ahora deberemos realizar una copia del programa ldquoPirdquoen cada directorio compartido de nuestro ldquoNFSrdquo de cada nodo Como paso posterior ejecutaremos desde el servidor primario nuevamente nuestro programa tecleando ldquoroot192168131~ mpirun -np 12 Pirdquo Vemos que se ha aumentado la cantidad de procesos (slots) esto es debido a que ahora estaremos realizando la ejecucioacuten con mayor cantidad de procesadores (12 en total)

Paacutegina 25 de 27

45 Para visualizar la cantidad de procesos utilizaremos el comando ldquoTOPrdquo Aquiacute veremos los datos de cada proceso paralelo ejecutado

Paacutegina 26 de 27

Fuentes consultadas y sitios de intereacutes

httpwwwdebianorg

httpwwwopen-mpiorg

httpwwwps3clusterumassdeduindexhtml

httpwwwphilchencom20070728how-to-enable-passwordless-authentication-with-ssh

6 Autores Alumnos de la Universidad Tecnoloacutegica Nacional ndash Facultad Regional Haedo ndash Laboratorio de Simulacioacuten y Mecaacutenica Computacional

Andreacutes Trapanotto

Antonio Sebastiaacuten Rodriacuteguez Capello

7 Agradecimientos Profesores de la Universidad Tecnoloacutegica Nacional ndash Facultad Regional Haedo ndash Laboratorio de Simulacioacuten y Mecaacutenica Computacional

Ing Carlos Carlassare

Ing Miguel Bavaro

Ing Juan C Polidoro

Paacutegina 27 de 27

Page 3: Instalacin de un Super-Servidor de procesamiento paralelo … · 2010-01-30 · computadora mediante un intérprete de comandos, y también puede redirigir el tráfico de X para poder

i 1 Prerrequisitos de hardware

11 Prerrequisitos miacutenimos

12 Prerrequisitos requeridos

2 Instalacioacuten del software necesario

21 Instalacioacuten del sistema operativo Debian versioacuten 50 (Lenny)

22 Instalacioacuten de paquetes requeridos en el servidor primario o maestro y en los servidores secundarios

221 Instalacioacuten de SSH (Secure Shell)

222 Instalacioacuten de RSSH (Restricted Secure Shell)

223 Instalacioacuten del paquete NFS-KERNEL-SERVER

224 Instalacioacuten de los paquetes LIBOPENMPI-DEV LIBOPENMPI1 OPENMPI-BIN OPENMPI-COMMON y OPENMPI-DOC

225 Instalacioacuten y desinstalacioacuten de otros paquetes

226 Instalacioacuten de los paquetes en los servidores secundarios

3 Configuracioacuten de servidores primario o maestro y secundarios 31 Verificacioacuten de directorios y clave puacuteblica en el servidor

primario o maestro

32 Regeneracioacuten de archivos de claves puacuteblicas en el servidor primario o maestro

33 Configuracioacuten de los servidores secundarios (vieacutendose algo similar al print screen)

34 Modificacioacuten de los archivos de configuracioacuten del servidor primario o maestro

35 Prueba de conexioacuten y configuracioacuten desde el servidor primario o maestro a los servidores secundarios

4 Probando nuestro superservidor

41 Programa ldquoPicrdquo

42 Compilacioacuten del programa ldquoPicrdquo con MPICC

43 Ejecucioacuten del programa ldquoPicrdquo en forma local con MPIRUN

Paacutegina 3 de 27

44 Ejecucioacuten del programa ldquoPicrdquo en forma multiproceso con MPIRUN

45 Visualizacioacuten de los procesos ejecutados en forma paralela con TOP

5 Fuentes consultadas y sitios de intereacutes

6 Autores

7 Agradecimientos

Esquema de conexioacuten

Servidor Principal 192168131

INTERNET Servidor Secundario

192168134 Servidor Secundario

192168133

Servidor Secundario 192168135

Servidor Secundario 192168136 Servidor Secundario

192168132

Paacutegina 4 de 27

1 Prerrequisitos de hardware 11 Prerrequisitos miacutenimos

Una PC con conexioacuten a internet permanente para poder descargar el Small CD de Debian Lenny [httpwwwdebianorgdistribnetinstsmallcd]

Grabadora de CD

Un CD en blanco para grabar dicha imagen descargada

Realizar la instalacioacuten de Linux Debian versioacuten 50 (Lenny) en una particioacuten adicional de la PC o instalarlo en una PC diferente [httpwwwdebianorgreleasesstablei386indexhtmles]

Para todos los pasos anteriores conexioacuten a internet permanente

12 Prerrequisitos requeridos

Una PC con conexioacuten a internet permanente para poder descargar el Small CD de Debian Lenny [httpwwwdebianorgdistribnetinstsmallcd]

Grabadora de CD

Un CD en blanco para grabar dicha imagen descargada

Realizar la instalacioacuten de Linux Debian versioacuten 50 (Lenny) en dos o maacutes PCs [httpwwwdebianorgreleasesstablei386indexhtmles]

Para todos los pasos anteriores conexioacuten a internet permanente

Paacutegina 5 de 27

2 Instalacioacuten del software necesario

21 Instalacioacuten del sistema operativo Debian versioacuten 50 (Lenny)

Debido a que estaacute fuera del alcance del presente mini How To no se indican los pasos para la instalacioacuten de Debian versioacuten 50 (Lenny) en este punto se recomienda consultar el manual de instalacioacuten en el siguiente link [httpwwwdebianorgreleasesstablei386indexhtmles]

22 Instalacioacuten de paquetes requeridos en el servidor primario o maestro y en los servidores secundarios

Para esto utilizaremos el comando APT (Advanced Package Tool) en un terminal ingresando como usuario Root En nuestro caso estamos utilizando la intefaz graacutefica Gnome 2223

Estos paquetes deben instalarse en todas las maacutequinas que formen parte del superservidor tener en cuenta que soacutelo una de las PCs funcionaraacute como servidor primario o maestro (en nuestro caso la que tiene nuacutemero IP 192168131) teniendo las demaacutes PCs la funcioacuten de servidores secundarios

221 Instalacioacuten de SSH (Secure Shell)

Descripcioacuten del paquete

SSH (Secure SHell en espantildeol inteacuterprete de oacuterdenes segura) es el nombre de un protocolo y del programa que lo implementa y sirve para acceder a maacutequinas remotas a traveacutes de una red Permite manejar por completo la computadora mediante un inteacuterprete de comandos y tambieacuten puede redirigir el traacutefico de X para poder ejecutar programas graacuteficos si tenemos un Servidor X (en sistemas Unix y Windows) corriendo

Ademaacutes de la conexioacuten a otras maacutequinas SSH nos permite copiar datos de forma segura (tanto ficheros sueltos como simular sesiones FTP cifradas) gestionar claves RSA para no escribir claves al conectar a las maacutequinas y pasar los datos de cualquier otra aplicacioacuten por un canal seguro tunelizado mediante SSH

La instalacioacuten de este programa es necesario para que las computadores intercambien informacioacuten en forma segura

Paacutegina 6 de 27

Instalacioacuten del paquete (vieacutendose algo similar al print screen)

root192168131 apt-get install openssh-server

222 Instalacioacuten de RSSH (Restricted Secure Shell)

Descripcioacuten del paquete

RSSH es un shell restringido que provee acceso limitado a un server viacutea SSH incluyendo soporte a RDIST RSYNC y CVS Un ejemplo de utilizacioacuten es si se tuviese un servidor en el cual soacutelo se quiere que los usuarios copien ficheros con el somando SCP (Secure Copy) sin proveer acceso al shell puede usarse RSSH para hacerlo

Paacutegina 7 de 27

Instalacioacuten del paquete (vieacutendose algo similar al print screen)

root192168131 apt-get install rssh

223 Instalacioacuten del paquete NFS-KERNEL-SERVER

Descripcioacuten del paquete

MPI necesita encontrar especiacuteficamente el programa que se quiere ejecutar en los nodos (son nodos servidores primadior y secundarios) del superservidor NFS (Net File System) provee un directorio puacuteblico en cada nodo del superservidor para ejecutar el programa que el usuario quiera ejecutar

Paacutegina 8 de 27

Instalacioacuten del paquete (vieacutendose algo similar al print screen)

root192168131 apt-get install nfs-kernel-server

224 Instalacioacuten de los paquetes LIBOPENMPI-DEV LIBOPENMPI1 OPENMPI-BIN OPENMPI-COMMON y OPENMPI-DOC

Descripcioacuten de los paquetes

MPI (Message Passing Interface Interfaz de Paso de Mensajes) es un estaacutendar que define la sintaxis y la semaacutentica de las funciones contenidas en una biblioteca de paso de mensajes disentildeada para ser usada en programas que exploten la existencia de muacuteltiples procesadores

El paso de mensajes es una teacutecnica empleada en programacioacuten concurrente para aportar sincronizacioacuten entre procesos y permitir la exclusioacuten mutua de manera similar a como se hace con los semaacuteforos monitores etc

Su principal caracteriacutestica es que no precisa de memoria compartida por lo que es muy importante en la programacioacuten de sistemas distribuidos

Paacutegina 9 de 27

Instalacioacuten del paquete (vieacutendose algo similar al print screen)

root192168131 apt-get install libopenmpi-dev libopenmpi1 openmpi-bin openmpi-common openmpi-doc

225 Instalacioacuten y desinstalacioacuten de otros paquetes

En nuestro sistema aparte de los mencionados se han instalado adicionalmente los siguientes paquetes (apt-get install NOMBRE-PAQUETE)

mc

gfortran

build-essentials

popularity-contest

ntp

ntpdate

sshguard

autossh

Paacutegina 10 de 27

iproute

iptables

smartmontools

Desinstalaacutendose los siguientes paquetes (apt-get remove NOMBRE PAQUETE)

network-manager

avahi-daemon

226 Instalacioacuten de los paquetes en los servidores secundarios

Realizar los pasos 221 222 223 224 y 225 en las PCs que vayan a funcionar como servidores secundarios en nuestro caso las PCs con nuacutemeros IP desde el 192168132 al 192168136

Recordemos que los pasos son los siguientes

221 root19216813236 apt-get install openssh-server

222 root19216813236 apt-get install rssh

223 root19216813236 apt-get install nfs-kernel-server

224 root19216813236 apt-get install libopenmpi-dev libopenmpi1 openmpi-bin openmpi-common openmpi-doc

225 Instalacioacuten y desinstalacioacuten de paquetes adicionales

Paacutegina 11 de 27

3 Configuracioacuten de servidores primario o maestro y secundarios La configuracioacuten se requiere tanto en el servidor primario o maestro como en los servidores secundarios Esta configuracioacuten se requiere para que el sistema quede en funcionamiento

31 Verificacioacuten de directorios y clave puacuteblica en el servidor primario o maestro

Una vez finalizada la instalacioacuten todos los paquetes deberiacuteamos poder ingresar al directorio ldquorootsshrdquo para ver su contenido (vieacutendose algo similar al siguiente print screen)

Paacutegina 12 de 27

32 Regeneracioacuten de archivos de clave puacuteblica en el servidor primario o maestro

Este paso soacutelo debe hacerse en el servidor primario o maestro Si bien dentro del directorio ldquorootsshrdquo en el servidor primario (IP 192168131) podemos ver la existencia de los archivos ldquoid_rsardquoe ldquoid_rsapubrdquo que son los que contienen la clave puacuteblica para acceder al mismo en forma segura utilizando SSH generaremos nuevamente las mismas Esta clave es las que serviraacute luego para poder hacer que las PCs que funcionan como servidores secundarios se conecten al servidor primario en forma segura y sin necesidad de tipear ninguacuten password para ello (Passwordless Connection)

Regeneracioacuten de los archivos de clave puacuteblica en el servidor primario o maestro (vieacutendose algo similar al print screen)

root192168131 ssh-keygen -t rsa

Paacutegina 13 de 27

33 Configuracioacuten de los servidores secundarios (vieacutendose algo similar al print screen)

Una vez generado el archivo que contiene la clave puacuteblica (id_rsapub) se copia a las demaacutes PCs o servidores secundarios (en nuestro caso nuacutemeros IP desde el 192168132 al 192168136) para que los mismos puedan acceder a ejecutar los comandos que el usuario necesite sin requerir password (Passwordless Connection)

Este paso debe repetirse por cada servidor secundario por lo que la sintaxis vista en el print screen maacutes abajo cambiaraacute en su segunda parte de ldquoroot192168132homenombre-usuarioid_rsaserverpubrdquo a ldquoroot192168133homenombre-usuarioid_rsaserverpubrdquo y asiacute sucesivamente hasta llegar al nuacutemero IP 192168136

Paacutegina 14 de 27

34 Modificacioacuten de los archivos de configuracioacuten del servidor primario o maestro

Debemos modificar en el servidor primario o maestro el archivo ldquoetcopenmpiopenmpi-default-hostfilerdquo Este archivo es el que contiene tanto los nuacutemeros IP de todos los nodos de nuestro superservidor (recordar que nodo es tanto el servidor primario como los secundarios) como la cantidad de procesadores que tiene cada nodo es de 2 pondremos este valor

Paacutegina 15 de 27

Agregando lo siguiente al archivo

192168231 slots=2

192168232 slots=2

192168233 slots=2

192168234 slots=2

192168235 slots=2

192168236 slots=2

Como dato adicional y a modo de ejemplo mostraremos como deben modificarse los siguientes archivos agregando lo que figura debajo de cada tiacutetulo (no entraremos en detalle en cuanto a la explicacioacuten de cada uno respecta debido a que forman parte de la configuracioacuten standard de la red del sistema operativo Linux Debian versioacuten 50 (Lenny))

Archivo ldquoetcresolvconfrdquo

domain lanfrhutneduar

Paacutegina 16 de 27

search lanfrhutneduar frhutneduar

nameserver 19216821

nameserver 17021017154

Archivo ldquoetchostsrdquo

192168231 symc01nnfrhutneduar symc01

192168232 symc02nnfrhutneduar symc02

192168233 symc03nnfrhutneduar symc03

192168234 symc04nnfrhutneduar symc04

192168235 symc05nnfrhutneduar symc05

192168236 symc06nnfrhutneduar symc06

Archivo ldquoetcnetworkinterfacesrdquo

iface eth0 inet static

address 192168231

netmask 2552552550

gateway 19216821

35 Prueba de conexioacuten y configuracioacuten desde el servidor primario o

Paacutegina 17 de 27

maestro a los servidores secundarios

Ahora deberemos realizar los siguientes pasos en cada servidor secundario (en nuestro casos desde el IP 192168132 al IP 192168136)

Realizamos una prueba de conexioacuten viacutea SSH para ver si funciona la conectividad sin password (Passwordless Connection) desde el servidor primario (IP 192168131) al primer servidor secundario (IP 192168132) Una vez que SSH encuentre el servidor secundario nos solicitaraacute el password del usuario ROOT por lo que deberemos escribirlo para ingresar al mismo

Modificar los permisos del directorio ldquorootsshrdquo ponieacutendolos en 700

Agregar el pasword puacuteblico al archivo ldquorootsshauthorized_keysrdquo

Cambiar los permisos del archivo ldquoauthorized_keysrdquo ponieacutendolos en 644

Una vez finalizados estos pasos deberemos hacer lo mismo con los demaacutes

servidores secundarios vieacutendose algo similar al siguiente print screen

Paacutegina 18 de 27

4 Probando nuestro superservidor Asumimos en este paso que ya deberiacuteamos tener instalado apropiadamente nuestro superservidor con capacidades de procesamiento paralelo del tipo MPI ahora usted pude probar el mismo con un programa de testeo que calcularaacute el nuacutemero PI

El programa a utilizarse seraacute el contenido en el archivo ldquoPicrdquo el mismo es un programa simple escrito en lenguaje ldquoC que reporta el nuacuteemro PI de cada nodo sobre el superservidor usando los servicios MPI

41 Para esto deberemos descargar el archivo ldquoPicrdquo del link httpwwwps3clusterorgdistrospic y ponerlo en el directorio ldquoopenmpirdquoen el servidor primario o maestro (se adjunta maacutes abajo el programa del sitio original para que pueda guardarse en un archivo que deberaacute llamarse ldquoPicrdquo)

COMIENZO DEL PROGRAMA To run this program --------------------- Issue time mpirun -np [nprocs] pi (SGI Beowulf) ------------------------------------------------------------------ include ltstdiohgt include ltstdlibhgt

Paacutegina 19 de 27

include mpih int main(int argc char argv[]) int i n double h pi x int me nprocs double piece --------------------------------------------------- MPI_Init (ampargc ampargv) MPI_Comm_size (MPI_COMM_WORLD ampnprocs) MPI_Comm_rank (MPI_COMM_WORLD ampme) --------------------------------------------------- if (me == 0) printf(s Input number of intervalsn) scanf (d ampn)

Paacutegina 20 de 27

--------------------------------------------------- MPI_Bcast (ampn 1 MPI_INT 0 MPI_COMM_WORLD) --------------------------------------------------- h = 1 (double) n piece = 0 for (i=me+1 i lt= n i+=nprocs) x = (i-1)h piece = piece + ( 4 (1+(x)(x)) + 4 (1+(x+h)(x+h)) ) 2 h printf(d pi = 2515fn me piece)

Paacutegina 21 de 27

--------------------------------------------------- MPI_Reduce (amppiece amppi 1 MPI_DOUBLE MPI_SUM 0 MPI_COMM_WORLD) --------------------------------------------------- if (me = = 0) printf(pi = 2515fn pi) --------------------------------------------------- MPI_Finalize() return 0 FIN DEL PROGRAMA

Paacutegina 22 de 27

42 Compilar el programa utilizando el comando ldquompiccrdquo Como resultado se

generaraacute un archivo binario ejecutable llamado ldquoPirdquo

Paacutegina 23 de 27

43 Para ejecutar el programa ldquoPirdquo en forma local solo basta con tipear

ldquoroot192168131~ mpirun -np 2 Pirdquo el nuacutemero 2 denota la cantidad de procesos que se utilizaraacuten cuando se ejecute el programa

Paacutegina 24 de 27

44 Para realizar la ejecucioacuten del programa ldquoPirdquoen nuestro superservidor

ahora deberemos realizar una copia del programa ldquoPirdquoen cada directorio compartido de nuestro ldquoNFSrdquo de cada nodo Como paso posterior ejecutaremos desde el servidor primario nuevamente nuestro programa tecleando ldquoroot192168131~ mpirun -np 12 Pirdquo Vemos que se ha aumentado la cantidad de procesos (slots) esto es debido a que ahora estaremos realizando la ejecucioacuten con mayor cantidad de procesadores (12 en total)

Paacutegina 25 de 27

45 Para visualizar la cantidad de procesos utilizaremos el comando ldquoTOPrdquo Aquiacute veremos los datos de cada proceso paralelo ejecutado

Paacutegina 26 de 27

Fuentes consultadas y sitios de intereacutes

httpwwwdebianorg

httpwwwopen-mpiorg

httpwwwps3clusterumassdeduindexhtml

httpwwwphilchencom20070728how-to-enable-passwordless-authentication-with-ssh

6 Autores Alumnos de la Universidad Tecnoloacutegica Nacional ndash Facultad Regional Haedo ndash Laboratorio de Simulacioacuten y Mecaacutenica Computacional

Andreacutes Trapanotto

Antonio Sebastiaacuten Rodriacuteguez Capello

7 Agradecimientos Profesores de la Universidad Tecnoloacutegica Nacional ndash Facultad Regional Haedo ndash Laboratorio de Simulacioacuten y Mecaacutenica Computacional

Ing Carlos Carlassare

Ing Miguel Bavaro

Ing Juan C Polidoro

Paacutegina 27 de 27

Page 4: Instalacin de un Super-Servidor de procesamiento paralelo … · 2010-01-30 · computadora mediante un intérprete de comandos, y también puede redirigir el tráfico de X para poder

44 Ejecucioacuten del programa ldquoPicrdquo en forma multiproceso con MPIRUN

45 Visualizacioacuten de los procesos ejecutados en forma paralela con TOP

5 Fuentes consultadas y sitios de intereacutes

6 Autores

7 Agradecimientos

Esquema de conexioacuten

Servidor Principal 192168131

INTERNET Servidor Secundario

192168134 Servidor Secundario

192168133

Servidor Secundario 192168135

Servidor Secundario 192168136 Servidor Secundario

192168132

Paacutegina 4 de 27

1 Prerrequisitos de hardware 11 Prerrequisitos miacutenimos

Una PC con conexioacuten a internet permanente para poder descargar el Small CD de Debian Lenny [httpwwwdebianorgdistribnetinstsmallcd]

Grabadora de CD

Un CD en blanco para grabar dicha imagen descargada

Realizar la instalacioacuten de Linux Debian versioacuten 50 (Lenny) en una particioacuten adicional de la PC o instalarlo en una PC diferente [httpwwwdebianorgreleasesstablei386indexhtmles]

Para todos los pasos anteriores conexioacuten a internet permanente

12 Prerrequisitos requeridos

Una PC con conexioacuten a internet permanente para poder descargar el Small CD de Debian Lenny [httpwwwdebianorgdistribnetinstsmallcd]

Grabadora de CD

Un CD en blanco para grabar dicha imagen descargada

Realizar la instalacioacuten de Linux Debian versioacuten 50 (Lenny) en dos o maacutes PCs [httpwwwdebianorgreleasesstablei386indexhtmles]

Para todos los pasos anteriores conexioacuten a internet permanente

Paacutegina 5 de 27

2 Instalacioacuten del software necesario

21 Instalacioacuten del sistema operativo Debian versioacuten 50 (Lenny)

Debido a que estaacute fuera del alcance del presente mini How To no se indican los pasos para la instalacioacuten de Debian versioacuten 50 (Lenny) en este punto se recomienda consultar el manual de instalacioacuten en el siguiente link [httpwwwdebianorgreleasesstablei386indexhtmles]

22 Instalacioacuten de paquetes requeridos en el servidor primario o maestro y en los servidores secundarios

Para esto utilizaremos el comando APT (Advanced Package Tool) en un terminal ingresando como usuario Root En nuestro caso estamos utilizando la intefaz graacutefica Gnome 2223

Estos paquetes deben instalarse en todas las maacutequinas que formen parte del superservidor tener en cuenta que soacutelo una de las PCs funcionaraacute como servidor primario o maestro (en nuestro caso la que tiene nuacutemero IP 192168131) teniendo las demaacutes PCs la funcioacuten de servidores secundarios

221 Instalacioacuten de SSH (Secure Shell)

Descripcioacuten del paquete

SSH (Secure SHell en espantildeol inteacuterprete de oacuterdenes segura) es el nombre de un protocolo y del programa que lo implementa y sirve para acceder a maacutequinas remotas a traveacutes de una red Permite manejar por completo la computadora mediante un inteacuterprete de comandos y tambieacuten puede redirigir el traacutefico de X para poder ejecutar programas graacuteficos si tenemos un Servidor X (en sistemas Unix y Windows) corriendo

Ademaacutes de la conexioacuten a otras maacutequinas SSH nos permite copiar datos de forma segura (tanto ficheros sueltos como simular sesiones FTP cifradas) gestionar claves RSA para no escribir claves al conectar a las maacutequinas y pasar los datos de cualquier otra aplicacioacuten por un canal seguro tunelizado mediante SSH

La instalacioacuten de este programa es necesario para que las computadores intercambien informacioacuten en forma segura

Paacutegina 6 de 27

Instalacioacuten del paquete (vieacutendose algo similar al print screen)

root192168131 apt-get install openssh-server

222 Instalacioacuten de RSSH (Restricted Secure Shell)

Descripcioacuten del paquete

RSSH es un shell restringido que provee acceso limitado a un server viacutea SSH incluyendo soporte a RDIST RSYNC y CVS Un ejemplo de utilizacioacuten es si se tuviese un servidor en el cual soacutelo se quiere que los usuarios copien ficheros con el somando SCP (Secure Copy) sin proveer acceso al shell puede usarse RSSH para hacerlo

Paacutegina 7 de 27

Instalacioacuten del paquete (vieacutendose algo similar al print screen)

root192168131 apt-get install rssh

223 Instalacioacuten del paquete NFS-KERNEL-SERVER

Descripcioacuten del paquete

MPI necesita encontrar especiacuteficamente el programa que se quiere ejecutar en los nodos (son nodos servidores primadior y secundarios) del superservidor NFS (Net File System) provee un directorio puacuteblico en cada nodo del superservidor para ejecutar el programa que el usuario quiera ejecutar

Paacutegina 8 de 27

Instalacioacuten del paquete (vieacutendose algo similar al print screen)

root192168131 apt-get install nfs-kernel-server

224 Instalacioacuten de los paquetes LIBOPENMPI-DEV LIBOPENMPI1 OPENMPI-BIN OPENMPI-COMMON y OPENMPI-DOC

Descripcioacuten de los paquetes

MPI (Message Passing Interface Interfaz de Paso de Mensajes) es un estaacutendar que define la sintaxis y la semaacutentica de las funciones contenidas en una biblioteca de paso de mensajes disentildeada para ser usada en programas que exploten la existencia de muacuteltiples procesadores

El paso de mensajes es una teacutecnica empleada en programacioacuten concurrente para aportar sincronizacioacuten entre procesos y permitir la exclusioacuten mutua de manera similar a como se hace con los semaacuteforos monitores etc

Su principal caracteriacutestica es que no precisa de memoria compartida por lo que es muy importante en la programacioacuten de sistemas distribuidos

Paacutegina 9 de 27

Instalacioacuten del paquete (vieacutendose algo similar al print screen)

root192168131 apt-get install libopenmpi-dev libopenmpi1 openmpi-bin openmpi-common openmpi-doc

225 Instalacioacuten y desinstalacioacuten de otros paquetes

En nuestro sistema aparte de los mencionados se han instalado adicionalmente los siguientes paquetes (apt-get install NOMBRE-PAQUETE)

mc

gfortran

build-essentials

popularity-contest

ntp

ntpdate

sshguard

autossh

Paacutegina 10 de 27

iproute

iptables

smartmontools

Desinstalaacutendose los siguientes paquetes (apt-get remove NOMBRE PAQUETE)

network-manager

avahi-daemon

226 Instalacioacuten de los paquetes en los servidores secundarios

Realizar los pasos 221 222 223 224 y 225 en las PCs que vayan a funcionar como servidores secundarios en nuestro caso las PCs con nuacutemeros IP desde el 192168132 al 192168136

Recordemos que los pasos son los siguientes

221 root19216813236 apt-get install openssh-server

222 root19216813236 apt-get install rssh

223 root19216813236 apt-get install nfs-kernel-server

224 root19216813236 apt-get install libopenmpi-dev libopenmpi1 openmpi-bin openmpi-common openmpi-doc

225 Instalacioacuten y desinstalacioacuten de paquetes adicionales

Paacutegina 11 de 27

3 Configuracioacuten de servidores primario o maestro y secundarios La configuracioacuten se requiere tanto en el servidor primario o maestro como en los servidores secundarios Esta configuracioacuten se requiere para que el sistema quede en funcionamiento

31 Verificacioacuten de directorios y clave puacuteblica en el servidor primario o maestro

Una vez finalizada la instalacioacuten todos los paquetes deberiacuteamos poder ingresar al directorio ldquorootsshrdquo para ver su contenido (vieacutendose algo similar al siguiente print screen)

Paacutegina 12 de 27

32 Regeneracioacuten de archivos de clave puacuteblica en el servidor primario o maestro

Este paso soacutelo debe hacerse en el servidor primario o maestro Si bien dentro del directorio ldquorootsshrdquo en el servidor primario (IP 192168131) podemos ver la existencia de los archivos ldquoid_rsardquoe ldquoid_rsapubrdquo que son los que contienen la clave puacuteblica para acceder al mismo en forma segura utilizando SSH generaremos nuevamente las mismas Esta clave es las que serviraacute luego para poder hacer que las PCs que funcionan como servidores secundarios se conecten al servidor primario en forma segura y sin necesidad de tipear ninguacuten password para ello (Passwordless Connection)

Regeneracioacuten de los archivos de clave puacuteblica en el servidor primario o maestro (vieacutendose algo similar al print screen)

root192168131 ssh-keygen -t rsa

Paacutegina 13 de 27

33 Configuracioacuten de los servidores secundarios (vieacutendose algo similar al print screen)

Una vez generado el archivo que contiene la clave puacuteblica (id_rsapub) se copia a las demaacutes PCs o servidores secundarios (en nuestro caso nuacutemeros IP desde el 192168132 al 192168136) para que los mismos puedan acceder a ejecutar los comandos que el usuario necesite sin requerir password (Passwordless Connection)

Este paso debe repetirse por cada servidor secundario por lo que la sintaxis vista en el print screen maacutes abajo cambiaraacute en su segunda parte de ldquoroot192168132homenombre-usuarioid_rsaserverpubrdquo a ldquoroot192168133homenombre-usuarioid_rsaserverpubrdquo y asiacute sucesivamente hasta llegar al nuacutemero IP 192168136

Paacutegina 14 de 27

34 Modificacioacuten de los archivos de configuracioacuten del servidor primario o maestro

Debemos modificar en el servidor primario o maestro el archivo ldquoetcopenmpiopenmpi-default-hostfilerdquo Este archivo es el que contiene tanto los nuacutemeros IP de todos los nodos de nuestro superservidor (recordar que nodo es tanto el servidor primario como los secundarios) como la cantidad de procesadores que tiene cada nodo es de 2 pondremos este valor

Paacutegina 15 de 27

Agregando lo siguiente al archivo

192168231 slots=2

192168232 slots=2

192168233 slots=2

192168234 slots=2

192168235 slots=2

192168236 slots=2

Como dato adicional y a modo de ejemplo mostraremos como deben modificarse los siguientes archivos agregando lo que figura debajo de cada tiacutetulo (no entraremos en detalle en cuanto a la explicacioacuten de cada uno respecta debido a que forman parte de la configuracioacuten standard de la red del sistema operativo Linux Debian versioacuten 50 (Lenny))

Archivo ldquoetcresolvconfrdquo

domain lanfrhutneduar

Paacutegina 16 de 27

search lanfrhutneduar frhutneduar

nameserver 19216821

nameserver 17021017154

Archivo ldquoetchostsrdquo

192168231 symc01nnfrhutneduar symc01

192168232 symc02nnfrhutneduar symc02

192168233 symc03nnfrhutneduar symc03

192168234 symc04nnfrhutneduar symc04

192168235 symc05nnfrhutneduar symc05

192168236 symc06nnfrhutneduar symc06

Archivo ldquoetcnetworkinterfacesrdquo

iface eth0 inet static

address 192168231

netmask 2552552550

gateway 19216821

35 Prueba de conexioacuten y configuracioacuten desde el servidor primario o

Paacutegina 17 de 27

maestro a los servidores secundarios

Ahora deberemos realizar los siguientes pasos en cada servidor secundario (en nuestro casos desde el IP 192168132 al IP 192168136)

Realizamos una prueba de conexioacuten viacutea SSH para ver si funciona la conectividad sin password (Passwordless Connection) desde el servidor primario (IP 192168131) al primer servidor secundario (IP 192168132) Una vez que SSH encuentre el servidor secundario nos solicitaraacute el password del usuario ROOT por lo que deberemos escribirlo para ingresar al mismo

Modificar los permisos del directorio ldquorootsshrdquo ponieacutendolos en 700

Agregar el pasword puacuteblico al archivo ldquorootsshauthorized_keysrdquo

Cambiar los permisos del archivo ldquoauthorized_keysrdquo ponieacutendolos en 644

Una vez finalizados estos pasos deberemos hacer lo mismo con los demaacutes

servidores secundarios vieacutendose algo similar al siguiente print screen

Paacutegina 18 de 27

4 Probando nuestro superservidor Asumimos en este paso que ya deberiacuteamos tener instalado apropiadamente nuestro superservidor con capacidades de procesamiento paralelo del tipo MPI ahora usted pude probar el mismo con un programa de testeo que calcularaacute el nuacutemero PI

El programa a utilizarse seraacute el contenido en el archivo ldquoPicrdquo el mismo es un programa simple escrito en lenguaje ldquoC que reporta el nuacuteemro PI de cada nodo sobre el superservidor usando los servicios MPI

41 Para esto deberemos descargar el archivo ldquoPicrdquo del link httpwwwps3clusterorgdistrospic y ponerlo en el directorio ldquoopenmpirdquoen el servidor primario o maestro (se adjunta maacutes abajo el programa del sitio original para que pueda guardarse en un archivo que deberaacute llamarse ldquoPicrdquo)

COMIENZO DEL PROGRAMA To run this program --------------------- Issue time mpirun -np [nprocs] pi (SGI Beowulf) ------------------------------------------------------------------ include ltstdiohgt include ltstdlibhgt

Paacutegina 19 de 27

include mpih int main(int argc char argv[]) int i n double h pi x int me nprocs double piece --------------------------------------------------- MPI_Init (ampargc ampargv) MPI_Comm_size (MPI_COMM_WORLD ampnprocs) MPI_Comm_rank (MPI_COMM_WORLD ampme) --------------------------------------------------- if (me == 0) printf(s Input number of intervalsn) scanf (d ampn)

Paacutegina 20 de 27

--------------------------------------------------- MPI_Bcast (ampn 1 MPI_INT 0 MPI_COMM_WORLD) --------------------------------------------------- h = 1 (double) n piece = 0 for (i=me+1 i lt= n i+=nprocs) x = (i-1)h piece = piece + ( 4 (1+(x)(x)) + 4 (1+(x+h)(x+h)) ) 2 h printf(d pi = 2515fn me piece)

Paacutegina 21 de 27

--------------------------------------------------- MPI_Reduce (amppiece amppi 1 MPI_DOUBLE MPI_SUM 0 MPI_COMM_WORLD) --------------------------------------------------- if (me = = 0) printf(pi = 2515fn pi) --------------------------------------------------- MPI_Finalize() return 0 FIN DEL PROGRAMA

Paacutegina 22 de 27

42 Compilar el programa utilizando el comando ldquompiccrdquo Como resultado se

generaraacute un archivo binario ejecutable llamado ldquoPirdquo

Paacutegina 23 de 27

43 Para ejecutar el programa ldquoPirdquo en forma local solo basta con tipear

ldquoroot192168131~ mpirun -np 2 Pirdquo el nuacutemero 2 denota la cantidad de procesos que se utilizaraacuten cuando se ejecute el programa

Paacutegina 24 de 27

44 Para realizar la ejecucioacuten del programa ldquoPirdquoen nuestro superservidor

ahora deberemos realizar una copia del programa ldquoPirdquoen cada directorio compartido de nuestro ldquoNFSrdquo de cada nodo Como paso posterior ejecutaremos desde el servidor primario nuevamente nuestro programa tecleando ldquoroot192168131~ mpirun -np 12 Pirdquo Vemos que se ha aumentado la cantidad de procesos (slots) esto es debido a que ahora estaremos realizando la ejecucioacuten con mayor cantidad de procesadores (12 en total)

Paacutegina 25 de 27

45 Para visualizar la cantidad de procesos utilizaremos el comando ldquoTOPrdquo Aquiacute veremos los datos de cada proceso paralelo ejecutado

Paacutegina 26 de 27

Fuentes consultadas y sitios de intereacutes

httpwwwdebianorg

httpwwwopen-mpiorg

httpwwwps3clusterumassdeduindexhtml

httpwwwphilchencom20070728how-to-enable-passwordless-authentication-with-ssh

6 Autores Alumnos de la Universidad Tecnoloacutegica Nacional ndash Facultad Regional Haedo ndash Laboratorio de Simulacioacuten y Mecaacutenica Computacional

Andreacutes Trapanotto

Antonio Sebastiaacuten Rodriacuteguez Capello

7 Agradecimientos Profesores de la Universidad Tecnoloacutegica Nacional ndash Facultad Regional Haedo ndash Laboratorio de Simulacioacuten y Mecaacutenica Computacional

Ing Carlos Carlassare

Ing Miguel Bavaro

Ing Juan C Polidoro

Paacutegina 27 de 27

Page 5: Instalacin de un Super-Servidor de procesamiento paralelo … · 2010-01-30 · computadora mediante un intérprete de comandos, y también puede redirigir el tráfico de X para poder

1 Prerrequisitos de hardware 11 Prerrequisitos miacutenimos

Una PC con conexioacuten a internet permanente para poder descargar el Small CD de Debian Lenny [httpwwwdebianorgdistribnetinstsmallcd]

Grabadora de CD

Un CD en blanco para grabar dicha imagen descargada

Realizar la instalacioacuten de Linux Debian versioacuten 50 (Lenny) en una particioacuten adicional de la PC o instalarlo en una PC diferente [httpwwwdebianorgreleasesstablei386indexhtmles]

Para todos los pasos anteriores conexioacuten a internet permanente

12 Prerrequisitos requeridos

Una PC con conexioacuten a internet permanente para poder descargar el Small CD de Debian Lenny [httpwwwdebianorgdistribnetinstsmallcd]

Grabadora de CD

Un CD en blanco para grabar dicha imagen descargada

Realizar la instalacioacuten de Linux Debian versioacuten 50 (Lenny) en dos o maacutes PCs [httpwwwdebianorgreleasesstablei386indexhtmles]

Para todos los pasos anteriores conexioacuten a internet permanente

Paacutegina 5 de 27

2 Instalacioacuten del software necesario

21 Instalacioacuten del sistema operativo Debian versioacuten 50 (Lenny)

Debido a que estaacute fuera del alcance del presente mini How To no se indican los pasos para la instalacioacuten de Debian versioacuten 50 (Lenny) en este punto se recomienda consultar el manual de instalacioacuten en el siguiente link [httpwwwdebianorgreleasesstablei386indexhtmles]

22 Instalacioacuten de paquetes requeridos en el servidor primario o maestro y en los servidores secundarios

Para esto utilizaremos el comando APT (Advanced Package Tool) en un terminal ingresando como usuario Root En nuestro caso estamos utilizando la intefaz graacutefica Gnome 2223

Estos paquetes deben instalarse en todas las maacutequinas que formen parte del superservidor tener en cuenta que soacutelo una de las PCs funcionaraacute como servidor primario o maestro (en nuestro caso la que tiene nuacutemero IP 192168131) teniendo las demaacutes PCs la funcioacuten de servidores secundarios

221 Instalacioacuten de SSH (Secure Shell)

Descripcioacuten del paquete

SSH (Secure SHell en espantildeol inteacuterprete de oacuterdenes segura) es el nombre de un protocolo y del programa que lo implementa y sirve para acceder a maacutequinas remotas a traveacutes de una red Permite manejar por completo la computadora mediante un inteacuterprete de comandos y tambieacuten puede redirigir el traacutefico de X para poder ejecutar programas graacuteficos si tenemos un Servidor X (en sistemas Unix y Windows) corriendo

Ademaacutes de la conexioacuten a otras maacutequinas SSH nos permite copiar datos de forma segura (tanto ficheros sueltos como simular sesiones FTP cifradas) gestionar claves RSA para no escribir claves al conectar a las maacutequinas y pasar los datos de cualquier otra aplicacioacuten por un canal seguro tunelizado mediante SSH

La instalacioacuten de este programa es necesario para que las computadores intercambien informacioacuten en forma segura

Paacutegina 6 de 27

Instalacioacuten del paquete (vieacutendose algo similar al print screen)

root192168131 apt-get install openssh-server

222 Instalacioacuten de RSSH (Restricted Secure Shell)

Descripcioacuten del paquete

RSSH es un shell restringido que provee acceso limitado a un server viacutea SSH incluyendo soporte a RDIST RSYNC y CVS Un ejemplo de utilizacioacuten es si se tuviese un servidor en el cual soacutelo se quiere que los usuarios copien ficheros con el somando SCP (Secure Copy) sin proveer acceso al shell puede usarse RSSH para hacerlo

Paacutegina 7 de 27

Instalacioacuten del paquete (vieacutendose algo similar al print screen)

root192168131 apt-get install rssh

223 Instalacioacuten del paquete NFS-KERNEL-SERVER

Descripcioacuten del paquete

MPI necesita encontrar especiacuteficamente el programa que se quiere ejecutar en los nodos (son nodos servidores primadior y secundarios) del superservidor NFS (Net File System) provee un directorio puacuteblico en cada nodo del superservidor para ejecutar el programa que el usuario quiera ejecutar

Paacutegina 8 de 27

Instalacioacuten del paquete (vieacutendose algo similar al print screen)

root192168131 apt-get install nfs-kernel-server

224 Instalacioacuten de los paquetes LIBOPENMPI-DEV LIBOPENMPI1 OPENMPI-BIN OPENMPI-COMMON y OPENMPI-DOC

Descripcioacuten de los paquetes

MPI (Message Passing Interface Interfaz de Paso de Mensajes) es un estaacutendar que define la sintaxis y la semaacutentica de las funciones contenidas en una biblioteca de paso de mensajes disentildeada para ser usada en programas que exploten la existencia de muacuteltiples procesadores

El paso de mensajes es una teacutecnica empleada en programacioacuten concurrente para aportar sincronizacioacuten entre procesos y permitir la exclusioacuten mutua de manera similar a como se hace con los semaacuteforos monitores etc

Su principal caracteriacutestica es que no precisa de memoria compartida por lo que es muy importante en la programacioacuten de sistemas distribuidos

Paacutegina 9 de 27

Instalacioacuten del paquete (vieacutendose algo similar al print screen)

root192168131 apt-get install libopenmpi-dev libopenmpi1 openmpi-bin openmpi-common openmpi-doc

225 Instalacioacuten y desinstalacioacuten de otros paquetes

En nuestro sistema aparte de los mencionados se han instalado adicionalmente los siguientes paquetes (apt-get install NOMBRE-PAQUETE)

mc

gfortran

build-essentials

popularity-contest

ntp

ntpdate

sshguard

autossh

Paacutegina 10 de 27

iproute

iptables

smartmontools

Desinstalaacutendose los siguientes paquetes (apt-get remove NOMBRE PAQUETE)

network-manager

avahi-daemon

226 Instalacioacuten de los paquetes en los servidores secundarios

Realizar los pasos 221 222 223 224 y 225 en las PCs que vayan a funcionar como servidores secundarios en nuestro caso las PCs con nuacutemeros IP desde el 192168132 al 192168136

Recordemos que los pasos son los siguientes

221 root19216813236 apt-get install openssh-server

222 root19216813236 apt-get install rssh

223 root19216813236 apt-get install nfs-kernel-server

224 root19216813236 apt-get install libopenmpi-dev libopenmpi1 openmpi-bin openmpi-common openmpi-doc

225 Instalacioacuten y desinstalacioacuten de paquetes adicionales

Paacutegina 11 de 27

3 Configuracioacuten de servidores primario o maestro y secundarios La configuracioacuten se requiere tanto en el servidor primario o maestro como en los servidores secundarios Esta configuracioacuten se requiere para que el sistema quede en funcionamiento

31 Verificacioacuten de directorios y clave puacuteblica en el servidor primario o maestro

Una vez finalizada la instalacioacuten todos los paquetes deberiacuteamos poder ingresar al directorio ldquorootsshrdquo para ver su contenido (vieacutendose algo similar al siguiente print screen)

Paacutegina 12 de 27

32 Regeneracioacuten de archivos de clave puacuteblica en el servidor primario o maestro

Este paso soacutelo debe hacerse en el servidor primario o maestro Si bien dentro del directorio ldquorootsshrdquo en el servidor primario (IP 192168131) podemos ver la existencia de los archivos ldquoid_rsardquoe ldquoid_rsapubrdquo que son los que contienen la clave puacuteblica para acceder al mismo en forma segura utilizando SSH generaremos nuevamente las mismas Esta clave es las que serviraacute luego para poder hacer que las PCs que funcionan como servidores secundarios se conecten al servidor primario en forma segura y sin necesidad de tipear ninguacuten password para ello (Passwordless Connection)

Regeneracioacuten de los archivos de clave puacuteblica en el servidor primario o maestro (vieacutendose algo similar al print screen)

root192168131 ssh-keygen -t rsa

Paacutegina 13 de 27

33 Configuracioacuten de los servidores secundarios (vieacutendose algo similar al print screen)

Una vez generado el archivo que contiene la clave puacuteblica (id_rsapub) se copia a las demaacutes PCs o servidores secundarios (en nuestro caso nuacutemeros IP desde el 192168132 al 192168136) para que los mismos puedan acceder a ejecutar los comandos que el usuario necesite sin requerir password (Passwordless Connection)

Este paso debe repetirse por cada servidor secundario por lo que la sintaxis vista en el print screen maacutes abajo cambiaraacute en su segunda parte de ldquoroot192168132homenombre-usuarioid_rsaserverpubrdquo a ldquoroot192168133homenombre-usuarioid_rsaserverpubrdquo y asiacute sucesivamente hasta llegar al nuacutemero IP 192168136

Paacutegina 14 de 27

34 Modificacioacuten de los archivos de configuracioacuten del servidor primario o maestro

Debemos modificar en el servidor primario o maestro el archivo ldquoetcopenmpiopenmpi-default-hostfilerdquo Este archivo es el que contiene tanto los nuacutemeros IP de todos los nodos de nuestro superservidor (recordar que nodo es tanto el servidor primario como los secundarios) como la cantidad de procesadores que tiene cada nodo es de 2 pondremos este valor

Paacutegina 15 de 27

Agregando lo siguiente al archivo

192168231 slots=2

192168232 slots=2

192168233 slots=2

192168234 slots=2

192168235 slots=2

192168236 slots=2

Como dato adicional y a modo de ejemplo mostraremos como deben modificarse los siguientes archivos agregando lo que figura debajo de cada tiacutetulo (no entraremos en detalle en cuanto a la explicacioacuten de cada uno respecta debido a que forman parte de la configuracioacuten standard de la red del sistema operativo Linux Debian versioacuten 50 (Lenny))

Archivo ldquoetcresolvconfrdquo

domain lanfrhutneduar

Paacutegina 16 de 27

search lanfrhutneduar frhutneduar

nameserver 19216821

nameserver 17021017154

Archivo ldquoetchostsrdquo

192168231 symc01nnfrhutneduar symc01

192168232 symc02nnfrhutneduar symc02

192168233 symc03nnfrhutneduar symc03

192168234 symc04nnfrhutneduar symc04

192168235 symc05nnfrhutneduar symc05

192168236 symc06nnfrhutneduar symc06

Archivo ldquoetcnetworkinterfacesrdquo

iface eth0 inet static

address 192168231

netmask 2552552550

gateway 19216821

35 Prueba de conexioacuten y configuracioacuten desde el servidor primario o

Paacutegina 17 de 27

maestro a los servidores secundarios

Ahora deberemos realizar los siguientes pasos en cada servidor secundario (en nuestro casos desde el IP 192168132 al IP 192168136)

Realizamos una prueba de conexioacuten viacutea SSH para ver si funciona la conectividad sin password (Passwordless Connection) desde el servidor primario (IP 192168131) al primer servidor secundario (IP 192168132) Una vez que SSH encuentre el servidor secundario nos solicitaraacute el password del usuario ROOT por lo que deberemos escribirlo para ingresar al mismo

Modificar los permisos del directorio ldquorootsshrdquo ponieacutendolos en 700

Agregar el pasword puacuteblico al archivo ldquorootsshauthorized_keysrdquo

Cambiar los permisos del archivo ldquoauthorized_keysrdquo ponieacutendolos en 644

Una vez finalizados estos pasos deberemos hacer lo mismo con los demaacutes

servidores secundarios vieacutendose algo similar al siguiente print screen

Paacutegina 18 de 27

4 Probando nuestro superservidor Asumimos en este paso que ya deberiacuteamos tener instalado apropiadamente nuestro superservidor con capacidades de procesamiento paralelo del tipo MPI ahora usted pude probar el mismo con un programa de testeo que calcularaacute el nuacutemero PI

El programa a utilizarse seraacute el contenido en el archivo ldquoPicrdquo el mismo es un programa simple escrito en lenguaje ldquoC que reporta el nuacuteemro PI de cada nodo sobre el superservidor usando los servicios MPI

41 Para esto deberemos descargar el archivo ldquoPicrdquo del link httpwwwps3clusterorgdistrospic y ponerlo en el directorio ldquoopenmpirdquoen el servidor primario o maestro (se adjunta maacutes abajo el programa del sitio original para que pueda guardarse en un archivo que deberaacute llamarse ldquoPicrdquo)

COMIENZO DEL PROGRAMA To run this program --------------------- Issue time mpirun -np [nprocs] pi (SGI Beowulf) ------------------------------------------------------------------ include ltstdiohgt include ltstdlibhgt

Paacutegina 19 de 27

include mpih int main(int argc char argv[]) int i n double h pi x int me nprocs double piece --------------------------------------------------- MPI_Init (ampargc ampargv) MPI_Comm_size (MPI_COMM_WORLD ampnprocs) MPI_Comm_rank (MPI_COMM_WORLD ampme) --------------------------------------------------- if (me == 0) printf(s Input number of intervalsn) scanf (d ampn)

Paacutegina 20 de 27

--------------------------------------------------- MPI_Bcast (ampn 1 MPI_INT 0 MPI_COMM_WORLD) --------------------------------------------------- h = 1 (double) n piece = 0 for (i=me+1 i lt= n i+=nprocs) x = (i-1)h piece = piece + ( 4 (1+(x)(x)) + 4 (1+(x+h)(x+h)) ) 2 h printf(d pi = 2515fn me piece)

Paacutegina 21 de 27

--------------------------------------------------- MPI_Reduce (amppiece amppi 1 MPI_DOUBLE MPI_SUM 0 MPI_COMM_WORLD) --------------------------------------------------- if (me = = 0) printf(pi = 2515fn pi) --------------------------------------------------- MPI_Finalize() return 0 FIN DEL PROGRAMA

Paacutegina 22 de 27

42 Compilar el programa utilizando el comando ldquompiccrdquo Como resultado se

generaraacute un archivo binario ejecutable llamado ldquoPirdquo

Paacutegina 23 de 27

43 Para ejecutar el programa ldquoPirdquo en forma local solo basta con tipear

ldquoroot192168131~ mpirun -np 2 Pirdquo el nuacutemero 2 denota la cantidad de procesos que se utilizaraacuten cuando se ejecute el programa

Paacutegina 24 de 27

44 Para realizar la ejecucioacuten del programa ldquoPirdquoen nuestro superservidor

ahora deberemos realizar una copia del programa ldquoPirdquoen cada directorio compartido de nuestro ldquoNFSrdquo de cada nodo Como paso posterior ejecutaremos desde el servidor primario nuevamente nuestro programa tecleando ldquoroot192168131~ mpirun -np 12 Pirdquo Vemos que se ha aumentado la cantidad de procesos (slots) esto es debido a que ahora estaremos realizando la ejecucioacuten con mayor cantidad de procesadores (12 en total)

Paacutegina 25 de 27

45 Para visualizar la cantidad de procesos utilizaremos el comando ldquoTOPrdquo Aquiacute veremos los datos de cada proceso paralelo ejecutado

Paacutegina 26 de 27

Fuentes consultadas y sitios de intereacutes

httpwwwdebianorg

httpwwwopen-mpiorg

httpwwwps3clusterumassdeduindexhtml

httpwwwphilchencom20070728how-to-enable-passwordless-authentication-with-ssh

6 Autores Alumnos de la Universidad Tecnoloacutegica Nacional ndash Facultad Regional Haedo ndash Laboratorio de Simulacioacuten y Mecaacutenica Computacional

Andreacutes Trapanotto

Antonio Sebastiaacuten Rodriacuteguez Capello

7 Agradecimientos Profesores de la Universidad Tecnoloacutegica Nacional ndash Facultad Regional Haedo ndash Laboratorio de Simulacioacuten y Mecaacutenica Computacional

Ing Carlos Carlassare

Ing Miguel Bavaro

Ing Juan C Polidoro

Paacutegina 27 de 27

Page 6: Instalacin de un Super-Servidor de procesamiento paralelo … · 2010-01-30 · computadora mediante un intérprete de comandos, y también puede redirigir el tráfico de X para poder

2 Instalacioacuten del software necesario

21 Instalacioacuten del sistema operativo Debian versioacuten 50 (Lenny)

Debido a que estaacute fuera del alcance del presente mini How To no se indican los pasos para la instalacioacuten de Debian versioacuten 50 (Lenny) en este punto se recomienda consultar el manual de instalacioacuten en el siguiente link [httpwwwdebianorgreleasesstablei386indexhtmles]

22 Instalacioacuten de paquetes requeridos en el servidor primario o maestro y en los servidores secundarios

Para esto utilizaremos el comando APT (Advanced Package Tool) en un terminal ingresando como usuario Root En nuestro caso estamos utilizando la intefaz graacutefica Gnome 2223

Estos paquetes deben instalarse en todas las maacutequinas que formen parte del superservidor tener en cuenta que soacutelo una de las PCs funcionaraacute como servidor primario o maestro (en nuestro caso la que tiene nuacutemero IP 192168131) teniendo las demaacutes PCs la funcioacuten de servidores secundarios

221 Instalacioacuten de SSH (Secure Shell)

Descripcioacuten del paquete

SSH (Secure SHell en espantildeol inteacuterprete de oacuterdenes segura) es el nombre de un protocolo y del programa que lo implementa y sirve para acceder a maacutequinas remotas a traveacutes de una red Permite manejar por completo la computadora mediante un inteacuterprete de comandos y tambieacuten puede redirigir el traacutefico de X para poder ejecutar programas graacuteficos si tenemos un Servidor X (en sistemas Unix y Windows) corriendo

Ademaacutes de la conexioacuten a otras maacutequinas SSH nos permite copiar datos de forma segura (tanto ficheros sueltos como simular sesiones FTP cifradas) gestionar claves RSA para no escribir claves al conectar a las maacutequinas y pasar los datos de cualquier otra aplicacioacuten por un canal seguro tunelizado mediante SSH

La instalacioacuten de este programa es necesario para que las computadores intercambien informacioacuten en forma segura

Paacutegina 6 de 27

Instalacioacuten del paquete (vieacutendose algo similar al print screen)

root192168131 apt-get install openssh-server

222 Instalacioacuten de RSSH (Restricted Secure Shell)

Descripcioacuten del paquete

RSSH es un shell restringido que provee acceso limitado a un server viacutea SSH incluyendo soporte a RDIST RSYNC y CVS Un ejemplo de utilizacioacuten es si se tuviese un servidor en el cual soacutelo se quiere que los usuarios copien ficheros con el somando SCP (Secure Copy) sin proveer acceso al shell puede usarse RSSH para hacerlo

Paacutegina 7 de 27

Instalacioacuten del paquete (vieacutendose algo similar al print screen)

root192168131 apt-get install rssh

223 Instalacioacuten del paquete NFS-KERNEL-SERVER

Descripcioacuten del paquete

MPI necesita encontrar especiacuteficamente el programa que se quiere ejecutar en los nodos (son nodos servidores primadior y secundarios) del superservidor NFS (Net File System) provee un directorio puacuteblico en cada nodo del superservidor para ejecutar el programa que el usuario quiera ejecutar

Paacutegina 8 de 27

Instalacioacuten del paquete (vieacutendose algo similar al print screen)

root192168131 apt-get install nfs-kernel-server

224 Instalacioacuten de los paquetes LIBOPENMPI-DEV LIBOPENMPI1 OPENMPI-BIN OPENMPI-COMMON y OPENMPI-DOC

Descripcioacuten de los paquetes

MPI (Message Passing Interface Interfaz de Paso de Mensajes) es un estaacutendar que define la sintaxis y la semaacutentica de las funciones contenidas en una biblioteca de paso de mensajes disentildeada para ser usada en programas que exploten la existencia de muacuteltiples procesadores

El paso de mensajes es una teacutecnica empleada en programacioacuten concurrente para aportar sincronizacioacuten entre procesos y permitir la exclusioacuten mutua de manera similar a como se hace con los semaacuteforos monitores etc

Su principal caracteriacutestica es que no precisa de memoria compartida por lo que es muy importante en la programacioacuten de sistemas distribuidos

Paacutegina 9 de 27

Instalacioacuten del paquete (vieacutendose algo similar al print screen)

root192168131 apt-get install libopenmpi-dev libopenmpi1 openmpi-bin openmpi-common openmpi-doc

225 Instalacioacuten y desinstalacioacuten de otros paquetes

En nuestro sistema aparte de los mencionados se han instalado adicionalmente los siguientes paquetes (apt-get install NOMBRE-PAQUETE)

mc

gfortran

build-essentials

popularity-contest

ntp

ntpdate

sshguard

autossh

Paacutegina 10 de 27

iproute

iptables

smartmontools

Desinstalaacutendose los siguientes paquetes (apt-get remove NOMBRE PAQUETE)

network-manager

avahi-daemon

226 Instalacioacuten de los paquetes en los servidores secundarios

Realizar los pasos 221 222 223 224 y 225 en las PCs que vayan a funcionar como servidores secundarios en nuestro caso las PCs con nuacutemeros IP desde el 192168132 al 192168136

Recordemos que los pasos son los siguientes

221 root19216813236 apt-get install openssh-server

222 root19216813236 apt-get install rssh

223 root19216813236 apt-get install nfs-kernel-server

224 root19216813236 apt-get install libopenmpi-dev libopenmpi1 openmpi-bin openmpi-common openmpi-doc

225 Instalacioacuten y desinstalacioacuten de paquetes adicionales

Paacutegina 11 de 27

3 Configuracioacuten de servidores primario o maestro y secundarios La configuracioacuten se requiere tanto en el servidor primario o maestro como en los servidores secundarios Esta configuracioacuten se requiere para que el sistema quede en funcionamiento

31 Verificacioacuten de directorios y clave puacuteblica en el servidor primario o maestro

Una vez finalizada la instalacioacuten todos los paquetes deberiacuteamos poder ingresar al directorio ldquorootsshrdquo para ver su contenido (vieacutendose algo similar al siguiente print screen)

Paacutegina 12 de 27

32 Regeneracioacuten de archivos de clave puacuteblica en el servidor primario o maestro

Este paso soacutelo debe hacerse en el servidor primario o maestro Si bien dentro del directorio ldquorootsshrdquo en el servidor primario (IP 192168131) podemos ver la existencia de los archivos ldquoid_rsardquoe ldquoid_rsapubrdquo que son los que contienen la clave puacuteblica para acceder al mismo en forma segura utilizando SSH generaremos nuevamente las mismas Esta clave es las que serviraacute luego para poder hacer que las PCs que funcionan como servidores secundarios se conecten al servidor primario en forma segura y sin necesidad de tipear ninguacuten password para ello (Passwordless Connection)

Regeneracioacuten de los archivos de clave puacuteblica en el servidor primario o maestro (vieacutendose algo similar al print screen)

root192168131 ssh-keygen -t rsa

Paacutegina 13 de 27

33 Configuracioacuten de los servidores secundarios (vieacutendose algo similar al print screen)

Una vez generado el archivo que contiene la clave puacuteblica (id_rsapub) se copia a las demaacutes PCs o servidores secundarios (en nuestro caso nuacutemeros IP desde el 192168132 al 192168136) para que los mismos puedan acceder a ejecutar los comandos que el usuario necesite sin requerir password (Passwordless Connection)

Este paso debe repetirse por cada servidor secundario por lo que la sintaxis vista en el print screen maacutes abajo cambiaraacute en su segunda parte de ldquoroot192168132homenombre-usuarioid_rsaserverpubrdquo a ldquoroot192168133homenombre-usuarioid_rsaserverpubrdquo y asiacute sucesivamente hasta llegar al nuacutemero IP 192168136

Paacutegina 14 de 27

34 Modificacioacuten de los archivos de configuracioacuten del servidor primario o maestro

Debemos modificar en el servidor primario o maestro el archivo ldquoetcopenmpiopenmpi-default-hostfilerdquo Este archivo es el que contiene tanto los nuacutemeros IP de todos los nodos de nuestro superservidor (recordar que nodo es tanto el servidor primario como los secundarios) como la cantidad de procesadores que tiene cada nodo es de 2 pondremos este valor

Paacutegina 15 de 27

Agregando lo siguiente al archivo

192168231 slots=2

192168232 slots=2

192168233 slots=2

192168234 slots=2

192168235 slots=2

192168236 slots=2

Como dato adicional y a modo de ejemplo mostraremos como deben modificarse los siguientes archivos agregando lo que figura debajo de cada tiacutetulo (no entraremos en detalle en cuanto a la explicacioacuten de cada uno respecta debido a que forman parte de la configuracioacuten standard de la red del sistema operativo Linux Debian versioacuten 50 (Lenny))

Archivo ldquoetcresolvconfrdquo

domain lanfrhutneduar

Paacutegina 16 de 27

search lanfrhutneduar frhutneduar

nameserver 19216821

nameserver 17021017154

Archivo ldquoetchostsrdquo

192168231 symc01nnfrhutneduar symc01

192168232 symc02nnfrhutneduar symc02

192168233 symc03nnfrhutneduar symc03

192168234 symc04nnfrhutneduar symc04

192168235 symc05nnfrhutneduar symc05

192168236 symc06nnfrhutneduar symc06

Archivo ldquoetcnetworkinterfacesrdquo

iface eth0 inet static

address 192168231

netmask 2552552550

gateway 19216821

35 Prueba de conexioacuten y configuracioacuten desde el servidor primario o

Paacutegina 17 de 27

maestro a los servidores secundarios

Ahora deberemos realizar los siguientes pasos en cada servidor secundario (en nuestro casos desde el IP 192168132 al IP 192168136)

Realizamos una prueba de conexioacuten viacutea SSH para ver si funciona la conectividad sin password (Passwordless Connection) desde el servidor primario (IP 192168131) al primer servidor secundario (IP 192168132) Una vez que SSH encuentre el servidor secundario nos solicitaraacute el password del usuario ROOT por lo que deberemos escribirlo para ingresar al mismo

Modificar los permisos del directorio ldquorootsshrdquo ponieacutendolos en 700

Agregar el pasword puacuteblico al archivo ldquorootsshauthorized_keysrdquo

Cambiar los permisos del archivo ldquoauthorized_keysrdquo ponieacutendolos en 644

Una vez finalizados estos pasos deberemos hacer lo mismo con los demaacutes

servidores secundarios vieacutendose algo similar al siguiente print screen

Paacutegina 18 de 27

4 Probando nuestro superservidor Asumimos en este paso que ya deberiacuteamos tener instalado apropiadamente nuestro superservidor con capacidades de procesamiento paralelo del tipo MPI ahora usted pude probar el mismo con un programa de testeo que calcularaacute el nuacutemero PI

El programa a utilizarse seraacute el contenido en el archivo ldquoPicrdquo el mismo es un programa simple escrito en lenguaje ldquoC que reporta el nuacuteemro PI de cada nodo sobre el superservidor usando los servicios MPI

41 Para esto deberemos descargar el archivo ldquoPicrdquo del link httpwwwps3clusterorgdistrospic y ponerlo en el directorio ldquoopenmpirdquoen el servidor primario o maestro (se adjunta maacutes abajo el programa del sitio original para que pueda guardarse en un archivo que deberaacute llamarse ldquoPicrdquo)

COMIENZO DEL PROGRAMA To run this program --------------------- Issue time mpirun -np [nprocs] pi (SGI Beowulf) ------------------------------------------------------------------ include ltstdiohgt include ltstdlibhgt

Paacutegina 19 de 27

include mpih int main(int argc char argv[]) int i n double h pi x int me nprocs double piece --------------------------------------------------- MPI_Init (ampargc ampargv) MPI_Comm_size (MPI_COMM_WORLD ampnprocs) MPI_Comm_rank (MPI_COMM_WORLD ampme) --------------------------------------------------- if (me == 0) printf(s Input number of intervalsn) scanf (d ampn)

Paacutegina 20 de 27

--------------------------------------------------- MPI_Bcast (ampn 1 MPI_INT 0 MPI_COMM_WORLD) --------------------------------------------------- h = 1 (double) n piece = 0 for (i=me+1 i lt= n i+=nprocs) x = (i-1)h piece = piece + ( 4 (1+(x)(x)) + 4 (1+(x+h)(x+h)) ) 2 h printf(d pi = 2515fn me piece)

Paacutegina 21 de 27

--------------------------------------------------- MPI_Reduce (amppiece amppi 1 MPI_DOUBLE MPI_SUM 0 MPI_COMM_WORLD) --------------------------------------------------- if (me = = 0) printf(pi = 2515fn pi) --------------------------------------------------- MPI_Finalize() return 0 FIN DEL PROGRAMA

Paacutegina 22 de 27

42 Compilar el programa utilizando el comando ldquompiccrdquo Como resultado se

generaraacute un archivo binario ejecutable llamado ldquoPirdquo

Paacutegina 23 de 27

43 Para ejecutar el programa ldquoPirdquo en forma local solo basta con tipear

ldquoroot192168131~ mpirun -np 2 Pirdquo el nuacutemero 2 denota la cantidad de procesos que se utilizaraacuten cuando se ejecute el programa

Paacutegina 24 de 27

44 Para realizar la ejecucioacuten del programa ldquoPirdquoen nuestro superservidor

ahora deberemos realizar una copia del programa ldquoPirdquoen cada directorio compartido de nuestro ldquoNFSrdquo de cada nodo Como paso posterior ejecutaremos desde el servidor primario nuevamente nuestro programa tecleando ldquoroot192168131~ mpirun -np 12 Pirdquo Vemos que se ha aumentado la cantidad de procesos (slots) esto es debido a que ahora estaremos realizando la ejecucioacuten con mayor cantidad de procesadores (12 en total)

Paacutegina 25 de 27

45 Para visualizar la cantidad de procesos utilizaremos el comando ldquoTOPrdquo Aquiacute veremos los datos de cada proceso paralelo ejecutado

Paacutegina 26 de 27

Fuentes consultadas y sitios de intereacutes

httpwwwdebianorg

httpwwwopen-mpiorg

httpwwwps3clusterumassdeduindexhtml

httpwwwphilchencom20070728how-to-enable-passwordless-authentication-with-ssh

6 Autores Alumnos de la Universidad Tecnoloacutegica Nacional ndash Facultad Regional Haedo ndash Laboratorio de Simulacioacuten y Mecaacutenica Computacional

Andreacutes Trapanotto

Antonio Sebastiaacuten Rodriacuteguez Capello

7 Agradecimientos Profesores de la Universidad Tecnoloacutegica Nacional ndash Facultad Regional Haedo ndash Laboratorio de Simulacioacuten y Mecaacutenica Computacional

Ing Carlos Carlassare

Ing Miguel Bavaro

Ing Juan C Polidoro

Paacutegina 27 de 27

Page 7: Instalacin de un Super-Servidor de procesamiento paralelo … · 2010-01-30 · computadora mediante un intérprete de comandos, y también puede redirigir el tráfico de X para poder

Instalacioacuten del paquete (vieacutendose algo similar al print screen)

root192168131 apt-get install openssh-server

222 Instalacioacuten de RSSH (Restricted Secure Shell)

Descripcioacuten del paquete

RSSH es un shell restringido que provee acceso limitado a un server viacutea SSH incluyendo soporte a RDIST RSYNC y CVS Un ejemplo de utilizacioacuten es si se tuviese un servidor en el cual soacutelo se quiere que los usuarios copien ficheros con el somando SCP (Secure Copy) sin proveer acceso al shell puede usarse RSSH para hacerlo

Paacutegina 7 de 27

Instalacioacuten del paquete (vieacutendose algo similar al print screen)

root192168131 apt-get install rssh

223 Instalacioacuten del paquete NFS-KERNEL-SERVER

Descripcioacuten del paquete

MPI necesita encontrar especiacuteficamente el programa que se quiere ejecutar en los nodos (son nodos servidores primadior y secundarios) del superservidor NFS (Net File System) provee un directorio puacuteblico en cada nodo del superservidor para ejecutar el programa que el usuario quiera ejecutar

Paacutegina 8 de 27

Instalacioacuten del paquete (vieacutendose algo similar al print screen)

root192168131 apt-get install nfs-kernel-server

224 Instalacioacuten de los paquetes LIBOPENMPI-DEV LIBOPENMPI1 OPENMPI-BIN OPENMPI-COMMON y OPENMPI-DOC

Descripcioacuten de los paquetes

MPI (Message Passing Interface Interfaz de Paso de Mensajes) es un estaacutendar que define la sintaxis y la semaacutentica de las funciones contenidas en una biblioteca de paso de mensajes disentildeada para ser usada en programas que exploten la existencia de muacuteltiples procesadores

El paso de mensajes es una teacutecnica empleada en programacioacuten concurrente para aportar sincronizacioacuten entre procesos y permitir la exclusioacuten mutua de manera similar a como se hace con los semaacuteforos monitores etc

Su principal caracteriacutestica es que no precisa de memoria compartida por lo que es muy importante en la programacioacuten de sistemas distribuidos

Paacutegina 9 de 27

Instalacioacuten del paquete (vieacutendose algo similar al print screen)

root192168131 apt-get install libopenmpi-dev libopenmpi1 openmpi-bin openmpi-common openmpi-doc

225 Instalacioacuten y desinstalacioacuten de otros paquetes

En nuestro sistema aparte de los mencionados se han instalado adicionalmente los siguientes paquetes (apt-get install NOMBRE-PAQUETE)

mc

gfortran

build-essentials

popularity-contest

ntp

ntpdate

sshguard

autossh

Paacutegina 10 de 27

iproute

iptables

smartmontools

Desinstalaacutendose los siguientes paquetes (apt-get remove NOMBRE PAQUETE)

network-manager

avahi-daemon

226 Instalacioacuten de los paquetes en los servidores secundarios

Realizar los pasos 221 222 223 224 y 225 en las PCs que vayan a funcionar como servidores secundarios en nuestro caso las PCs con nuacutemeros IP desde el 192168132 al 192168136

Recordemos que los pasos son los siguientes

221 root19216813236 apt-get install openssh-server

222 root19216813236 apt-get install rssh

223 root19216813236 apt-get install nfs-kernel-server

224 root19216813236 apt-get install libopenmpi-dev libopenmpi1 openmpi-bin openmpi-common openmpi-doc

225 Instalacioacuten y desinstalacioacuten de paquetes adicionales

Paacutegina 11 de 27

3 Configuracioacuten de servidores primario o maestro y secundarios La configuracioacuten se requiere tanto en el servidor primario o maestro como en los servidores secundarios Esta configuracioacuten se requiere para que el sistema quede en funcionamiento

31 Verificacioacuten de directorios y clave puacuteblica en el servidor primario o maestro

Una vez finalizada la instalacioacuten todos los paquetes deberiacuteamos poder ingresar al directorio ldquorootsshrdquo para ver su contenido (vieacutendose algo similar al siguiente print screen)

Paacutegina 12 de 27

32 Regeneracioacuten de archivos de clave puacuteblica en el servidor primario o maestro

Este paso soacutelo debe hacerse en el servidor primario o maestro Si bien dentro del directorio ldquorootsshrdquo en el servidor primario (IP 192168131) podemos ver la existencia de los archivos ldquoid_rsardquoe ldquoid_rsapubrdquo que son los que contienen la clave puacuteblica para acceder al mismo en forma segura utilizando SSH generaremos nuevamente las mismas Esta clave es las que serviraacute luego para poder hacer que las PCs que funcionan como servidores secundarios se conecten al servidor primario en forma segura y sin necesidad de tipear ninguacuten password para ello (Passwordless Connection)

Regeneracioacuten de los archivos de clave puacuteblica en el servidor primario o maestro (vieacutendose algo similar al print screen)

root192168131 ssh-keygen -t rsa

Paacutegina 13 de 27

33 Configuracioacuten de los servidores secundarios (vieacutendose algo similar al print screen)

Una vez generado el archivo que contiene la clave puacuteblica (id_rsapub) se copia a las demaacutes PCs o servidores secundarios (en nuestro caso nuacutemeros IP desde el 192168132 al 192168136) para que los mismos puedan acceder a ejecutar los comandos que el usuario necesite sin requerir password (Passwordless Connection)

Este paso debe repetirse por cada servidor secundario por lo que la sintaxis vista en el print screen maacutes abajo cambiaraacute en su segunda parte de ldquoroot192168132homenombre-usuarioid_rsaserverpubrdquo a ldquoroot192168133homenombre-usuarioid_rsaserverpubrdquo y asiacute sucesivamente hasta llegar al nuacutemero IP 192168136

Paacutegina 14 de 27

34 Modificacioacuten de los archivos de configuracioacuten del servidor primario o maestro

Debemos modificar en el servidor primario o maestro el archivo ldquoetcopenmpiopenmpi-default-hostfilerdquo Este archivo es el que contiene tanto los nuacutemeros IP de todos los nodos de nuestro superservidor (recordar que nodo es tanto el servidor primario como los secundarios) como la cantidad de procesadores que tiene cada nodo es de 2 pondremos este valor

Paacutegina 15 de 27

Agregando lo siguiente al archivo

192168231 slots=2

192168232 slots=2

192168233 slots=2

192168234 slots=2

192168235 slots=2

192168236 slots=2

Como dato adicional y a modo de ejemplo mostraremos como deben modificarse los siguientes archivos agregando lo que figura debajo de cada tiacutetulo (no entraremos en detalle en cuanto a la explicacioacuten de cada uno respecta debido a que forman parte de la configuracioacuten standard de la red del sistema operativo Linux Debian versioacuten 50 (Lenny))

Archivo ldquoetcresolvconfrdquo

domain lanfrhutneduar

Paacutegina 16 de 27

search lanfrhutneduar frhutneduar

nameserver 19216821

nameserver 17021017154

Archivo ldquoetchostsrdquo

192168231 symc01nnfrhutneduar symc01

192168232 symc02nnfrhutneduar symc02

192168233 symc03nnfrhutneduar symc03

192168234 symc04nnfrhutneduar symc04

192168235 symc05nnfrhutneduar symc05

192168236 symc06nnfrhutneduar symc06

Archivo ldquoetcnetworkinterfacesrdquo

iface eth0 inet static

address 192168231

netmask 2552552550

gateway 19216821

35 Prueba de conexioacuten y configuracioacuten desde el servidor primario o

Paacutegina 17 de 27

maestro a los servidores secundarios

Ahora deberemos realizar los siguientes pasos en cada servidor secundario (en nuestro casos desde el IP 192168132 al IP 192168136)

Realizamos una prueba de conexioacuten viacutea SSH para ver si funciona la conectividad sin password (Passwordless Connection) desde el servidor primario (IP 192168131) al primer servidor secundario (IP 192168132) Una vez que SSH encuentre el servidor secundario nos solicitaraacute el password del usuario ROOT por lo que deberemos escribirlo para ingresar al mismo

Modificar los permisos del directorio ldquorootsshrdquo ponieacutendolos en 700

Agregar el pasword puacuteblico al archivo ldquorootsshauthorized_keysrdquo

Cambiar los permisos del archivo ldquoauthorized_keysrdquo ponieacutendolos en 644

Una vez finalizados estos pasos deberemos hacer lo mismo con los demaacutes

servidores secundarios vieacutendose algo similar al siguiente print screen

Paacutegina 18 de 27

4 Probando nuestro superservidor Asumimos en este paso que ya deberiacuteamos tener instalado apropiadamente nuestro superservidor con capacidades de procesamiento paralelo del tipo MPI ahora usted pude probar el mismo con un programa de testeo que calcularaacute el nuacutemero PI

El programa a utilizarse seraacute el contenido en el archivo ldquoPicrdquo el mismo es un programa simple escrito en lenguaje ldquoC que reporta el nuacuteemro PI de cada nodo sobre el superservidor usando los servicios MPI

41 Para esto deberemos descargar el archivo ldquoPicrdquo del link httpwwwps3clusterorgdistrospic y ponerlo en el directorio ldquoopenmpirdquoen el servidor primario o maestro (se adjunta maacutes abajo el programa del sitio original para que pueda guardarse en un archivo que deberaacute llamarse ldquoPicrdquo)

COMIENZO DEL PROGRAMA To run this program --------------------- Issue time mpirun -np [nprocs] pi (SGI Beowulf) ------------------------------------------------------------------ include ltstdiohgt include ltstdlibhgt

Paacutegina 19 de 27

include mpih int main(int argc char argv[]) int i n double h pi x int me nprocs double piece --------------------------------------------------- MPI_Init (ampargc ampargv) MPI_Comm_size (MPI_COMM_WORLD ampnprocs) MPI_Comm_rank (MPI_COMM_WORLD ampme) --------------------------------------------------- if (me == 0) printf(s Input number of intervalsn) scanf (d ampn)

Paacutegina 20 de 27

--------------------------------------------------- MPI_Bcast (ampn 1 MPI_INT 0 MPI_COMM_WORLD) --------------------------------------------------- h = 1 (double) n piece = 0 for (i=me+1 i lt= n i+=nprocs) x = (i-1)h piece = piece + ( 4 (1+(x)(x)) + 4 (1+(x+h)(x+h)) ) 2 h printf(d pi = 2515fn me piece)

Paacutegina 21 de 27

--------------------------------------------------- MPI_Reduce (amppiece amppi 1 MPI_DOUBLE MPI_SUM 0 MPI_COMM_WORLD) --------------------------------------------------- if (me = = 0) printf(pi = 2515fn pi) --------------------------------------------------- MPI_Finalize() return 0 FIN DEL PROGRAMA

Paacutegina 22 de 27

42 Compilar el programa utilizando el comando ldquompiccrdquo Como resultado se

generaraacute un archivo binario ejecutable llamado ldquoPirdquo

Paacutegina 23 de 27

43 Para ejecutar el programa ldquoPirdquo en forma local solo basta con tipear

ldquoroot192168131~ mpirun -np 2 Pirdquo el nuacutemero 2 denota la cantidad de procesos que se utilizaraacuten cuando se ejecute el programa

Paacutegina 24 de 27

44 Para realizar la ejecucioacuten del programa ldquoPirdquoen nuestro superservidor

ahora deberemos realizar una copia del programa ldquoPirdquoen cada directorio compartido de nuestro ldquoNFSrdquo de cada nodo Como paso posterior ejecutaremos desde el servidor primario nuevamente nuestro programa tecleando ldquoroot192168131~ mpirun -np 12 Pirdquo Vemos que se ha aumentado la cantidad de procesos (slots) esto es debido a que ahora estaremos realizando la ejecucioacuten con mayor cantidad de procesadores (12 en total)

Paacutegina 25 de 27

45 Para visualizar la cantidad de procesos utilizaremos el comando ldquoTOPrdquo Aquiacute veremos los datos de cada proceso paralelo ejecutado

Paacutegina 26 de 27

Fuentes consultadas y sitios de intereacutes

httpwwwdebianorg

httpwwwopen-mpiorg

httpwwwps3clusterumassdeduindexhtml

httpwwwphilchencom20070728how-to-enable-passwordless-authentication-with-ssh

6 Autores Alumnos de la Universidad Tecnoloacutegica Nacional ndash Facultad Regional Haedo ndash Laboratorio de Simulacioacuten y Mecaacutenica Computacional

Andreacutes Trapanotto

Antonio Sebastiaacuten Rodriacuteguez Capello

7 Agradecimientos Profesores de la Universidad Tecnoloacutegica Nacional ndash Facultad Regional Haedo ndash Laboratorio de Simulacioacuten y Mecaacutenica Computacional

Ing Carlos Carlassare

Ing Miguel Bavaro

Ing Juan C Polidoro

Paacutegina 27 de 27

Page 8: Instalacin de un Super-Servidor de procesamiento paralelo … · 2010-01-30 · computadora mediante un intérprete de comandos, y también puede redirigir el tráfico de X para poder

Instalacioacuten del paquete (vieacutendose algo similar al print screen)

root192168131 apt-get install rssh

223 Instalacioacuten del paquete NFS-KERNEL-SERVER

Descripcioacuten del paquete

MPI necesita encontrar especiacuteficamente el programa que se quiere ejecutar en los nodos (son nodos servidores primadior y secundarios) del superservidor NFS (Net File System) provee un directorio puacuteblico en cada nodo del superservidor para ejecutar el programa que el usuario quiera ejecutar

Paacutegina 8 de 27

Instalacioacuten del paquete (vieacutendose algo similar al print screen)

root192168131 apt-get install nfs-kernel-server

224 Instalacioacuten de los paquetes LIBOPENMPI-DEV LIBOPENMPI1 OPENMPI-BIN OPENMPI-COMMON y OPENMPI-DOC

Descripcioacuten de los paquetes

MPI (Message Passing Interface Interfaz de Paso de Mensajes) es un estaacutendar que define la sintaxis y la semaacutentica de las funciones contenidas en una biblioteca de paso de mensajes disentildeada para ser usada en programas que exploten la existencia de muacuteltiples procesadores

El paso de mensajes es una teacutecnica empleada en programacioacuten concurrente para aportar sincronizacioacuten entre procesos y permitir la exclusioacuten mutua de manera similar a como se hace con los semaacuteforos monitores etc

Su principal caracteriacutestica es que no precisa de memoria compartida por lo que es muy importante en la programacioacuten de sistemas distribuidos

Paacutegina 9 de 27

Instalacioacuten del paquete (vieacutendose algo similar al print screen)

root192168131 apt-get install libopenmpi-dev libopenmpi1 openmpi-bin openmpi-common openmpi-doc

225 Instalacioacuten y desinstalacioacuten de otros paquetes

En nuestro sistema aparte de los mencionados se han instalado adicionalmente los siguientes paquetes (apt-get install NOMBRE-PAQUETE)

mc

gfortran

build-essentials

popularity-contest

ntp

ntpdate

sshguard

autossh

Paacutegina 10 de 27

iproute

iptables

smartmontools

Desinstalaacutendose los siguientes paquetes (apt-get remove NOMBRE PAQUETE)

network-manager

avahi-daemon

226 Instalacioacuten de los paquetes en los servidores secundarios

Realizar los pasos 221 222 223 224 y 225 en las PCs que vayan a funcionar como servidores secundarios en nuestro caso las PCs con nuacutemeros IP desde el 192168132 al 192168136

Recordemos que los pasos son los siguientes

221 root19216813236 apt-get install openssh-server

222 root19216813236 apt-get install rssh

223 root19216813236 apt-get install nfs-kernel-server

224 root19216813236 apt-get install libopenmpi-dev libopenmpi1 openmpi-bin openmpi-common openmpi-doc

225 Instalacioacuten y desinstalacioacuten de paquetes adicionales

Paacutegina 11 de 27

3 Configuracioacuten de servidores primario o maestro y secundarios La configuracioacuten se requiere tanto en el servidor primario o maestro como en los servidores secundarios Esta configuracioacuten se requiere para que el sistema quede en funcionamiento

31 Verificacioacuten de directorios y clave puacuteblica en el servidor primario o maestro

Una vez finalizada la instalacioacuten todos los paquetes deberiacuteamos poder ingresar al directorio ldquorootsshrdquo para ver su contenido (vieacutendose algo similar al siguiente print screen)

Paacutegina 12 de 27

32 Regeneracioacuten de archivos de clave puacuteblica en el servidor primario o maestro

Este paso soacutelo debe hacerse en el servidor primario o maestro Si bien dentro del directorio ldquorootsshrdquo en el servidor primario (IP 192168131) podemos ver la existencia de los archivos ldquoid_rsardquoe ldquoid_rsapubrdquo que son los que contienen la clave puacuteblica para acceder al mismo en forma segura utilizando SSH generaremos nuevamente las mismas Esta clave es las que serviraacute luego para poder hacer que las PCs que funcionan como servidores secundarios se conecten al servidor primario en forma segura y sin necesidad de tipear ninguacuten password para ello (Passwordless Connection)

Regeneracioacuten de los archivos de clave puacuteblica en el servidor primario o maestro (vieacutendose algo similar al print screen)

root192168131 ssh-keygen -t rsa

Paacutegina 13 de 27

33 Configuracioacuten de los servidores secundarios (vieacutendose algo similar al print screen)

Una vez generado el archivo que contiene la clave puacuteblica (id_rsapub) se copia a las demaacutes PCs o servidores secundarios (en nuestro caso nuacutemeros IP desde el 192168132 al 192168136) para que los mismos puedan acceder a ejecutar los comandos que el usuario necesite sin requerir password (Passwordless Connection)

Este paso debe repetirse por cada servidor secundario por lo que la sintaxis vista en el print screen maacutes abajo cambiaraacute en su segunda parte de ldquoroot192168132homenombre-usuarioid_rsaserverpubrdquo a ldquoroot192168133homenombre-usuarioid_rsaserverpubrdquo y asiacute sucesivamente hasta llegar al nuacutemero IP 192168136

Paacutegina 14 de 27

34 Modificacioacuten de los archivos de configuracioacuten del servidor primario o maestro

Debemos modificar en el servidor primario o maestro el archivo ldquoetcopenmpiopenmpi-default-hostfilerdquo Este archivo es el que contiene tanto los nuacutemeros IP de todos los nodos de nuestro superservidor (recordar que nodo es tanto el servidor primario como los secundarios) como la cantidad de procesadores que tiene cada nodo es de 2 pondremos este valor

Paacutegina 15 de 27

Agregando lo siguiente al archivo

192168231 slots=2

192168232 slots=2

192168233 slots=2

192168234 slots=2

192168235 slots=2

192168236 slots=2

Como dato adicional y a modo de ejemplo mostraremos como deben modificarse los siguientes archivos agregando lo que figura debajo de cada tiacutetulo (no entraremos en detalle en cuanto a la explicacioacuten de cada uno respecta debido a que forman parte de la configuracioacuten standard de la red del sistema operativo Linux Debian versioacuten 50 (Lenny))

Archivo ldquoetcresolvconfrdquo

domain lanfrhutneduar

Paacutegina 16 de 27

search lanfrhutneduar frhutneduar

nameserver 19216821

nameserver 17021017154

Archivo ldquoetchostsrdquo

192168231 symc01nnfrhutneduar symc01

192168232 symc02nnfrhutneduar symc02

192168233 symc03nnfrhutneduar symc03

192168234 symc04nnfrhutneduar symc04

192168235 symc05nnfrhutneduar symc05

192168236 symc06nnfrhutneduar symc06

Archivo ldquoetcnetworkinterfacesrdquo

iface eth0 inet static

address 192168231

netmask 2552552550

gateway 19216821

35 Prueba de conexioacuten y configuracioacuten desde el servidor primario o

Paacutegina 17 de 27

maestro a los servidores secundarios

Ahora deberemos realizar los siguientes pasos en cada servidor secundario (en nuestro casos desde el IP 192168132 al IP 192168136)

Realizamos una prueba de conexioacuten viacutea SSH para ver si funciona la conectividad sin password (Passwordless Connection) desde el servidor primario (IP 192168131) al primer servidor secundario (IP 192168132) Una vez que SSH encuentre el servidor secundario nos solicitaraacute el password del usuario ROOT por lo que deberemos escribirlo para ingresar al mismo

Modificar los permisos del directorio ldquorootsshrdquo ponieacutendolos en 700

Agregar el pasword puacuteblico al archivo ldquorootsshauthorized_keysrdquo

Cambiar los permisos del archivo ldquoauthorized_keysrdquo ponieacutendolos en 644

Una vez finalizados estos pasos deberemos hacer lo mismo con los demaacutes

servidores secundarios vieacutendose algo similar al siguiente print screen

Paacutegina 18 de 27

4 Probando nuestro superservidor Asumimos en este paso que ya deberiacuteamos tener instalado apropiadamente nuestro superservidor con capacidades de procesamiento paralelo del tipo MPI ahora usted pude probar el mismo con un programa de testeo que calcularaacute el nuacutemero PI

El programa a utilizarse seraacute el contenido en el archivo ldquoPicrdquo el mismo es un programa simple escrito en lenguaje ldquoC que reporta el nuacuteemro PI de cada nodo sobre el superservidor usando los servicios MPI

41 Para esto deberemos descargar el archivo ldquoPicrdquo del link httpwwwps3clusterorgdistrospic y ponerlo en el directorio ldquoopenmpirdquoen el servidor primario o maestro (se adjunta maacutes abajo el programa del sitio original para que pueda guardarse en un archivo que deberaacute llamarse ldquoPicrdquo)

COMIENZO DEL PROGRAMA To run this program --------------------- Issue time mpirun -np [nprocs] pi (SGI Beowulf) ------------------------------------------------------------------ include ltstdiohgt include ltstdlibhgt

Paacutegina 19 de 27

include mpih int main(int argc char argv[]) int i n double h pi x int me nprocs double piece --------------------------------------------------- MPI_Init (ampargc ampargv) MPI_Comm_size (MPI_COMM_WORLD ampnprocs) MPI_Comm_rank (MPI_COMM_WORLD ampme) --------------------------------------------------- if (me == 0) printf(s Input number of intervalsn) scanf (d ampn)

Paacutegina 20 de 27

--------------------------------------------------- MPI_Bcast (ampn 1 MPI_INT 0 MPI_COMM_WORLD) --------------------------------------------------- h = 1 (double) n piece = 0 for (i=me+1 i lt= n i+=nprocs) x = (i-1)h piece = piece + ( 4 (1+(x)(x)) + 4 (1+(x+h)(x+h)) ) 2 h printf(d pi = 2515fn me piece)

Paacutegina 21 de 27

--------------------------------------------------- MPI_Reduce (amppiece amppi 1 MPI_DOUBLE MPI_SUM 0 MPI_COMM_WORLD) --------------------------------------------------- if (me = = 0) printf(pi = 2515fn pi) --------------------------------------------------- MPI_Finalize() return 0 FIN DEL PROGRAMA

Paacutegina 22 de 27

42 Compilar el programa utilizando el comando ldquompiccrdquo Como resultado se

generaraacute un archivo binario ejecutable llamado ldquoPirdquo

Paacutegina 23 de 27

43 Para ejecutar el programa ldquoPirdquo en forma local solo basta con tipear

ldquoroot192168131~ mpirun -np 2 Pirdquo el nuacutemero 2 denota la cantidad de procesos que se utilizaraacuten cuando se ejecute el programa

Paacutegina 24 de 27

44 Para realizar la ejecucioacuten del programa ldquoPirdquoen nuestro superservidor

ahora deberemos realizar una copia del programa ldquoPirdquoen cada directorio compartido de nuestro ldquoNFSrdquo de cada nodo Como paso posterior ejecutaremos desde el servidor primario nuevamente nuestro programa tecleando ldquoroot192168131~ mpirun -np 12 Pirdquo Vemos que se ha aumentado la cantidad de procesos (slots) esto es debido a que ahora estaremos realizando la ejecucioacuten con mayor cantidad de procesadores (12 en total)

Paacutegina 25 de 27

45 Para visualizar la cantidad de procesos utilizaremos el comando ldquoTOPrdquo Aquiacute veremos los datos de cada proceso paralelo ejecutado

Paacutegina 26 de 27

Fuentes consultadas y sitios de intereacutes

httpwwwdebianorg

httpwwwopen-mpiorg

httpwwwps3clusterumassdeduindexhtml

httpwwwphilchencom20070728how-to-enable-passwordless-authentication-with-ssh

6 Autores Alumnos de la Universidad Tecnoloacutegica Nacional ndash Facultad Regional Haedo ndash Laboratorio de Simulacioacuten y Mecaacutenica Computacional

Andreacutes Trapanotto

Antonio Sebastiaacuten Rodriacuteguez Capello

7 Agradecimientos Profesores de la Universidad Tecnoloacutegica Nacional ndash Facultad Regional Haedo ndash Laboratorio de Simulacioacuten y Mecaacutenica Computacional

Ing Carlos Carlassare

Ing Miguel Bavaro

Ing Juan C Polidoro

Paacutegina 27 de 27

Page 9: Instalacin de un Super-Servidor de procesamiento paralelo … · 2010-01-30 · computadora mediante un intérprete de comandos, y también puede redirigir el tráfico de X para poder

Instalacioacuten del paquete (vieacutendose algo similar al print screen)

root192168131 apt-get install nfs-kernel-server

224 Instalacioacuten de los paquetes LIBOPENMPI-DEV LIBOPENMPI1 OPENMPI-BIN OPENMPI-COMMON y OPENMPI-DOC

Descripcioacuten de los paquetes

MPI (Message Passing Interface Interfaz de Paso de Mensajes) es un estaacutendar que define la sintaxis y la semaacutentica de las funciones contenidas en una biblioteca de paso de mensajes disentildeada para ser usada en programas que exploten la existencia de muacuteltiples procesadores

El paso de mensajes es una teacutecnica empleada en programacioacuten concurrente para aportar sincronizacioacuten entre procesos y permitir la exclusioacuten mutua de manera similar a como se hace con los semaacuteforos monitores etc

Su principal caracteriacutestica es que no precisa de memoria compartida por lo que es muy importante en la programacioacuten de sistemas distribuidos

Paacutegina 9 de 27

Instalacioacuten del paquete (vieacutendose algo similar al print screen)

root192168131 apt-get install libopenmpi-dev libopenmpi1 openmpi-bin openmpi-common openmpi-doc

225 Instalacioacuten y desinstalacioacuten de otros paquetes

En nuestro sistema aparte de los mencionados se han instalado adicionalmente los siguientes paquetes (apt-get install NOMBRE-PAQUETE)

mc

gfortran

build-essentials

popularity-contest

ntp

ntpdate

sshguard

autossh

Paacutegina 10 de 27

iproute

iptables

smartmontools

Desinstalaacutendose los siguientes paquetes (apt-get remove NOMBRE PAQUETE)

network-manager

avahi-daemon

226 Instalacioacuten de los paquetes en los servidores secundarios

Realizar los pasos 221 222 223 224 y 225 en las PCs que vayan a funcionar como servidores secundarios en nuestro caso las PCs con nuacutemeros IP desde el 192168132 al 192168136

Recordemos que los pasos son los siguientes

221 root19216813236 apt-get install openssh-server

222 root19216813236 apt-get install rssh

223 root19216813236 apt-get install nfs-kernel-server

224 root19216813236 apt-get install libopenmpi-dev libopenmpi1 openmpi-bin openmpi-common openmpi-doc

225 Instalacioacuten y desinstalacioacuten de paquetes adicionales

Paacutegina 11 de 27

3 Configuracioacuten de servidores primario o maestro y secundarios La configuracioacuten se requiere tanto en el servidor primario o maestro como en los servidores secundarios Esta configuracioacuten se requiere para que el sistema quede en funcionamiento

31 Verificacioacuten de directorios y clave puacuteblica en el servidor primario o maestro

Una vez finalizada la instalacioacuten todos los paquetes deberiacuteamos poder ingresar al directorio ldquorootsshrdquo para ver su contenido (vieacutendose algo similar al siguiente print screen)

Paacutegina 12 de 27

32 Regeneracioacuten de archivos de clave puacuteblica en el servidor primario o maestro

Este paso soacutelo debe hacerse en el servidor primario o maestro Si bien dentro del directorio ldquorootsshrdquo en el servidor primario (IP 192168131) podemos ver la existencia de los archivos ldquoid_rsardquoe ldquoid_rsapubrdquo que son los que contienen la clave puacuteblica para acceder al mismo en forma segura utilizando SSH generaremos nuevamente las mismas Esta clave es las que serviraacute luego para poder hacer que las PCs que funcionan como servidores secundarios se conecten al servidor primario en forma segura y sin necesidad de tipear ninguacuten password para ello (Passwordless Connection)

Regeneracioacuten de los archivos de clave puacuteblica en el servidor primario o maestro (vieacutendose algo similar al print screen)

root192168131 ssh-keygen -t rsa

Paacutegina 13 de 27

33 Configuracioacuten de los servidores secundarios (vieacutendose algo similar al print screen)

Una vez generado el archivo que contiene la clave puacuteblica (id_rsapub) se copia a las demaacutes PCs o servidores secundarios (en nuestro caso nuacutemeros IP desde el 192168132 al 192168136) para que los mismos puedan acceder a ejecutar los comandos que el usuario necesite sin requerir password (Passwordless Connection)

Este paso debe repetirse por cada servidor secundario por lo que la sintaxis vista en el print screen maacutes abajo cambiaraacute en su segunda parte de ldquoroot192168132homenombre-usuarioid_rsaserverpubrdquo a ldquoroot192168133homenombre-usuarioid_rsaserverpubrdquo y asiacute sucesivamente hasta llegar al nuacutemero IP 192168136

Paacutegina 14 de 27

34 Modificacioacuten de los archivos de configuracioacuten del servidor primario o maestro

Debemos modificar en el servidor primario o maestro el archivo ldquoetcopenmpiopenmpi-default-hostfilerdquo Este archivo es el que contiene tanto los nuacutemeros IP de todos los nodos de nuestro superservidor (recordar que nodo es tanto el servidor primario como los secundarios) como la cantidad de procesadores que tiene cada nodo es de 2 pondremos este valor

Paacutegina 15 de 27

Agregando lo siguiente al archivo

192168231 slots=2

192168232 slots=2

192168233 slots=2

192168234 slots=2

192168235 slots=2

192168236 slots=2

Como dato adicional y a modo de ejemplo mostraremos como deben modificarse los siguientes archivos agregando lo que figura debajo de cada tiacutetulo (no entraremos en detalle en cuanto a la explicacioacuten de cada uno respecta debido a que forman parte de la configuracioacuten standard de la red del sistema operativo Linux Debian versioacuten 50 (Lenny))

Archivo ldquoetcresolvconfrdquo

domain lanfrhutneduar

Paacutegina 16 de 27

search lanfrhutneduar frhutneduar

nameserver 19216821

nameserver 17021017154

Archivo ldquoetchostsrdquo

192168231 symc01nnfrhutneduar symc01

192168232 symc02nnfrhutneduar symc02

192168233 symc03nnfrhutneduar symc03

192168234 symc04nnfrhutneduar symc04

192168235 symc05nnfrhutneduar symc05

192168236 symc06nnfrhutneduar symc06

Archivo ldquoetcnetworkinterfacesrdquo

iface eth0 inet static

address 192168231

netmask 2552552550

gateway 19216821

35 Prueba de conexioacuten y configuracioacuten desde el servidor primario o

Paacutegina 17 de 27

maestro a los servidores secundarios

Ahora deberemos realizar los siguientes pasos en cada servidor secundario (en nuestro casos desde el IP 192168132 al IP 192168136)

Realizamos una prueba de conexioacuten viacutea SSH para ver si funciona la conectividad sin password (Passwordless Connection) desde el servidor primario (IP 192168131) al primer servidor secundario (IP 192168132) Una vez que SSH encuentre el servidor secundario nos solicitaraacute el password del usuario ROOT por lo que deberemos escribirlo para ingresar al mismo

Modificar los permisos del directorio ldquorootsshrdquo ponieacutendolos en 700

Agregar el pasword puacuteblico al archivo ldquorootsshauthorized_keysrdquo

Cambiar los permisos del archivo ldquoauthorized_keysrdquo ponieacutendolos en 644

Una vez finalizados estos pasos deberemos hacer lo mismo con los demaacutes

servidores secundarios vieacutendose algo similar al siguiente print screen

Paacutegina 18 de 27

4 Probando nuestro superservidor Asumimos en este paso que ya deberiacuteamos tener instalado apropiadamente nuestro superservidor con capacidades de procesamiento paralelo del tipo MPI ahora usted pude probar el mismo con un programa de testeo que calcularaacute el nuacutemero PI

El programa a utilizarse seraacute el contenido en el archivo ldquoPicrdquo el mismo es un programa simple escrito en lenguaje ldquoC que reporta el nuacuteemro PI de cada nodo sobre el superservidor usando los servicios MPI

41 Para esto deberemos descargar el archivo ldquoPicrdquo del link httpwwwps3clusterorgdistrospic y ponerlo en el directorio ldquoopenmpirdquoen el servidor primario o maestro (se adjunta maacutes abajo el programa del sitio original para que pueda guardarse en un archivo que deberaacute llamarse ldquoPicrdquo)

COMIENZO DEL PROGRAMA To run this program --------------------- Issue time mpirun -np [nprocs] pi (SGI Beowulf) ------------------------------------------------------------------ include ltstdiohgt include ltstdlibhgt

Paacutegina 19 de 27

include mpih int main(int argc char argv[]) int i n double h pi x int me nprocs double piece --------------------------------------------------- MPI_Init (ampargc ampargv) MPI_Comm_size (MPI_COMM_WORLD ampnprocs) MPI_Comm_rank (MPI_COMM_WORLD ampme) --------------------------------------------------- if (me == 0) printf(s Input number of intervalsn) scanf (d ampn)

Paacutegina 20 de 27

--------------------------------------------------- MPI_Bcast (ampn 1 MPI_INT 0 MPI_COMM_WORLD) --------------------------------------------------- h = 1 (double) n piece = 0 for (i=me+1 i lt= n i+=nprocs) x = (i-1)h piece = piece + ( 4 (1+(x)(x)) + 4 (1+(x+h)(x+h)) ) 2 h printf(d pi = 2515fn me piece)

Paacutegina 21 de 27

--------------------------------------------------- MPI_Reduce (amppiece amppi 1 MPI_DOUBLE MPI_SUM 0 MPI_COMM_WORLD) --------------------------------------------------- if (me = = 0) printf(pi = 2515fn pi) --------------------------------------------------- MPI_Finalize() return 0 FIN DEL PROGRAMA

Paacutegina 22 de 27

42 Compilar el programa utilizando el comando ldquompiccrdquo Como resultado se

generaraacute un archivo binario ejecutable llamado ldquoPirdquo

Paacutegina 23 de 27

43 Para ejecutar el programa ldquoPirdquo en forma local solo basta con tipear

ldquoroot192168131~ mpirun -np 2 Pirdquo el nuacutemero 2 denota la cantidad de procesos que se utilizaraacuten cuando se ejecute el programa

Paacutegina 24 de 27

44 Para realizar la ejecucioacuten del programa ldquoPirdquoen nuestro superservidor

ahora deberemos realizar una copia del programa ldquoPirdquoen cada directorio compartido de nuestro ldquoNFSrdquo de cada nodo Como paso posterior ejecutaremos desde el servidor primario nuevamente nuestro programa tecleando ldquoroot192168131~ mpirun -np 12 Pirdquo Vemos que se ha aumentado la cantidad de procesos (slots) esto es debido a que ahora estaremos realizando la ejecucioacuten con mayor cantidad de procesadores (12 en total)

Paacutegina 25 de 27

45 Para visualizar la cantidad de procesos utilizaremos el comando ldquoTOPrdquo Aquiacute veremos los datos de cada proceso paralelo ejecutado

Paacutegina 26 de 27

Fuentes consultadas y sitios de intereacutes

httpwwwdebianorg

httpwwwopen-mpiorg

httpwwwps3clusterumassdeduindexhtml

httpwwwphilchencom20070728how-to-enable-passwordless-authentication-with-ssh

6 Autores Alumnos de la Universidad Tecnoloacutegica Nacional ndash Facultad Regional Haedo ndash Laboratorio de Simulacioacuten y Mecaacutenica Computacional

Andreacutes Trapanotto

Antonio Sebastiaacuten Rodriacuteguez Capello

7 Agradecimientos Profesores de la Universidad Tecnoloacutegica Nacional ndash Facultad Regional Haedo ndash Laboratorio de Simulacioacuten y Mecaacutenica Computacional

Ing Carlos Carlassare

Ing Miguel Bavaro

Ing Juan C Polidoro

Paacutegina 27 de 27

Page 10: Instalacin de un Super-Servidor de procesamiento paralelo … · 2010-01-30 · computadora mediante un intérprete de comandos, y también puede redirigir el tráfico de X para poder

Instalacioacuten del paquete (vieacutendose algo similar al print screen)

root192168131 apt-get install libopenmpi-dev libopenmpi1 openmpi-bin openmpi-common openmpi-doc

225 Instalacioacuten y desinstalacioacuten de otros paquetes

En nuestro sistema aparte de los mencionados se han instalado adicionalmente los siguientes paquetes (apt-get install NOMBRE-PAQUETE)

mc

gfortran

build-essentials

popularity-contest

ntp

ntpdate

sshguard

autossh

Paacutegina 10 de 27

iproute

iptables

smartmontools

Desinstalaacutendose los siguientes paquetes (apt-get remove NOMBRE PAQUETE)

network-manager

avahi-daemon

226 Instalacioacuten de los paquetes en los servidores secundarios

Realizar los pasos 221 222 223 224 y 225 en las PCs que vayan a funcionar como servidores secundarios en nuestro caso las PCs con nuacutemeros IP desde el 192168132 al 192168136

Recordemos que los pasos son los siguientes

221 root19216813236 apt-get install openssh-server

222 root19216813236 apt-get install rssh

223 root19216813236 apt-get install nfs-kernel-server

224 root19216813236 apt-get install libopenmpi-dev libopenmpi1 openmpi-bin openmpi-common openmpi-doc

225 Instalacioacuten y desinstalacioacuten de paquetes adicionales

Paacutegina 11 de 27

3 Configuracioacuten de servidores primario o maestro y secundarios La configuracioacuten se requiere tanto en el servidor primario o maestro como en los servidores secundarios Esta configuracioacuten se requiere para que el sistema quede en funcionamiento

31 Verificacioacuten de directorios y clave puacuteblica en el servidor primario o maestro

Una vez finalizada la instalacioacuten todos los paquetes deberiacuteamos poder ingresar al directorio ldquorootsshrdquo para ver su contenido (vieacutendose algo similar al siguiente print screen)

Paacutegina 12 de 27

32 Regeneracioacuten de archivos de clave puacuteblica en el servidor primario o maestro

Este paso soacutelo debe hacerse en el servidor primario o maestro Si bien dentro del directorio ldquorootsshrdquo en el servidor primario (IP 192168131) podemos ver la existencia de los archivos ldquoid_rsardquoe ldquoid_rsapubrdquo que son los que contienen la clave puacuteblica para acceder al mismo en forma segura utilizando SSH generaremos nuevamente las mismas Esta clave es las que serviraacute luego para poder hacer que las PCs que funcionan como servidores secundarios se conecten al servidor primario en forma segura y sin necesidad de tipear ninguacuten password para ello (Passwordless Connection)

Regeneracioacuten de los archivos de clave puacuteblica en el servidor primario o maestro (vieacutendose algo similar al print screen)

root192168131 ssh-keygen -t rsa

Paacutegina 13 de 27

33 Configuracioacuten de los servidores secundarios (vieacutendose algo similar al print screen)

Una vez generado el archivo que contiene la clave puacuteblica (id_rsapub) se copia a las demaacutes PCs o servidores secundarios (en nuestro caso nuacutemeros IP desde el 192168132 al 192168136) para que los mismos puedan acceder a ejecutar los comandos que el usuario necesite sin requerir password (Passwordless Connection)

Este paso debe repetirse por cada servidor secundario por lo que la sintaxis vista en el print screen maacutes abajo cambiaraacute en su segunda parte de ldquoroot192168132homenombre-usuarioid_rsaserverpubrdquo a ldquoroot192168133homenombre-usuarioid_rsaserverpubrdquo y asiacute sucesivamente hasta llegar al nuacutemero IP 192168136

Paacutegina 14 de 27

34 Modificacioacuten de los archivos de configuracioacuten del servidor primario o maestro

Debemos modificar en el servidor primario o maestro el archivo ldquoetcopenmpiopenmpi-default-hostfilerdquo Este archivo es el que contiene tanto los nuacutemeros IP de todos los nodos de nuestro superservidor (recordar que nodo es tanto el servidor primario como los secundarios) como la cantidad de procesadores que tiene cada nodo es de 2 pondremos este valor

Paacutegina 15 de 27

Agregando lo siguiente al archivo

192168231 slots=2

192168232 slots=2

192168233 slots=2

192168234 slots=2

192168235 slots=2

192168236 slots=2

Como dato adicional y a modo de ejemplo mostraremos como deben modificarse los siguientes archivos agregando lo que figura debajo de cada tiacutetulo (no entraremos en detalle en cuanto a la explicacioacuten de cada uno respecta debido a que forman parte de la configuracioacuten standard de la red del sistema operativo Linux Debian versioacuten 50 (Lenny))

Archivo ldquoetcresolvconfrdquo

domain lanfrhutneduar

Paacutegina 16 de 27

search lanfrhutneduar frhutneduar

nameserver 19216821

nameserver 17021017154

Archivo ldquoetchostsrdquo

192168231 symc01nnfrhutneduar symc01

192168232 symc02nnfrhutneduar symc02

192168233 symc03nnfrhutneduar symc03

192168234 symc04nnfrhutneduar symc04

192168235 symc05nnfrhutneduar symc05

192168236 symc06nnfrhutneduar symc06

Archivo ldquoetcnetworkinterfacesrdquo

iface eth0 inet static

address 192168231

netmask 2552552550

gateway 19216821

35 Prueba de conexioacuten y configuracioacuten desde el servidor primario o

Paacutegina 17 de 27

maestro a los servidores secundarios

Ahora deberemos realizar los siguientes pasos en cada servidor secundario (en nuestro casos desde el IP 192168132 al IP 192168136)

Realizamos una prueba de conexioacuten viacutea SSH para ver si funciona la conectividad sin password (Passwordless Connection) desde el servidor primario (IP 192168131) al primer servidor secundario (IP 192168132) Una vez que SSH encuentre el servidor secundario nos solicitaraacute el password del usuario ROOT por lo que deberemos escribirlo para ingresar al mismo

Modificar los permisos del directorio ldquorootsshrdquo ponieacutendolos en 700

Agregar el pasword puacuteblico al archivo ldquorootsshauthorized_keysrdquo

Cambiar los permisos del archivo ldquoauthorized_keysrdquo ponieacutendolos en 644

Una vez finalizados estos pasos deberemos hacer lo mismo con los demaacutes

servidores secundarios vieacutendose algo similar al siguiente print screen

Paacutegina 18 de 27

4 Probando nuestro superservidor Asumimos en este paso que ya deberiacuteamos tener instalado apropiadamente nuestro superservidor con capacidades de procesamiento paralelo del tipo MPI ahora usted pude probar el mismo con un programa de testeo que calcularaacute el nuacutemero PI

El programa a utilizarse seraacute el contenido en el archivo ldquoPicrdquo el mismo es un programa simple escrito en lenguaje ldquoC que reporta el nuacuteemro PI de cada nodo sobre el superservidor usando los servicios MPI

41 Para esto deberemos descargar el archivo ldquoPicrdquo del link httpwwwps3clusterorgdistrospic y ponerlo en el directorio ldquoopenmpirdquoen el servidor primario o maestro (se adjunta maacutes abajo el programa del sitio original para que pueda guardarse en un archivo que deberaacute llamarse ldquoPicrdquo)

COMIENZO DEL PROGRAMA To run this program --------------------- Issue time mpirun -np [nprocs] pi (SGI Beowulf) ------------------------------------------------------------------ include ltstdiohgt include ltstdlibhgt

Paacutegina 19 de 27

include mpih int main(int argc char argv[]) int i n double h pi x int me nprocs double piece --------------------------------------------------- MPI_Init (ampargc ampargv) MPI_Comm_size (MPI_COMM_WORLD ampnprocs) MPI_Comm_rank (MPI_COMM_WORLD ampme) --------------------------------------------------- if (me == 0) printf(s Input number of intervalsn) scanf (d ampn)

Paacutegina 20 de 27

--------------------------------------------------- MPI_Bcast (ampn 1 MPI_INT 0 MPI_COMM_WORLD) --------------------------------------------------- h = 1 (double) n piece = 0 for (i=me+1 i lt= n i+=nprocs) x = (i-1)h piece = piece + ( 4 (1+(x)(x)) + 4 (1+(x+h)(x+h)) ) 2 h printf(d pi = 2515fn me piece)

Paacutegina 21 de 27

--------------------------------------------------- MPI_Reduce (amppiece amppi 1 MPI_DOUBLE MPI_SUM 0 MPI_COMM_WORLD) --------------------------------------------------- if (me = = 0) printf(pi = 2515fn pi) --------------------------------------------------- MPI_Finalize() return 0 FIN DEL PROGRAMA

Paacutegina 22 de 27

42 Compilar el programa utilizando el comando ldquompiccrdquo Como resultado se

generaraacute un archivo binario ejecutable llamado ldquoPirdquo

Paacutegina 23 de 27

43 Para ejecutar el programa ldquoPirdquo en forma local solo basta con tipear

ldquoroot192168131~ mpirun -np 2 Pirdquo el nuacutemero 2 denota la cantidad de procesos que se utilizaraacuten cuando se ejecute el programa

Paacutegina 24 de 27

44 Para realizar la ejecucioacuten del programa ldquoPirdquoen nuestro superservidor

ahora deberemos realizar una copia del programa ldquoPirdquoen cada directorio compartido de nuestro ldquoNFSrdquo de cada nodo Como paso posterior ejecutaremos desde el servidor primario nuevamente nuestro programa tecleando ldquoroot192168131~ mpirun -np 12 Pirdquo Vemos que se ha aumentado la cantidad de procesos (slots) esto es debido a que ahora estaremos realizando la ejecucioacuten con mayor cantidad de procesadores (12 en total)

Paacutegina 25 de 27

45 Para visualizar la cantidad de procesos utilizaremos el comando ldquoTOPrdquo Aquiacute veremos los datos de cada proceso paralelo ejecutado

Paacutegina 26 de 27

Fuentes consultadas y sitios de intereacutes

httpwwwdebianorg

httpwwwopen-mpiorg

httpwwwps3clusterumassdeduindexhtml

httpwwwphilchencom20070728how-to-enable-passwordless-authentication-with-ssh

6 Autores Alumnos de la Universidad Tecnoloacutegica Nacional ndash Facultad Regional Haedo ndash Laboratorio de Simulacioacuten y Mecaacutenica Computacional

Andreacutes Trapanotto

Antonio Sebastiaacuten Rodriacuteguez Capello

7 Agradecimientos Profesores de la Universidad Tecnoloacutegica Nacional ndash Facultad Regional Haedo ndash Laboratorio de Simulacioacuten y Mecaacutenica Computacional

Ing Carlos Carlassare

Ing Miguel Bavaro

Ing Juan C Polidoro

Paacutegina 27 de 27

Page 11: Instalacin de un Super-Servidor de procesamiento paralelo … · 2010-01-30 · computadora mediante un intérprete de comandos, y también puede redirigir el tráfico de X para poder

iproute

iptables

smartmontools

Desinstalaacutendose los siguientes paquetes (apt-get remove NOMBRE PAQUETE)

network-manager

avahi-daemon

226 Instalacioacuten de los paquetes en los servidores secundarios

Realizar los pasos 221 222 223 224 y 225 en las PCs que vayan a funcionar como servidores secundarios en nuestro caso las PCs con nuacutemeros IP desde el 192168132 al 192168136

Recordemos que los pasos son los siguientes

221 root19216813236 apt-get install openssh-server

222 root19216813236 apt-get install rssh

223 root19216813236 apt-get install nfs-kernel-server

224 root19216813236 apt-get install libopenmpi-dev libopenmpi1 openmpi-bin openmpi-common openmpi-doc

225 Instalacioacuten y desinstalacioacuten de paquetes adicionales

Paacutegina 11 de 27

3 Configuracioacuten de servidores primario o maestro y secundarios La configuracioacuten se requiere tanto en el servidor primario o maestro como en los servidores secundarios Esta configuracioacuten se requiere para que el sistema quede en funcionamiento

31 Verificacioacuten de directorios y clave puacuteblica en el servidor primario o maestro

Una vez finalizada la instalacioacuten todos los paquetes deberiacuteamos poder ingresar al directorio ldquorootsshrdquo para ver su contenido (vieacutendose algo similar al siguiente print screen)

Paacutegina 12 de 27

32 Regeneracioacuten de archivos de clave puacuteblica en el servidor primario o maestro

Este paso soacutelo debe hacerse en el servidor primario o maestro Si bien dentro del directorio ldquorootsshrdquo en el servidor primario (IP 192168131) podemos ver la existencia de los archivos ldquoid_rsardquoe ldquoid_rsapubrdquo que son los que contienen la clave puacuteblica para acceder al mismo en forma segura utilizando SSH generaremos nuevamente las mismas Esta clave es las que serviraacute luego para poder hacer que las PCs que funcionan como servidores secundarios se conecten al servidor primario en forma segura y sin necesidad de tipear ninguacuten password para ello (Passwordless Connection)

Regeneracioacuten de los archivos de clave puacuteblica en el servidor primario o maestro (vieacutendose algo similar al print screen)

root192168131 ssh-keygen -t rsa

Paacutegina 13 de 27

33 Configuracioacuten de los servidores secundarios (vieacutendose algo similar al print screen)

Una vez generado el archivo que contiene la clave puacuteblica (id_rsapub) se copia a las demaacutes PCs o servidores secundarios (en nuestro caso nuacutemeros IP desde el 192168132 al 192168136) para que los mismos puedan acceder a ejecutar los comandos que el usuario necesite sin requerir password (Passwordless Connection)

Este paso debe repetirse por cada servidor secundario por lo que la sintaxis vista en el print screen maacutes abajo cambiaraacute en su segunda parte de ldquoroot192168132homenombre-usuarioid_rsaserverpubrdquo a ldquoroot192168133homenombre-usuarioid_rsaserverpubrdquo y asiacute sucesivamente hasta llegar al nuacutemero IP 192168136

Paacutegina 14 de 27

34 Modificacioacuten de los archivos de configuracioacuten del servidor primario o maestro

Debemos modificar en el servidor primario o maestro el archivo ldquoetcopenmpiopenmpi-default-hostfilerdquo Este archivo es el que contiene tanto los nuacutemeros IP de todos los nodos de nuestro superservidor (recordar que nodo es tanto el servidor primario como los secundarios) como la cantidad de procesadores que tiene cada nodo es de 2 pondremos este valor

Paacutegina 15 de 27

Agregando lo siguiente al archivo

192168231 slots=2

192168232 slots=2

192168233 slots=2

192168234 slots=2

192168235 slots=2

192168236 slots=2

Como dato adicional y a modo de ejemplo mostraremos como deben modificarse los siguientes archivos agregando lo que figura debajo de cada tiacutetulo (no entraremos en detalle en cuanto a la explicacioacuten de cada uno respecta debido a que forman parte de la configuracioacuten standard de la red del sistema operativo Linux Debian versioacuten 50 (Lenny))

Archivo ldquoetcresolvconfrdquo

domain lanfrhutneduar

Paacutegina 16 de 27

search lanfrhutneduar frhutneduar

nameserver 19216821

nameserver 17021017154

Archivo ldquoetchostsrdquo

192168231 symc01nnfrhutneduar symc01

192168232 symc02nnfrhutneduar symc02

192168233 symc03nnfrhutneduar symc03

192168234 symc04nnfrhutneduar symc04

192168235 symc05nnfrhutneduar symc05

192168236 symc06nnfrhutneduar symc06

Archivo ldquoetcnetworkinterfacesrdquo

iface eth0 inet static

address 192168231

netmask 2552552550

gateway 19216821

35 Prueba de conexioacuten y configuracioacuten desde el servidor primario o

Paacutegina 17 de 27

maestro a los servidores secundarios

Ahora deberemos realizar los siguientes pasos en cada servidor secundario (en nuestro casos desde el IP 192168132 al IP 192168136)

Realizamos una prueba de conexioacuten viacutea SSH para ver si funciona la conectividad sin password (Passwordless Connection) desde el servidor primario (IP 192168131) al primer servidor secundario (IP 192168132) Una vez que SSH encuentre el servidor secundario nos solicitaraacute el password del usuario ROOT por lo que deberemos escribirlo para ingresar al mismo

Modificar los permisos del directorio ldquorootsshrdquo ponieacutendolos en 700

Agregar el pasword puacuteblico al archivo ldquorootsshauthorized_keysrdquo

Cambiar los permisos del archivo ldquoauthorized_keysrdquo ponieacutendolos en 644

Una vez finalizados estos pasos deberemos hacer lo mismo con los demaacutes

servidores secundarios vieacutendose algo similar al siguiente print screen

Paacutegina 18 de 27

4 Probando nuestro superservidor Asumimos en este paso que ya deberiacuteamos tener instalado apropiadamente nuestro superservidor con capacidades de procesamiento paralelo del tipo MPI ahora usted pude probar el mismo con un programa de testeo que calcularaacute el nuacutemero PI

El programa a utilizarse seraacute el contenido en el archivo ldquoPicrdquo el mismo es un programa simple escrito en lenguaje ldquoC que reporta el nuacuteemro PI de cada nodo sobre el superservidor usando los servicios MPI

41 Para esto deberemos descargar el archivo ldquoPicrdquo del link httpwwwps3clusterorgdistrospic y ponerlo en el directorio ldquoopenmpirdquoen el servidor primario o maestro (se adjunta maacutes abajo el programa del sitio original para que pueda guardarse en un archivo que deberaacute llamarse ldquoPicrdquo)

COMIENZO DEL PROGRAMA To run this program --------------------- Issue time mpirun -np [nprocs] pi (SGI Beowulf) ------------------------------------------------------------------ include ltstdiohgt include ltstdlibhgt

Paacutegina 19 de 27

include mpih int main(int argc char argv[]) int i n double h pi x int me nprocs double piece --------------------------------------------------- MPI_Init (ampargc ampargv) MPI_Comm_size (MPI_COMM_WORLD ampnprocs) MPI_Comm_rank (MPI_COMM_WORLD ampme) --------------------------------------------------- if (me == 0) printf(s Input number of intervalsn) scanf (d ampn)

Paacutegina 20 de 27

--------------------------------------------------- MPI_Bcast (ampn 1 MPI_INT 0 MPI_COMM_WORLD) --------------------------------------------------- h = 1 (double) n piece = 0 for (i=me+1 i lt= n i+=nprocs) x = (i-1)h piece = piece + ( 4 (1+(x)(x)) + 4 (1+(x+h)(x+h)) ) 2 h printf(d pi = 2515fn me piece)

Paacutegina 21 de 27

--------------------------------------------------- MPI_Reduce (amppiece amppi 1 MPI_DOUBLE MPI_SUM 0 MPI_COMM_WORLD) --------------------------------------------------- if (me = = 0) printf(pi = 2515fn pi) --------------------------------------------------- MPI_Finalize() return 0 FIN DEL PROGRAMA

Paacutegina 22 de 27

42 Compilar el programa utilizando el comando ldquompiccrdquo Como resultado se

generaraacute un archivo binario ejecutable llamado ldquoPirdquo

Paacutegina 23 de 27

43 Para ejecutar el programa ldquoPirdquo en forma local solo basta con tipear

ldquoroot192168131~ mpirun -np 2 Pirdquo el nuacutemero 2 denota la cantidad de procesos que se utilizaraacuten cuando se ejecute el programa

Paacutegina 24 de 27

44 Para realizar la ejecucioacuten del programa ldquoPirdquoen nuestro superservidor

ahora deberemos realizar una copia del programa ldquoPirdquoen cada directorio compartido de nuestro ldquoNFSrdquo de cada nodo Como paso posterior ejecutaremos desde el servidor primario nuevamente nuestro programa tecleando ldquoroot192168131~ mpirun -np 12 Pirdquo Vemos que se ha aumentado la cantidad de procesos (slots) esto es debido a que ahora estaremos realizando la ejecucioacuten con mayor cantidad de procesadores (12 en total)

Paacutegina 25 de 27

45 Para visualizar la cantidad de procesos utilizaremos el comando ldquoTOPrdquo Aquiacute veremos los datos de cada proceso paralelo ejecutado

Paacutegina 26 de 27

Fuentes consultadas y sitios de intereacutes

httpwwwdebianorg

httpwwwopen-mpiorg

httpwwwps3clusterumassdeduindexhtml

httpwwwphilchencom20070728how-to-enable-passwordless-authentication-with-ssh

6 Autores Alumnos de la Universidad Tecnoloacutegica Nacional ndash Facultad Regional Haedo ndash Laboratorio de Simulacioacuten y Mecaacutenica Computacional

Andreacutes Trapanotto

Antonio Sebastiaacuten Rodriacuteguez Capello

7 Agradecimientos Profesores de la Universidad Tecnoloacutegica Nacional ndash Facultad Regional Haedo ndash Laboratorio de Simulacioacuten y Mecaacutenica Computacional

Ing Carlos Carlassare

Ing Miguel Bavaro

Ing Juan C Polidoro

Paacutegina 27 de 27

Page 12: Instalacin de un Super-Servidor de procesamiento paralelo … · 2010-01-30 · computadora mediante un intérprete de comandos, y también puede redirigir el tráfico de X para poder

3 Configuracioacuten de servidores primario o maestro y secundarios La configuracioacuten se requiere tanto en el servidor primario o maestro como en los servidores secundarios Esta configuracioacuten se requiere para que el sistema quede en funcionamiento

31 Verificacioacuten de directorios y clave puacuteblica en el servidor primario o maestro

Una vez finalizada la instalacioacuten todos los paquetes deberiacuteamos poder ingresar al directorio ldquorootsshrdquo para ver su contenido (vieacutendose algo similar al siguiente print screen)

Paacutegina 12 de 27

32 Regeneracioacuten de archivos de clave puacuteblica en el servidor primario o maestro

Este paso soacutelo debe hacerse en el servidor primario o maestro Si bien dentro del directorio ldquorootsshrdquo en el servidor primario (IP 192168131) podemos ver la existencia de los archivos ldquoid_rsardquoe ldquoid_rsapubrdquo que son los que contienen la clave puacuteblica para acceder al mismo en forma segura utilizando SSH generaremos nuevamente las mismas Esta clave es las que serviraacute luego para poder hacer que las PCs que funcionan como servidores secundarios se conecten al servidor primario en forma segura y sin necesidad de tipear ninguacuten password para ello (Passwordless Connection)

Regeneracioacuten de los archivos de clave puacuteblica en el servidor primario o maestro (vieacutendose algo similar al print screen)

root192168131 ssh-keygen -t rsa

Paacutegina 13 de 27

33 Configuracioacuten de los servidores secundarios (vieacutendose algo similar al print screen)

Una vez generado el archivo que contiene la clave puacuteblica (id_rsapub) se copia a las demaacutes PCs o servidores secundarios (en nuestro caso nuacutemeros IP desde el 192168132 al 192168136) para que los mismos puedan acceder a ejecutar los comandos que el usuario necesite sin requerir password (Passwordless Connection)

Este paso debe repetirse por cada servidor secundario por lo que la sintaxis vista en el print screen maacutes abajo cambiaraacute en su segunda parte de ldquoroot192168132homenombre-usuarioid_rsaserverpubrdquo a ldquoroot192168133homenombre-usuarioid_rsaserverpubrdquo y asiacute sucesivamente hasta llegar al nuacutemero IP 192168136

Paacutegina 14 de 27

34 Modificacioacuten de los archivos de configuracioacuten del servidor primario o maestro

Debemos modificar en el servidor primario o maestro el archivo ldquoetcopenmpiopenmpi-default-hostfilerdquo Este archivo es el que contiene tanto los nuacutemeros IP de todos los nodos de nuestro superservidor (recordar que nodo es tanto el servidor primario como los secundarios) como la cantidad de procesadores que tiene cada nodo es de 2 pondremos este valor

Paacutegina 15 de 27

Agregando lo siguiente al archivo

192168231 slots=2

192168232 slots=2

192168233 slots=2

192168234 slots=2

192168235 slots=2

192168236 slots=2

Como dato adicional y a modo de ejemplo mostraremos como deben modificarse los siguientes archivos agregando lo que figura debajo de cada tiacutetulo (no entraremos en detalle en cuanto a la explicacioacuten de cada uno respecta debido a que forman parte de la configuracioacuten standard de la red del sistema operativo Linux Debian versioacuten 50 (Lenny))

Archivo ldquoetcresolvconfrdquo

domain lanfrhutneduar

Paacutegina 16 de 27

search lanfrhutneduar frhutneduar

nameserver 19216821

nameserver 17021017154

Archivo ldquoetchostsrdquo

192168231 symc01nnfrhutneduar symc01

192168232 symc02nnfrhutneduar symc02

192168233 symc03nnfrhutneduar symc03

192168234 symc04nnfrhutneduar symc04

192168235 symc05nnfrhutneduar symc05

192168236 symc06nnfrhutneduar symc06

Archivo ldquoetcnetworkinterfacesrdquo

iface eth0 inet static

address 192168231

netmask 2552552550

gateway 19216821

35 Prueba de conexioacuten y configuracioacuten desde el servidor primario o

Paacutegina 17 de 27

maestro a los servidores secundarios

Ahora deberemos realizar los siguientes pasos en cada servidor secundario (en nuestro casos desde el IP 192168132 al IP 192168136)

Realizamos una prueba de conexioacuten viacutea SSH para ver si funciona la conectividad sin password (Passwordless Connection) desde el servidor primario (IP 192168131) al primer servidor secundario (IP 192168132) Una vez que SSH encuentre el servidor secundario nos solicitaraacute el password del usuario ROOT por lo que deberemos escribirlo para ingresar al mismo

Modificar los permisos del directorio ldquorootsshrdquo ponieacutendolos en 700

Agregar el pasword puacuteblico al archivo ldquorootsshauthorized_keysrdquo

Cambiar los permisos del archivo ldquoauthorized_keysrdquo ponieacutendolos en 644

Una vez finalizados estos pasos deberemos hacer lo mismo con los demaacutes

servidores secundarios vieacutendose algo similar al siguiente print screen

Paacutegina 18 de 27

4 Probando nuestro superservidor Asumimos en este paso que ya deberiacuteamos tener instalado apropiadamente nuestro superservidor con capacidades de procesamiento paralelo del tipo MPI ahora usted pude probar el mismo con un programa de testeo que calcularaacute el nuacutemero PI

El programa a utilizarse seraacute el contenido en el archivo ldquoPicrdquo el mismo es un programa simple escrito en lenguaje ldquoC que reporta el nuacuteemro PI de cada nodo sobre el superservidor usando los servicios MPI

41 Para esto deberemos descargar el archivo ldquoPicrdquo del link httpwwwps3clusterorgdistrospic y ponerlo en el directorio ldquoopenmpirdquoen el servidor primario o maestro (se adjunta maacutes abajo el programa del sitio original para que pueda guardarse en un archivo que deberaacute llamarse ldquoPicrdquo)

COMIENZO DEL PROGRAMA To run this program --------------------- Issue time mpirun -np [nprocs] pi (SGI Beowulf) ------------------------------------------------------------------ include ltstdiohgt include ltstdlibhgt

Paacutegina 19 de 27

include mpih int main(int argc char argv[]) int i n double h pi x int me nprocs double piece --------------------------------------------------- MPI_Init (ampargc ampargv) MPI_Comm_size (MPI_COMM_WORLD ampnprocs) MPI_Comm_rank (MPI_COMM_WORLD ampme) --------------------------------------------------- if (me == 0) printf(s Input number of intervalsn) scanf (d ampn)

Paacutegina 20 de 27

--------------------------------------------------- MPI_Bcast (ampn 1 MPI_INT 0 MPI_COMM_WORLD) --------------------------------------------------- h = 1 (double) n piece = 0 for (i=me+1 i lt= n i+=nprocs) x = (i-1)h piece = piece + ( 4 (1+(x)(x)) + 4 (1+(x+h)(x+h)) ) 2 h printf(d pi = 2515fn me piece)

Paacutegina 21 de 27

--------------------------------------------------- MPI_Reduce (amppiece amppi 1 MPI_DOUBLE MPI_SUM 0 MPI_COMM_WORLD) --------------------------------------------------- if (me = = 0) printf(pi = 2515fn pi) --------------------------------------------------- MPI_Finalize() return 0 FIN DEL PROGRAMA

Paacutegina 22 de 27

42 Compilar el programa utilizando el comando ldquompiccrdquo Como resultado se

generaraacute un archivo binario ejecutable llamado ldquoPirdquo

Paacutegina 23 de 27

43 Para ejecutar el programa ldquoPirdquo en forma local solo basta con tipear

ldquoroot192168131~ mpirun -np 2 Pirdquo el nuacutemero 2 denota la cantidad de procesos que se utilizaraacuten cuando se ejecute el programa

Paacutegina 24 de 27

44 Para realizar la ejecucioacuten del programa ldquoPirdquoen nuestro superservidor

ahora deberemos realizar una copia del programa ldquoPirdquoen cada directorio compartido de nuestro ldquoNFSrdquo de cada nodo Como paso posterior ejecutaremos desde el servidor primario nuevamente nuestro programa tecleando ldquoroot192168131~ mpirun -np 12 Pirdquo Vemos que se ha aumentado la cantidad de procesos (slots) esto es debido a que ahora estaremos realizando la ejecucioacuten con mayor cantidad de procesadores (12 en total)

Paacutegina 25 de 27

45 Para visualizar la cantidad de procesos utilizaremos el comando ldquoTOPrdquo Aquiacute veremos los datos de cada proceso paralelo ejecutado

Paacutegina 26 de 27

Fuentes consultadas y sitios de intereacutes

httpwwwdebianorg

httpwwwopen-mpiorg

httpwwwps3clusterumassdeduindexhtml

httpwwwphilchencom20070728how-to-enable-passwordless-authentication-with-ssh

6 Autores Alumnos de la Universidad Tecnoloacutegica Nacional ndash Facultad Regional Haedo ndash Laboratorio de Simulacioacuten y Mecaacutenica Computacional

Andreacutes Trapanotto

Antonio Sebastiaacuten Rodriacuteguez Capello

7 Agradecimientos Profesores de la Universidad Tecnoloacutegica Nacional ndash Facultad Regional Haedo ndash Laboratorio de Simulacioacuten y Mecaacutenica Computacional

Ing Carlos Carlassare

Ing Miguel Bavaro

Ing Juan C Polidoro

Paacutegina 27 de 27

Page 13: Instalacin de un Super-Servidor de procesamiento paralelo … · 2010-01-30 · computadora mediante un intérprete de comandos, y también puede redirigir el tráfico de X para poder

32 Regeneracioacuten de archivos de clave puacuteblica en el servidor primario o maestro

Este paso soacutelo debe hacerse en el servidor primario o maestro Si bien dentro del directorio ldquorootsshrdquo en el servidor primario (IP 192168131) podemos ver la existencia de los archivos ldquoid_rsardquoe ldquoid_rsapubrdquo que son los que contienen la clave puacuteblica para acceder al mismo en forma segura utilizando SSH generaremos nuevamente las mismas Esta clave es las que serviraacute luego para poder hacer que las PCs que funcionan como servidores secundarios se conecten al servidor primario en forma segura y sin necesidad de tipear ninguacuten password para ello (Passwordless Connection)

Regeneracioacuten de los archivos de clave puacuteblica en el servidor primario o maestro (vieacutendose algo similar al print screen)

root192168131 ssh-keygen -t rsa

Paacutegina 13 de 27

33 Configuracioacuten de los servidores secundarios (vieacutendose algo similar al print screen)

Una vez generado el archivo que contiene la clave puacuteblica (id_rsapub) se copia a las demaacutes PCs o servidores secundarios (en nuestro caso nuacutemeros IP desde el 192168132 al 192168136) para que los mismos puedan acceder a ejecutar los comandos que el usuario necesite sin requerir password (Passwordless Connection)

Este paso debe repetirse por cada servidor secundario por lo que la sintaxis vista en el print screen maacutes abajo cambiaraacute en su segunda parte de ldquoroot192168132homenombre-usuarioid_rsaserverpubrdquo a ldquoroot192168133homenombre-usuarioid_rsaserverpubrdquo y asiacute sucesivamente hasta llegar al nuacutemero IP 192168136

Paacutegina 14 de 27

34 Modificacioacuten de los archivos de configuracioacuten del servidor primario o maestro

Debemos modificar en el servidor primario o maestro el archivo ldquoetcopenmpiopenmpi-default-hostfilerdquo Este archivo es el que contiene tanto los nuacutemeros IP de todos los nodos de nuestro superservidor (recordar que nodo es tanto el servidor primario como los secundarios) como la cantidad de procesadores que tiene cada nodo es de 2 pondremos este valor

Paacutegina 15 de 27

Agregando lo siguiente al archivo

192168231 slots=2

192168232 slots=2

192168233 slots=2

192168234 slots=2

192168235 slots=2

192168236 slots=2

Como dato adicional y a modo de ejemplo mostraremos como deben modificarse los siguientes archivos agregando lo que figura debajo de cada tiacutetulo (no entraremos en detalle en cuanto a la explicacioacuten de cada uno respecta debido a que forman parte de la configuracioacuten standard de la red del sistema operativo Linux Debian versioacuten 50 (Lenny))

Archivo ldquoetcresolvconfrdquo

domain lanfrhutneduar

Paacutegina 16 de 27

search lanfrhutneduar frhutneduar

nameserver 19216821

nameserver 17021017154

Archivo ldquoetchostsrdquo

192168231 symc01nnfrhutneduar symc01

192168232 symc02nnfrhutneduar symc02

192168233 symc03nnfrhutneduar symc03

192168234 symc04nnfrhutneduar symc04

192168235 symc05nnfrhutneduar symc05

192168236 symc06nnfrhutneduar symc06

Archivo ldquoetcnetworkinterfacesrdquo

iface eth0 inet static

address 192168231

netmask 2552552550

gateway 19216821

35 Prueba de conexioacuten y configuracioacuten desde el servidor primario o

Paacutegina 17 de 27

maestro a los servidores secundarios

Ahora deberemos realizar los siguientes pasos en cada servidor secundario (en nuestro casos desde el IP 192168132 al IP 192168136)

Realizamos una prueba de conexioacuten viacutea SSH para ver si funciona la conectividad sin password (Passwordless Connection) desde el servidor primario (IP 192168131) al primer servidor secundario (IP 192168132) Una vez que SSH encuentre el servidor secundario nos solicitaraacute el password del usuario ROOT por lo que deberemos escribirlo para ingresar al mismo

Modificar los permisos del directorio ldquorootsshrdquo ponieacutendolos en 700

Agregar el pasword puacuteblico al archivo ldquorootsshauthorized_keysrdquo

Cambiar los permisos del archivo ldquoauthorized_keysrdquo ponieacutendolos en 644

Una vez finalizados estos pasos deberemos hacer lo mismo con los demaacutes

servidores secundarios vieacutendose algo similar al siguiente print screen

Paacutegina 18 de 27

4 Probando nuestro superservidor Asumimos en este paso que ya deberiacuteamos tener instalado apropiadamente nuestro superservidor con capacidades de procesamiento paralelo del tipo MPI ahora usted pude probar el mismo con un programa de testeo que calcularaacute el nuacutemero PI

El programa a utilizarse seraacute el contenido en el archivo ldquoPicrdquo el mismo es un programa simple escrito en lenguaje ldquoC que reporta el nuacuteemro PI de cada nodo sobre el superservidor usando los servicios MPI

41 Para esto deberemos descargar el archivo ldquoPicrdquo del link httpwwwps3clusterorgdistrospic y ponerlo en el directorio ldquoopenmpirdquoen el servidor primario o maestro (se adjunta maacutes abajo el programa del sitio original para que pueda guardarse en un archivo que deberaacute llamarse ldquoPicrdquo)

COMIENZO DEL PROGRAMA To run this program --------------------- Issue time mpirun -np [nprocs] pi (SGI Beowulf) ------------------------------------------------------------------ include ltstdiohgt include ltstdlibhgt

Paacutegina 19 de 27

include mpih int main(int argc char argv[]) int i n double h pi x int me nprocs double piece --------------------------------------------------- MPI_Init (ampargc ampargv) MPI_Comm_size (MPI_COMM_WORLD ampnprocs) MPI_Comm_rank (MPI_COMM_WORLD ampme) --------------------------------------------------- if (me == 0) printf(s Input number of intervalsn) scanf (d ampn)

Paacutegina 20 de 27

--------------------------------------------------- MPI_Bcast (ampn 1 MPI_INT 0 MPI_COMM_WORLD) --------------------------------------------------- h = 1 (double) n piece = 0 for (i=me+1 i lt= n i+=nprocs) x = (i-1)h piece = piece + ( 4 (1+(x)(x)) + 4 (1+(x+h)(x+h)) ) 2 h printf(d pi = 2515fn me piece)

Paacutegina 21 de 27

--------------------------------------------------- MPI_Reduce (amppiece amppi 1 MPI_DOUBLE MPI_SUM 0 MPI_COMM_WORLD) --------------------------------------------------- if (me = = 0) printf(pi = 2515fn pi) --------------------------------------------------- MPI_Finalize() return 0 FIN DEL PROGRAMA

Paacutegina 22 de 27

42 Compilar el programa utilizando el comando ldquompiccrdquo Como resultado se

generaraacute un archivo binario ejecutable llamado ldquoPirdquo

Paacutegina 23 de 27

43 Para ejecutar el programa ldquoPirdquo en forma local solo basta con tipear

ldquoroot192168131~ mpirun -np 2 Pirdquo el nuacutemero 2 denota la cantidad de procesos que se utilizaraacuten cuando se ejecute el programa

Paacutegina 24 de 27

44 Para realizar la ejecucioacuten del programa ldquoPirdquoen nuestro superservidor

ahora deberemos realizar una copia del programa ldquoPirdquoen cada directorio compartido de nuestro ldquoNFSrdquo de cada nodo Como paso posterior ejecutaremos desde el servidor primario nuevamente nuestro programa tecleando ldquoroot192168131~ mpirun -np 12 Pirdquo Vemos que se ha aumentado la cantidad de procesos (slots) esto es debido a que ahora estaremos realizando la ejecucioacuten con mayor cantidad de procesadores (12 en total)

Paacutegina 25 de 27

45 Para visualizar la cantidad de procesos utilizaremos el comando ldquoTOPrdquo Aquiacute veremos los datos de cada proceso paralelo ejecutado

Paacutegina 26 de 27

Fuentes consultadas y sitios de intereacutes

httpwwwdebianorg

httpwwwopen-mpiorg

httpwwwps3clusterumassdeduindexhtml

httpwwwphilchencom20070728how-to-enable-passwordless-authentication-with-ssh

6 Autores Alumnos de la Universidad Tecnoloacutegica Nacional ndash Facultad Regional Haedo ndash Laboratorio de Simulacioacuten y Mecaacutenica Computacional

Andreacutes Trapanotto

Antonio Sebastiaacuten Rodriacuteguez Capello

7 Agradecimientos Profesores de la Universidad Tecnoloacutegica Nacional ndash Facultad Regional Haedo ndash Laboratorio de Simulacioacuten y Mecaacutenica Computacional

Ing Carlos Carlassare

Ing Miguel Bavaro

Ing Juan C Polidoro

Paacutegina 27 de 27

Page 14: Instalacin de un Super-Servidor de procesamiento paralelo … · 2010-01-30 · computadora mediante un intérprete de comandos, y también puede redirigir el tráfico de X para poder

33 Configuracioacuten de los servidores secundarios (vieacutendose algo similar al print screen)

Una vez generado el archivo que contiene la clave puacuteblica (id_rsapub) se copia a las demaacutes PCs o servidores secundarios (en nuestro caso nuacutemeros IP desde el 192168132 al 192168136) para que los mismos puedan acceder a ejecutar los comandos que el usuario necesite sin requerir password (Passwordless Connection)

Este paso debe repetirse por cada servidor secundario por lo que la sintaxis vista en el print screen maacutes abajo cambiaraacute en su segunda parte de ldquoroot192168132homenombre-usuarioid_rsaserverpubrdquo a ldquoroot192168133homenombre-usuarioid_rsaserverpubrdquo y asiacute sucesivamente hasta llegar al nuacutemero IP 192168136

Paacutegina 14 de 27

34 Modificacioacuten de los archivos de configuracioacuten del servidor primario o maestro

Debemos modificar en el servidor primario o maestro el archivo ldquoetcopenmpiopenmpi-default-hostfilerdquo Este archivo es el que contiene tanto los nuacutemeros IP de todos los nodos de nuestro superservidor (recordar que nodo es tanto el servidor primario como los secundarios) como la cantidad de procesadores que tiene cada nodo es de 2 pondremos este valor

Paacutegina 15 de 27

Agregando lo siguiente al archivo

192168231 slots=2

192168232 slots=2

192168233 slots=2

192168234 slots=2

192168235 slots=2

192168236 slots=2

Como dato adicional y a modo de ejemplo mostraremos como deben modificarse los siguientes archivos agregando lo que figura debajo de cada tiacutetulo (no entraremos en detalle en cuanto a la explicacioacuten de cada uno respecta debido a que forman parte de la configuracioacuten standard de la red del sistema operativo Linux Debian versioacuten 50 (Lenny))

Archivo ldquoetcresolvconfrdquo

domain lanfrhutneduar

Paacutegina 16 de 27

search lanfrhutneduar frhutneduar

nameserver 19216821

nameserver 17021017154

Archivo ldquoetchostsrdquo

192168231 symc01nnfrhutneduar symc01

192168232 symc02nnfrhutneduar symc02

192168233 symc03nnfrhutneduar symc03

192168234 symc04nnfrhutneduar symc04

192168235 symc05nnfrhutneduar symc05

192168236 symc06nnfrhutneduar symc06

Archivo ldquoetcnetworkinterfacesrdquo

iface eth0 inet static

address 192168231

netmask 2552552550

gateway 19216821

35 Prueba de conexioacuten y configuracioacuten desde el servidor primario o

Paacutegina 17 de 27

maestro a los servidores secundarios

Ahora deberemos realizar los siguientes pasos en cada servidor secundario (en nuestro casos desde el IP 192168132 al IP 192168136)

Realizamos una prueba de conexioacuten viacutea SSH para ver si funciona la conectividad sin password (Passwordless Connection) desde el servidor primario (IP 192168131) al primer servidor secundario (IP 192168132) Una vez que SSH encuentre el servidor secundario nos solicitaraacute el password del usuario ROOT por lo que deberemos escribirlo para ingresar al mismo

Modificar los permisos del directorio ldquorootsshrdquo ponieacutendolos en 700

Agregar el pasword puacuteblico al archivo ldquorootsshauthorized_keysrdquo

Cambiar los permisos del archivo ldquoauthorized_keysrdquo ponieacutendolos en 644

Una vez finalizados estos pasos deberemos hacer lo mismo con los demaacutes

servidores secundarios vieacutendose algo similar al siguiente print screen

Paacutegina 18 de 27

4 Probando nuestro superservidor Asumimos en este paso que ya deberiacuteamos tener instalado apropiadamente nuestro superservidor con capacidades de procesamiento paralelo del tipo MPI ahora usted pude probar el mismo con un programa de testeo que calcularaacute el nuacutemero PI

El programa a utilizarse seraacute el contenido en el archivo ldquoPicrdquo el mismo es un programa simple escrito en lenguaje ldquoC que reporta el nuacuteemro PI de cada nodo sobre el superservidor usando los servicios MPI

41 Para esto deberemos descargar el archivo ldquoPicrdquo del link httpwwwps3clusterorgdistrospic y ponerlo en el directorio ldquoopenmpirdquoen el servidor primario o maestro (se adjunta maacutes abajo el programa del sitio original para que pueda guardarse en un archivo que deberaacute llamarse ldquoPicrdquo)

COMIENZO DEL PROGRAMA To run this program --------------------- Issue time mpirun -np [nprocs] pi (SGI Beowulf) ------------------------------------------------------------------ include ltstdiohgt include ltstdlibhgt

Paacutegina 19 de 27

include mpih int main(int argc char argv[]) int i n double h pi x int me nprocs double piece --------------------------------------------------- MPI_Init (ampargc ampargv) MPI_Comm_size (MPI_COMM_WORLD ampnprocs) MPI_Comm_rank (MPI_COMM_WORLD ampme) --------------------------------------------------- if (me == 0) printf(s Input number of intervalsn) scanf (d ampn)

Paacutegina 20 de 27

--------------------------------------------------- MPI_Bcast (ampn 1 MPI_INT 0 MPI_COMM_WORLD) --------------------------------------------------- h = 1 (double) n piece = 0 for (i=me+1 i lt= n i+=nprocs) x = (i-1)h piece = piece + ( 4 (1+(x)(x)) + 4 (1+(x+h)(x+h)) ) 2 h printf(d pi = 2515fn me piece)

Paacutegina 21 de 27

--------------------------------------------------- MPI_Reduce (amppiece amppi 1 MPI_DOUBLE MPI_SUM 0 MPI_COMM_WORLD) --------------------------------------------------- if (me = = 0) printf(pi = 2515fn pi) --------------------------------------------------- MPI_Finalize() return 0 FIN DEL PROGRAMA

Paacutegina 22 de 27

42 Compilar el programa utilizando el comando ldquompiccrdquo Como resultado se

generaraacute un archivo binario ejecutable llamado ldquoPirdquo

Paacutegina 23 de 27

43 Para ejecutar el programa ldquoPirdquo en forma local solo basta con tipear

ldquoroot192168131~ mpirun -np 2 Pirdquo el nuacutemero 2 denota la cantidad de procesos que se utilizaraacuten cuando se ejecute el programa

Paacutegina 24 de 27

44 Para realizar la ejecucioacuten del programa ldquoPirdquoen nuestro superservidor

ahora deberemos realizar una copia del programa ldquoPirdquoen cada directorio compartido de nuestro ldquoNFSrdquo de cada nodo Como paso posterior ejecutaremos desde el servidor primario nuevamente nuestro programa tecleando ldquoroot192168131~ mpirun -np 12 Pirdquo Vemos que se ha aumentado la cantidad de procesos (slots) esto es debido a que ahora estaremos realizando la ejecucioacuten con mayor cantidad de procesadores (12 en total)

Paacutegina 25 de 27

45 Para visualizar la cantidad de procesos utilizaremos el comando ldquoTOPrdquo Aquiacute veremos los datos de cada proceso paralelo ejecutado

Paacutegina 26 de 27

Fuentes consultadas y sitios de intereacutes

httpwwwdebianorg

httpwwwopen-mpiorg

httpwwwps3clusterumassdeduindexhtml

httpwwwphilchencom20070728how-to-enable-passwordless-authentication-with-ssh

6 Autores Alumnos de la Universidad Tecnoloacutegica Nacional ndash Facultad Regional Haedo ndash Laboratorio de Simulacioacuten y Mecaacutenica Computacional

Andreacutes Trapanotto

Antonio Sebastiaacuten Rodriacuteguez Capello

7 Agradecimientos Profesores de la Universidad Tecnoloacutegica Nacional ndash Facultad Regional Haedo ndash Laboratorio de Simulacioacuten y Mecaacutenica Computacional

Ing Carlos Carlassare

Ing Miguel Bavaro

Ing Juan C Polidoro

Paacutegina 27 de 27

Page 15: Instalacin de un Super-Servidor de procesamiento paralelo … · 2010-01-30 · computadora mediante un intérprete de comandos, y también puede redirigir el tráfico de X para poder

34 Modificacioacuten de los archivos de configuracioacuten del servidor primario o maestro

Debemos modificar en el servidor primario o maestro el archivo ldquoetcopenmpiopenmpi-default-hostfilerdquo Este archivo es el que contiene tanto los nuacutemeros IP de todos los nodos de nuestro superservidor (recordar que nodo es tanto el servidor primario como los secundarios) como la cantidad de procesadores que tiene cada nodo es de 2 pondremos este valor

Paacutegina 15 de 27

Agregando lo siguiente al archivo

192168231 slots=2

192168232 slots=2

192168233 slots=2

192168234 slots=2

192168235 slots=2

192168236 slots=2

Como dato adicional y a modo de ejemplo mostraremos como deben modificarse los siguientes archivos agregando lo que figura debajo de cada tiacutetulo (no entraremos en detalle en cuanto a la explicacioacuten de cada uno respecta debido a que forman parte de la configuracioacuten standard de la red del sistema operativo Linux Debian versioacuten 50 (Lenny))

Archivo ldquoetcresolvconfrdquo

domain lanfrhutneduar

Paacutegina 16 de 27

search lanfrhutneduar frhutneduar

nameserver 19216821

nameserver 17021017154

Archivo ldquoetchostsrdquo

192168231 symc01nnfrhutneduar symc01

192168232 symc02nnfrhutneduar symc02

192168233 symc03nnfrhutneduar symc03

192168234 symc04nnfrhutneduar symc04

192168235 symc05nnfrhutneduar symc05

192168236 symc06nnfrhutneduar symc06

Archivo ldquoetcnetworkinterfacesrdquo

iface eth0 inet static

address 192168231

netmask 2552552550

gateway 19216821

35 Prueba de conexioacuten y configuracioacuten desde el servidor primario o

Paacutegina 17 de 27

maestro a los servidores secundarios

Ahora deberemos realizar los siguientes pasos en cada servidor secundario (en nuestro casos desde el IP 192168132 al IP 192168136)

Realizamos una prueba de conexioacuten viacutea SSH para ver si funciona la conectividad sin password (Passwordless Connection) desde el servidor primario (IP 192168131) al primer servidor secundario (IP 192168132) Una vez que SSH encuentre el servidor secundario nos solicitaraacute el password del usuario ROOT por lo que deberemos escribirlo para ingresar al mismo

Modificar los permisos del directorio ldquorootsshrdquo ponieacutendolos en 700

Agregar el pasword puacuteblico al archivo ldquorootsshauthorized_keysrdquo

Cambiar los permisos del archivo ldquoauthorized_keysrdquo ponieacutendolos en 644

Una vez finalizados estos pasos deberemos hacer lo mismo con los demaacutes

servidores secundarios vieacutendose algo similar al siguiente print screen

Paacutegina 18 de 27

4 Probando nuestro superservidor Asumimos en este paso que ya deberiacuteamos tener instalado apropiadamente nuestro superservidor con capacidades de procesamiento paralelo del tipo MPI ahora usted pude probar el mismo con un programa de testeo que calcularaacute el nuacutemero PI

El programa a utilizarse seraacute el contenido en el archivo ldquoPicrdquo el mismo es un programa simple escrito en lenguaje ldquoC que reporta el nuacuteemro PI de cada nodo sobre el superservidor usando los servicios MPI

41 Para esto deberemos descargar el archivo ldquoPicrdquo del link httpwwwps3clusterorgdistrospic y ponerlo en el directorio ldquoopenmpirdquoen el servidor primario o maestro (se adjunta maacutes abajo el programa del sitio original para que pueda guardarse en un archivo que deberaacute llamarse ldquoPicrdquo)

COMIENZO DEL PROGRAMA To run this program --------------------- Issue time mpirun -np [nprocs] pi (SGI Beowulf) ------------------------------------------------------------------ include ltstdiohgt include ltstdlibhgt

Paacutegina 19 de 27

include mpih int main(int argc char argv[]) int i n double h pi x int me nprocs double piece --------------------------------------------------- MPI_Init (ampargc ampargv) MPI_Comm_size (MPI_COMM_WORLD ampnprocs) MPI_Comm_rank (MPI_COMM_WORLD ampme) --------------------------------------------------- if (me == 0) printf(s Input number of intervalsn) scanf (d ampn)

Paacutegina 20 de 27

--------------------------------------------------- MPI_Bcast (ampn 1 MPI_INT 0 MPI_COMM_WORLD) --------------------------------------------------- h = 1 (double) n piece = 0 for (i=me+1 i lt= n i+=nprocs) x = (i-1)h piece = piece + ( 4 (1+(x)(x)) + 4 (1+(x+h)(x+h)) ) 2 h printf(d pi = 2515fn me piece)

Paacutegina 21 de 27

--------------------------------------------------- MPI_Reduce (amppiece amppi 1 MPI_DOUBLE MPI_SUM 0 MPI_COMM_WORLD) --------------------------------------------------- if (me = = 0) printf(pi = 2515fn pi) --------------------------------------------------- MPI_Finalize() return 0 FIN DEL PROGRAMA

Paacutegina 22 de 27

42 Compilar el programa utilizando el comando ldquompiccrdquo Como resultado se

generaraacute un archivo binario ejecutable llamado ldquoPirdquo

Paacutegina 23 de 27

43 Para ejecutar el programa ldquoPirdquo en forma local solo basta con tipear

ldquoroot192168131~ mpirun -np 2 Pirdquo el nuacutemero 2 denota la cantidad de procesos que se utilizaraacuten cuando se ejecute el programa

Paacutegina 24 de 27

44 Para realizar la ejecucioacuten del programa ldquoPirdquoen nuestro superservidor

ahora deberemos realizar una copia del programa ldquoPirdquoen cada directorio compartido de nuestro ldquoNFSrdquo de cada nodo Como paso posterior ejecutaremos desde el servidor primario nuevamente nuestro programa tecleando ldquoroot192168131~ mpirun -np 12 Pirdquo Vemos que se ha aumentado la cantidad de procesos (slots) esto es debido a que ahora estaremos realizando la ejecucioacuten con mayor cantidad de procesadores (12 en total)

Paacutegina 25 de 27

45 Para visualizar la cantidad de procesos utilizaremos el comando ldquoTOPrdquo Aquiacute veremos los datos de cada proceso paralelo ejecutado

Paacutegina 26 de 27

Fuentes consultadas y sitios de intereacutes

httpwwwdebianorg

httpwwwopen-mpiorg

httpwwwps3clusterumassdeduindexhtml

httpwwwphilchencom20070728how-to-enable-passwordless-authentication-with-ssh

6 Autores Alumnos de la Universidad Tecnoloacutegica Nacional ndash Facultad Regional Haedo ndash Laboratorio de Simulacioacuten y Mecaacutenica Computacional

Andreacutes Trapanotto

Antonio Sebastiaacuten Rodriacuteguez Capello

7 Agradecimientos Profesores de la Universidad Tecnoloacutegica Nacional ndash Facultad Regional Haedo ndash Laboratorio de Simulacioacuten y Mecaacutenica Computacional

Ing Carlos Carlassare

Ing Miguel Bavaro

Ing Juan C Polidoro

Paacutegina 27 de 27

Page 16: Instalacin de un Super-Servidor de procesamiento paralelo … · 2010-01-30 · computadora mediante un intérprete de comandos, y también puede redirigir el tráfico de X para poder

Agregando lo siguiente al archivo

192168231 slots=2

192168232 slots=2

192168233 slots=2

192168234 slots=2

192168235 slots=2

192168236 slots=2

Como dato adicional y a modo de ejemplo mostraremos como deben modificarse los siguientes archivos agregando lo que figura debajo de cada tiacutetulo (no entraremos en detalle en cuanto a la explicacioacuten de cada uno respecta debido a que forman parte de la configuracioacuten standard de la red del sistema operativo Linux Debian versioacuten 50 (Lenny))

Archivo ldquoetcresolvconfrdquo

domain lanfrhutneduar

Paacutegina 16 de 27

search lanfrhutneduar frhutneduar

nameserver 19216821

nameserver 17021017154

Archivo ldquoetchostsrdquo

192168231 symc01nnfrhutneduar symc01

192168232 symc02nnfrhutneduar symc02

192168233 symc03nnfrhutneduar symc03

192168234 symc04nnfrhutneduar symc04

192168235 symc05nnfrhutneduar symc05

192168236 symc06nnfrhutneduar symc06

Archivo ldquoetcnetworkinterfacesrdquo

iface eth0 inet static

address 192168231

netmask 2552552550

gateway 19216821

35 Prueba de conexioacuten y configuracioacuten desde el servidor primario o

Paacutegina 17 de 27

maestro a los servidores secundarios

Ahora deberemos realizar los siguientes pasos en cada servidor secundario (en nuestro casos desde el IP 192168132 al IP 192168136)

Realizamos una prueba de conexioacuten viacutea SSH para ver si funciona la conectividad sin password (Passwordless Connection) desde el servidor primario (IP 192168131) al primer servidor secundario (IP 192168132) Una vez que SSH encuentre el servidor secundario nos solicitaraacute el password del usuario ROOT por lo que deberemos escribirlo para ingresar al mismo

Modificar los permisos del directorio ldquorootsshrdquo ponieacutendolos en 700

Agregar el pasword puacuteblico al archivo ldquorootsshauthorized_keysrdquo

Cambiar los permisos del archivo ldquoauthorized_keysrdquo ponieacutendolos en 644

Una vez finalizados estos pasos deberemos hacer lo mismo con los demaacutes

servidores secundarios vieacutendose algo similar al siguiente print screen

Paacutegina 18 de 27

4 Probando nuestro superservidor Asumimos en este paso que ya deberiacuteamos tener instalado apropiadamente nuestro superservidor con capacidades de procesamiento paralelo del tipo MPI ahora usted pude probar el mismo con un programa de testeo que calcularaacute el nuacutemero PI

El programa a utilizarse seraacute el contenido en el archivo ldquoPicrdquo el mismo es un programa simple escrito en lenguaje ldquoC que reporta el nuacuteemro PI de cada nodo sobre el superservidor usando los servicios MPI

41 Para esto deberemos descargar el archivo ldquoPicrdquo del link httpwwwps3clusterorgdistrospic y ponerlo en el directorio ldquoopenmpirdquoen el servidor primario o maestro (se adjunta maacutes abajo el programa del sitio original para que pueda guardarse en un archivo que deberaacute llamarse ldquoPicrdquo)

COMIENZO DEL PROGRAMA To run this program --------------------- Issue time mpirun -np [nprocs] pi (SGI Beowulf) ------------------------------------------------------------------ include ltstdiohgt include ltstdlibhgt

Paacutegina 19 de 27

include mpih int main(int argc char argv[]) int i n double h pi x int me nprocs double piece --------------------------------------------------- MPI_Init (ampargc ampargv) MPI_Comm_size (MPI_COMM_WORLD ampnprocs) MPI_Comm_rank (MPI_COMM_WORLD ampme) --------------------------------------------------- if (me == 0) printf(s Input number of intervalsn) scanf (d ampn)

Paacutegina 20 de 27

--------------------------------------------------- MPI_Bcast (ampn 1 MPI_INT 0 MPI_COMM_WORLD) --------------------------------------------------- h = 1 (double) n piece = 0 for (i=me+1 i lt= n i+=nprocs) x = (i-1)h piece = piece + ( 4 (1+(x)(x)) + 4 (1+(x+h)(x+h)) ) 2 h printf(d pi = 2515fn me piece)

Paacutegina 21 de 27

--------------------------------------------------- MPI_Reduce (amppiece amppi 1 MPI_DOUBLE MPI_SUM 0 MPI_COMM_WORLD) --------------------------------------------------- if (me = = 0) printf(pi = 2515fn pi) --------------------------------------------------- MPI_Finalize() return 0 FIN DEL PROGRAMA

Paacutegina 22 de 27

42 Compilar el programa utilizando el comando ldquompiccrdquo Como resultado se

generaraacute un archivo binario ejecutable llamado ldquoPirdquo

Paacutegina 23 de 27

43 Para ejecutar el programa ldquoPirdquo en forma local solo basta con tipear

ldquoroot192168131~ mpirun -np 2 Pirdquo el nuacutemero 2 denota la cantidad de procesos que se utilizaraacuten cuando se ejecute el programa

Paacutegina 24 de 27

44 Para realizar la ejecucioacuten del programa ldquoPirdquoen nuestro superservidor

ahora deberemos realizar una copia del programa ldquoPirdquoen cada directorio compartido de nuestro ldquoNFSrdquo de cada nodo Como paso posterior ejecutaremos desde el servidor primario nuevamente nuestro programa tecleando ldquoroot192168131~ mpirun -np 12 Pirdquo Vemos que se ha aumentado la cantidad de procesos (slots) esto es debido a que ahora estaremos realizando la ejecucioacuten con mayor cantidad de procesadores (12 en total)

Paacutegina 25 de 27

45 Para visualizar la cantidad de procesos utilizaremos el comando ldquoTOPrdquo Aquiacute veremos los datos de cada proceso paralelo ejecutado

Paacutegina 26 de 27

Fuentes consultadas y sitios de intereacutes

httpwwwdebianorg

httpwwwopen-mpiorg

httpwwwps3clusterumassdeduindexhtml

httpwwwphilchencom20070728how-to-enable-passwordless-authentication-with-ssh

6 Autores Alumnos de la Universidad Tecnoloacutegica Nacional ndash Facultad Regional Haedo ndash Laboratorio de Simulacioacuten y Mecaacutenica Computacional

Andreacutes Trapanotto

Antonio Sebastiaacuten Rodriacuteguez Capello

7 Agradecimientos Profesores de la Universidad Tecnoloacutegica Nacional ndash Facultad Regional Haedo ndash Laboratorio de Simulacioacuten y Mecaacutenica Computacional

Ing Carlos Carlassare

Ing Miguel Bavaro

Ing Juan C Polidoro

Paacutegina 27 de 27

Page 17: Instalacin de un Super-Servidor de procesamiento paralelo … · 2010-01-30 · computadora mediante un intérprete de comandos, y también puede redirigir el tráfico de X para poder

search lanfrhutneduar frhutneduar

nameserver 19216821

nameserver 17021017154

Archivo ldquoetchostsrdquo

192168231 symc01nnfrhutneduar symc01

192168232 symc02nnfrhutneduar symc02

192168233 symc03nnfrhutneduar symc03

192168234 symc04nnfrhutneduar symc04

192168235 symc05nnfrhutneduar symc05

192168236 symc06nnfrhutneduar symc06

Archivo ldquoetcnetworkinterfacesrdquo

iface eth0 inet static

address 192168231

netmask 2552552550

gateway 19216821

35 Prueba de conexioacuten y configuracioacuten desde el servidor primario o

Paacutegina 17 de 27

maestro a los servidores secundarios

Ahora deberemos realizar los siguientes pasos en cada servidor secundario (en nuestro casos desde el IP 192168132 al IP 192168136)

Realizamos una prueba de conexioacuten viacutea SSH para ver si funciona la conectividad sin password (Passwordless Connection) desde el servidor primario (IP 192168131) al primer servidor secundario (IP 192168132) Una vez que SSH encuentre el servidor secundario nos solicitaraacute el password del usuario ROOT por lo que deberemos escribirlo para ingresar al mismo

Modificar los permisos del directorio ldquorootsshrdquo ponieacutendolos en 700

Agregar el pasword puacuteblico al archivo ldquorootsshauthorized_keysrdquo

Cambiar los permisos del archivo ldquoauthorized_keysrdquo ponieacutendolos en 644

Una vez finalizados estos pasos deberemos hacer lo mismo con los demaacutes

servidores secundarios vieacutendose algo similar al siguiente print screen

Paacutegina 18 de 27

4 Probando nuestro superservidor Asumimos en este paso que ya deberiacuteamos tener instalado apropiadamente nuestro superservidor con capacidades de procesamiento paralelo del tipo MPI ahora usted pude probar el mismo con un programa de testeo que calcularaacute el nuacutemero PI

El programa a utilizarse seraacute el contenido en el archivo ldquoPicrdquo el mismo es un programa simple escrito en lenguaje ldquoC que reporta el nuacuteemro PI de cada nodo sobre el superservidor usando los servicios MPI

41 Para esto deberemos descargar el archivo ldquoPicrdquo del link httpwwwps3clusterorgdistrospic y ponerlo en el directorio ldquoopenmpirdquoen el servidor primario o maestro (se adjunta maacutes abajo el programa del sitio original para que pueda guardarse en un archivo que deberaacute llamarse ldquoPicrdquo)

COMIENZO DEL PROGRAMA To run this program --------------------- Issue time mpirun -np [nprocs] pi (SGI Beowulf) ------------------------------------------------------------------ include ltstdiohgt include ltstdlibhgt

Paacutegina 19 de 27

include mpih int main(int argc char argv[]) int i n double h pi x int me nprocs double piece --------------------------------------------------- MPI_Init (ampargc ampargv) MPI_Comm_size (MPI_COMM_WORLD ampnprocs) MPI_Comm_rank (MPI_COMM_WORLD ampme) --------------------------------------------------- if (me == 0) printf(s Input number of intervalsn) scanf (d ampn)

Paacutegina 20 de 27

--------------------------------------------------- MPI_Bcast (ampn 1 MPI_INT 0 MPI_COMM_WORLD) --------------------------------------------------- h = 1 (double) n piece = 0 for (i=me+1 i lt= n i+=nprocs) x = (i-1)h piece = piece + ( 4 (1+(x)(x)) + 4 (1+(x+h)(x+h)) ) 2 h printf(d pi = 2515fn me piece)

Paacutegina 21 de 27

--------------------------------------------------- MPI_Reduce (amppiece amppi 1 MPI_DOUBLE MPI_SUM 0 MPI_COMM_WORLD) --------------------------------------------------- if (me = = 0) printf(pi = 2515fn pi) --------------------------------------------------- MPI_Finalize() return 0 FIN DEL PROGRAMA

Paacutegina 22 de 27

42 Compilar el programa utilizando el comando ldquompiccrdquo Como resultado se

generaraacute un archivo binario ejecutable llamado ldquoPirdquo

Paacutegina 23 de 27

43 Para ejecutar el programa ldquoPirdquo en forma local solo basta con tipear

ldquoroot192168131~ mpirun -np 2 Pirdquo el nuacutemero 2 denota la cantidad de procesos que se utilizaraacuten cuando se ejecute el programa

Paacutegina 24 de 27

44 Para realizar la ejecucioacuten del programa ldquoPirdquoen nuestro superservidor

ahora deberemos realizar una copia del programa ldquoPirdquoen cada directorio compartido de nuestro ldquoNFSrdquo de cada nodo Como paso posterior ejecutaremos desde el servidor primario nuevamente nuestro programa tecleando ldquoroot192168131~ mpirun -np 12 Pirdquo Vemos que se ha aumentado la cantidad de procesos (slots) esto es debido a que ahora estaremos realizando la ejecucioacuten con mayor cantidad de procesadores (12 en total)

Paacutegina 25 de 27

45 Para visualizar la cantidad de procesos utilizaremos el comando ldquoTOPrdquo Aquiacute veremos los datos de cada proceso paralelo ejecutado

Paacutegina 26 de 27

Fuentes consultadas y sitios de intereacutes

httpwwwdebianorg

httpwwwopen-mpiorg

httpwwwps3clusterumassdeduindexhtml

httpwwwphilchencom20070728how-to-enable-passwordless-authentication-with-ssh

6 Autores Alumnos de la Universidad Tecnoloacutegica Nacional ndash Facultad Regional Haedo ndash Laboratorio de Simulacioacuten y Mecaacutenica Computacional

Andreacutes Trapanotto

Antonio Sebastiaacuten Rodriacuteguez Capello

7 Agradecimientos Profesores de la Universidad Tecnoloacutegica Nacional ndash Facultad Regional Haedo ndash Laboratorio de Simulacioacuten y Mecaacutenica Computacional

Ing Carlos Carlassare

Ing Miguel Bavaro

Ing Juan C Polidoro

Paacutegina 27 de 27

Page 18: Instalacin de un Super-Servidor de procesamiento paralelo … · 2010-01-30 · computadora mediante un intérprete de comandos, y también puede redirigir el tráfico de X para poder

maestro a los servidores secundarios

Ahora deberemos realizar los siguientes pasos en cada servidor secundario (en nuestro casos desde el IP 192168132 al IP 192168136)

Realizamos una prueba de conexioacuten viacutea SSH para ver si funciona la conectividad sin password (Passwordless Connection) desde el servidor primario (IP 192168131) al primer servidor secundario (IP 192168132) Una vez que SSH encuentre el servidor secundario nos solicitaraacute el password del usuario ROOT por lo que deberemos escribirlo para ingresar al mismo

Modificar los permisos del directorio ldquorootsshrdquo ponieacutendolos en 700

Agregar el pasword puacuteblico al archivo ldquorootsshauthorized_keysrdquo

Cambiar los permisos del archivo ldquoauthorized_keysrdquo ponieacutendolos en 644

Una vez finalizados estos pasos deberemos hacer lo mismo con los demaacutes

servidores secundarios vieacutendose algo similar al siguiente print screen

Paacutegina 18 de 27

4 Probando nuestro superservidor Asumimos en este paso que ya deberiacuteamos tener instalado apropiadamente nuestro superservidor con capacidades de procesamiento paralelo del tipo MPI ahora usted pude probar el mismo con un programa de testeo que calcularaacute el nuacutemero PI

El programa a utilizarse seraacute el contenido en el archivo ldquoPicrdquo el mismo es un programa simple escrito en lenguaje ldquoC que reporta el nuacuteemro PI de cada nodo sobre el superservidor usando los servicios MPI

41 Para esto deberemos descargar el archivo ldquoPicrdquo del link httpwwwps3clusterorgdistrospic y ponerlo en el directorio ldquoopenmpirdquoen el servidor primario o maestro (se adjunta maacutes abajo el programa del sitio original para que pueda guardarse en un archivo que deberaacute llamarse ldquoPicrdquo)

COMIENZO DEL PROGRAMA To run this program --------------------- Issue time mpirun -np [nprocs] pi (SGI Beowulf) ------------------------------------------------------------------ include ltstdiohgt include ltstdlibhgt

Paacutegina 19 de 27

include mpih int main(int argc char argv[]) int i n double h pi x int me nprocs double piece --------------------------------------------------- MPI_Init (ampargc ampargv) MPI_Comm_size (MPI_COMM_WORLD ampnprocs) MPI_Comm_rank (MPI_COMM_WORLD ampme) --------------------------------------------------- if (me == 0) printf(s Input number of intervalsn) scanf (d ampn)

Paacutegina 20 de 27

--------------------------------------------------- MPI_Bcast (ampn 1 MPI_INT 0 MPI_COMM_WORLD) --------------------------------------------------- h = 1 (double) n piece = 0 for (i=me+1 i lt= n i+=nprocs) x = (i-1)h piece = piece + ( 4 (1+(x)(x)) + 4 (1+(x+h)(x+h)) ) 2 h printf(d pi = 2515fn me piece)

Paacutegina 21 de 27

--------------------------------------------------- MPI_Reduce (amppiece amppi 1 MPI_DOUBLE MPI_SUM 0 MPI_COMM_WORLD) --------------------------------------------------- if (me = = 0) printf(pi = 2515fn pi) --------------------------------------------------- MPI_Finalize() return 0 FIN DEL PROGRAMA

Paacutegina 22 de 27

42 Compilar el programa utilizando el comando ldquompiccrdquo Como resultado se

generaraacute un archivo binario ejecutable llamado ldquoPirdquo

Paacutegina 23 de 27

43 Para ejecutar el programa ldquoPirdquo en forma local solo basta con tipear

ldquoroot192168131~ mpirun -np 2 Pirdquo el nuacutemero 2 denota la cantidad de procesos que se utilizaraacuten cuando se ejecute el programa

Paacutegina 24 de 27

44 Para realizar la ejecucioacuten del programa ldquoPirdquoen nuestro superservidor

ahora deberemos realizar una copia del programa ldquoPirdquoen cada directorio compartido de nuestro ldquoNFSrdquo de cada nodo Como paso posterior ejecutaremos desde el servidor primario nuevamente nuestro programa tecleando ldquoroot192168131~ mpirun -np 12 Pirdquo Vemos que se ha aumentado la cantidad de procesos (slots) esto es debido a que ahora estaremos realizando la ejecucioacuten con mayor cantidad de procesadores (12 en total)

Paacutegina 25 de 27

45 Para visualizar la cantidad de procesos utilizaremos el comando ldquoTOPrdquo Aquiacute veremos los datos de cada proceso paralelo ejecutado

Paacutegina 26 de 27

Fuentes consultadas y sitios de intereacutes

httpwwwdebianorg

httpwwwopen-mpiorg

httpwwwps3clusterumassdeduindexhtml

httpwwwphilchencom20070728how-to-enable-passwordless-authentication-with-ssh

6 Autores Alumnos de la Universidad Tecnoloacutegica Nacional ndash Facultad Regional Haedo ndash Laboratorio de Simulacioacuten y Mecaacutenica Computacional

Andreacutes Trapanotto

Antonio Sebastiaacuten Rodriacuteguez Capello

7 Agradecimientos Profesores de la Universidad Tecnoloacutegica Nacional ndash Facultad Regional Haedo ndash Laboratorio de Simulacioacuten y Mecaacutenica Computacional

Ing Carlos Carlassare

Ing Miguel Bavaro

Ing Juan C Polidoro

Paacutegina 27 de 27

Page 19: Instalacin de un Super-Servidor de procesamiento paralelo … · 2010-01-30 · computadora mediante un intérprete de comandos, y también puede redirigir el tráfico de X para poder

4 Probando nuestro superservidor Asumimos en este paso que ya deberiacuteamos tener instalado apropiadamente nuestro superservidor con capacidades de procesamiento paralelo del tipo MPI ahora usted pude probar el mismo con un programa de testeo que calcularaacute el nuacutemero PI

El programa a utilizarse seraacute el contenido en el archivo ldquoPicrdquo el mismo es un programa simple escrito en lenguaje ldquoC que reporta el nuacuteemro PI de cada nodo sobre el superservidor usando los servicios MPI

41 Para esto deberemos descargar el archivo ldquoPicrdquo del link httpwwwps3clusterorgdistrospic y ponerlo en el directorio ldquoopenmpirdquoen el servidor primario o maestro (se adjunta maacutes abajo el programa del sitio original para que pueda guardarse en un archivo que deberaacute llamarse ldquoPicrdquo)

COMIENZO DEL PROGRAMA To run this program --------------------- Issue time mpirun -np [nprocs] pi (SGI Beowulf) ------------------------------------------------------------------ include ltstdiohgt include ltstdlibhgt

Paacutegina 19 de 27

include mpih int main(int argc char argv[]) int i n double h pi x int me nprocs double piece --------------------------------------------------- MPI_Init (ampargc ampargv) MPI_Comm_size (MPI_COMM_WORLD ampnprocs) MPI_Comm_rank (MPI_COMM_WORLD ampme) --------------------------------------------------- if (me == 0) printf(s Input number of intervalsn) scanf (d ampn)

Paacutegina 20 de 27

--------------------------------------------------- MPI_Bcast (ampn 1 MPI_INT 0 MPI_COMM_WORLD) --------------------------------------------------- h = 1 (double) n piece = 0 for (i=me+1 i lt= n i+=nprocs) x = (i-1)h piece = piece + ( 4 (1+(x)(x)) + 4 (1+(x+h)(x+h)) ) 2 h printf(d pi = 2515fn me piece)

Paacutegina 21 de 27

--------------------------------------------------- MPI_Reduce (amppiece amppi 1 MPI_DOUBLE MPI_SUM 0 MPI_COMM_WORLD) --------------------------------------------------- if (me = = 0) printf(pi = 2515fn pi) --------------------------------------------------- MPI_Finalize() return 0 FIN DEL PROGRAMA

Paacutegina 22 de 27

42 Compilar el programa utilizando el comando ldquompiccrdquo Como resultado se

generaraacute un archivo binario ejecutable llamado ldquoPirdquo

Paacutegina 23 de 27

43 Para ejecutar el programa ldquoPirdquo en forma local solo basta con tipear

ldquoroot192168131~ mpirun -np 2 Pirdquo el nuacutemero 2 denota la cantidad de procesos que se utilizaraacuten cuando se ejecute el programa

Paacutegina 24 de 27

44 Para realizar la ejecucioacuten del programa ldquoPirdquoen nuestro superservidor

ahora deberemos realizar una copia del programa ldquoPirdquoen cada directorio compartido de nuestro ldquoNFSrdquo de cada nodo Como paso posterior ejecutaremos desde el servidor primario nuevamente nuestro programa tecleando ldquoroot192168131~ mpirun -np 12 Pirdquo Vemos que se ha aumentado la cantidad de procesos (slots) esto es debido a que ahora estaremos realizando la ejecucioacuten con mayor cantidad de procesadores (12 en total)

Paacutegina 25 de 27

45 Para visualizar la cantidad de procesos utilizaremos el comando ldquoTOPrdquo Aquiacute veremos los datos de cada proceso paralelo ejecutado

Paacutegina 26 de 27

Fuentes consultadas y sitios de intereacutes

httpwwwdebianorg

httpwwwopen-mpiorg

httpwwwps3clusterumassdeduindexhtml

httpwwwphilchencom20070728how-to-enable-passwordless-authentication-with-ssh

6 Autores Alumnos de la Universidad Tecnoloacutegica Nacional ndash Facultad Regional Haedo ndash Laboratorio de Simulacioacuten y Mecaacutenica Computacional

Andreacutes Trapanotto

Antonio Sebastiaacuten Rodriacuteguez Capello

7 Agradecimientos Profesores de la Universidad Tecnoloacutegica Nacional ndash Facultad Regional Haedo ndash Laboratorio de Simulacioacuten y Mecaacutenica Computacional

Ing Carlos Carlassare

Ing Miguel Bavaro

Ing Juan C Polidoro

Paacutegina 27 de 27

Page 20: Instalacin de un Super-Servidor de procesamiento paralelo … · 2010-01-30 · computadora mediante un intérprete de comandos, y también puede redirigir el tráfico de X para poder

include mpih int main(int argc char argv[]) int i n double h pi x int me nprocs double piece --------------------------------------------------- MPI_Init (ampargc ampargv) MPI_Comm_size (MPI_COMM_WORLD ampnprocs) MPI_Comm_rank (MPI_COMM_WORLD ampme) --------------------------------------------------- if (me == 0) printf(s Input number of intervalsn) scanf (d ampn)

Paacutegina 20 de 27

--------------------------------------------------- MPI_Bcast (ampn 1 MPI_INT 0 MPI_COMM_WORLD) --------------------------------------------------- h = 1 (double) n piece = 0 for (i=me+1 i lt= n i+=nprocs) x = (i-1)h piece = piece + ( 4 (1+(x)(x)) + 4 (1+(x+h)(x+h)) ) 2 h printf(d pi = 2515fn me piece)

Paacutegina 21 de 27

--------------------------------------------------- MPI_Reduce (amppiece amppi 1 MPI_DOUBLE MPI_SUM 0 MPI_COMM_WORLD) --------------------------------------------------- if (me = = 0) printf(pi = 2515fn pi) --------------------------------------------------- MPI_Finalize() return 0 FIN DEL PROGRAMA

Paacutegina 22 de 27

42 Compilar el programa utilizando el comando ldquompiccrdquo Como resultado se

generaraacute un archivo binario ejecutable llamado ldquoPirdquo

Paacutegina 23 de 27

43 Para ejecutar el programa ldquoPirdquo en forma local solo basta con tipear

ldquoroot192168131~ mpirun -np 2 Pirdquo el nuacutemero 2 denota la cantidad de procesos que se utilizaraacuten cuando se ejecute el programa

Paacutegina 24 de 27

44 Para realizar la ejecucioacuten del programa ldquoPirdquoen nuestro superservidor

ahora deberemos realizar una copia del programa ldquoPirdquoen cada directorio compartido de nuestro ldquoNFSrdquo de cada nodo Como paso posterior ejecutaremos desde el servidor primario nuevamente nuestro programa tecleando ldquoroot192168131~ mpirun -np 12 Pirdquo Vemos que se ha aumentado la cantidad de procesos (slots) esto es debido a que ahora estaremos realizando la ejecucioacuten con mayor cantidad de procesadores (12 en total)

Paacutegina 25 de 27

45 Para visualizar la cantidad de procesos utilizaremos el comando ldquoTOPrdquo Aquiacute veremos los datos de cada proceso paralelo ejecutado

Paacutegina 26 de 27

Fuentes consultadas y sitios de intereacutes

httpwwwdebianorg

httpwwwopen-mpiorg

httpwwwps3clusterumassdeduindexhtml

httpwwwphilchencom20070728how-to-enable-passwordless-authentication-with-ssh

6 Autores Alumnos de la Universidad Tecnoloacutegica Nacional ndash Facultad Regional Haedo ndash Laboratorio de Simulacioacuten y Mecaacutenica Computacional

Andreacutes Trapanotto

Antonio Sebastiaacuten Rodriacuteguez Capello

7 Agradecimientos Profesores de la Universidad Tecnoloacutegica Nacional ndash Facultad Regional Haedo ndash Laboratorio de Simulacioacuten y Mecaacutenica Computacional

Ing Carlos Carlassare

Ing Miguel Bavaro

Ing Juan C Polidoro

Paacutegina 27 de 27

Page 21: Instalacin de un Super-Servidor de procesamiento paralelo … · 2010-01-30 · computadora mediante un intérprete de comandos, y también puede redirigir el tráfico de X para poder

--------------------------------------------------- MPI_Bcast (ampn 1 MPI_INT 0 MPI_COMM_WORLD) --------------------------------------------------- h = 1 (double) n piece = 0 for (i=me+1 i lt= n i+=nprocs) x = (i-1)h piece = piece + ( 4 (1+(x)(x)) + 4 (1+(x+h)(x+h)) ) 2 h printf(d pi = 2515fn me piece)

Paacutegina 21 de 27

--------------------------------------------------- MPI_Reduce (amppiece amppi 1 MPI_DOUBLE MPI_SUM 0 MPI_COMM_WORLD) --------------------------------------------------- if (me = = 0) printf(pi = 2515fn pi) --------------------------------------------------- MPI_Finalize() return 0 FIN DEL PROGRAMA

Paacutegina 22 de 27

42 Compilar el programa utilizando el comando ldquompiccrdquo Como resultado se

generaraacute un archivo binario ejecutable llamado ldquoPirdquo

Paacutegina 23 de 27

43 Para ejecutar el programa ldquoPirdquo en forma local solo basta con tipear

ldquoroot192168131~ mpirun -np 2 Pirdquo el nuacutemero 2 denota la cantidad de procesos que se utilizaraacuten cuando se ejecute el programa

Paacutegina 24 de 27

44 Para realizar la ejecucioacuten del programa ldquoPirdquoen nuestro superservidor

ahora deberemos realizar una copia del programa ldquoPirdquoen cada directorio compartido de nuestro ldquoNFSrdquo de cada nodo Como paso posterior ejecutaremos desde el servidor primario nuevamente nuestro programa tecleando ldquoroot192168131~ mpirun -np 12 Pirdquo Vemos que se ha aumentado la cantidad de procesos (slots) esto es debido a que ahora estaremos realizando la ejecucioacuten con mayor cantidad de procesadores (12 en total)

Paacutegina 25 de 27

45 Para visualizar la cantidad de procesos utilizaremos el comando ldquoTOPrdquo Aquiacute veremos los datos de cada proceso paralelo ejecutado

Paacutegina 26 de 27

Fuentes consultadas y sitios de intereacutes

httpwwwdebianorg

httpwwwopen-mpiorg

httpwwwps3clusterumassdeduindexhtml

httpwwwphilchencom20070728how-to-enable-passwordless-authentication-with-ssh

6 Autores Alumnos de la Universidad Tecnoloacutegica Nacional ndash Facultad Regional Haedo ndash Laboratorio de Simulacioacuten y Mecaacutenica Computacional

Andreacutes Trapanotto

Antonio Sebastiaacuten Rodriacuteguez Capello

7 Agradecimientos Profesores de la Universidad Tecnoloacutegica Nacional ndash Facultad Regional Haedo ndash Laboratorio de Simulacioacuten y Mecaacutenica Computacional

Ing Carlos Carlassare

Ing Miguel Bavaro

Ing Juan C Polidoro

Paacutegina 27 de 27

Page 22: Instalacin de un Super-Servidor de procesamiento paralelo … · 2010-01-30 · computadora mediante un intérprete de comandos, y también puede redirigir el tráfico de X para poder

--------------------------------------------------- MPI_Reduce (amppiece amppi 1 MPI_DOUBLE MPI_SUM 0 MPI_COMM_WORLD) --------------------------------------------------- if (me = = 0) printf(pi = 2515fn pi) --------------------------------------------------- MPI_Finalize() return 0 FIN DEL PROGRAMA

Paacutegina 22 de 27

42 Compilar el programa utilizando el comando ldquompiccrdquo Como resultado se

generaraacute un archivo binario ejecutable llamado ldquoPirdquo

Paacutegina 23 de 27

43 Para ejecutar el programa ldquoPirdquo en forma local solo basta con tipear

ldquoroot192168131~ mpirun -np 2 Pirdquo el nuacutemero 2 denota la cantidad de procesos que se utilizaraacuten cuando se ejecute el programa

Paacutegina 24 de 27

44 Para realizar la ejecucioacuten del programa ldquoPirdquoen nuestro superservidor

ahora deberemos realizar una copia del programa ldquoPirdquoen cada directorio compartido de nuestro ldquoNFSrdquo de cada nodo Como paso posterior ejecutaremos desde el servidor primario nuevamente nuestro programa tecleando ldquoroot192168131~ mpirun -np 12 Pirdquo Vemos que se ha aumentado la cantidad de procesos (slots) esto es debido a que ahora estaremos realizando la ejecucioacuten con mayor cantidad de procesadores (12 en total)

Paacutegina 25 de 27

45 Para visualizar la cantidad de procesos utilizaremos el comando ldquoTOPrdquo Aquiacute veremos los datos de cada proceso paralelo ejecutado

Paacutegina 26 de 27

Fuentes consultadas y sitios de intereacutes

httpwwwdebianorg

httpwwwopen-mpiorg

httpwwwps3clusterumassdeduindexhtml

httpwwwphilchencom20070728how-to-enable-passwordless-authentication-with-ssh

6 Autores Alumnos de la Universidad Tecnoloacutegica Nacional ndash Facultad Regional Haedo ndash Laboratorio de Simulacioacuten y Mecaacutenica Computacional

Andreacutes Trapanotto

Antonio Sebastiaacuten Rodriacuteguez Capello

7 Agradecimientos Profesores de la Universidad Tecnoloacutegica Nacional ndash Facultad Regional Haedo ndash Laboratorio de Simulacioacuten y Mecaacutenica Computacional

Ing Carlos Carlassare

Ing Miguel Bavaro

Ing Juan C Polidoro

Paacutegina 27 de 27

Page 23: Instalacin de un Super-Servidor de procesamiento paralelo … · 2010-01-30 · computadora mediante un intérprete de comandos, y también puede redirigir el tráfico de X para poder

42 Compilar el programa utilizando el comando ldquompiccrdquo Como resultado se

generaraacute un archivo binario ejecutable llamado ldquoPirdquo

Paacutegina 23 de 27

43 Para ejecutar el programa ldquoPirdquo en forma local solo basta con tipear

ldquoroot192168131~ mpirun -np 2 Pirdquo el nuacutemero 2 denota la cantidad de procesos que se utilizaraacuten cuando se ejecute el programa

Paacutegina 24 de 27

44 Para realizar la ejecucioacuten del programa ldquoPirdquoen nuestro superservidor

ahora deberemos realizar una copia del programa ldquoPirdquoen cada directorio compartido de nuestro ldquoNFSrdquo de cada nodo Como paso posterior ejecutaremos desde el servidor primario nuevamente nuestro programa tecleando ldquoroot192168131~ mpirun -np 12 Pirdquo Vemos que se ha aumentado la cantidad de procesos (slots) esto es debido a que ahora estaremos realizando la ejecucioacuten con mayor cantidad de procesadores (12 en total)

Paacutegina 25 de 27

45 Para visualizar la cantidad de procesos utilizaremos el comando ldquoTOPrdquo Aquiacute veremos los datos de cada proceso paralelo ejecutado

Paacutegina 26 de 27

Fuentes consultadas y sitios de intereacutes

httpwwwdebianorg

httpwwwopen-mpiorg

httpwwwps3clusterumassdeduindexhtml

httpwwwphilchencom20070728how-to-enable-passwordless-authentication-with-ssh

6 Autores Alumnos de la Universidad Tecnoloacutegica Nacional ndash Facultad Regional Haedo ndash Laboratorio de Simulacioacuten y Mecaacutenica Computacional

Andreacutes Trapanotto

Antonio Sebastiaacuten Rodriacuteguez Capello

7 Agradecimientos Profesores de la Universidad Tecnoloacutegica Nacional ndash Facultad Regional Haedo ndash Laboratorio de Simulacioacuten y Mecaacutenica Computacional

Ing Carlos Carlassare

Ing Miguel Bavaro

Ing Juan C Polidoro

Paacutegina 27 de 27

Page 24: Instalacin de un Super-Servidor de procesamiento paralelo … · 2010-01-30 · computadora mediante un intérprete de comandos, y también puede redirigir el tráfico de X para poder

43 Para ejecutar el programa ldquoPirdquo en forma local solo basta con tipear

ldquoroot192168131~ mpirun -np 2 Pirdquo el nuacutemero 2 denota la cantidad de procesos que se utilizaraacuten cuando se ejecute el programa

Paacutegina 24 de 27

44 Para realizar la ejecucioacuten del programa ldquoPirdquoen nuestro superservidor

ahora deberemos realizar una copia del programa ldquoPirdquoen cada directorio compartido de nuestro ldquoNFSrdquo de cada nodo Como paso posterior ejecutaremos desde el servidor primario nuevamente nuestro programa tecleando ldquoroot192168131~ mpirun -np 12 Pirdquo Vemos que se ha aumentado la cantidad de procesos (slots) esto es debido a que ahora estaremos realizando la ejecucioacuten con mayor cantidad de procesadores (12 en total)

Paacutegina 25 de 27

45 Para visualizar la cantidad de procesos utilizaremos el comando ldquoTOPrdquo Aquiacute veremos los datos de cada proceso paralelo ejecutado

Paacutegina 26 de 27

Fuentes consultadas y sitios de intereacutes

httpwwwdebianorg

httpwwwopen-mpiorg

httpwwwps3clusterumassdeduindexhtml

httpwwwphilchencom20070728how-to-enable-passwordless-authentication-with-ssh

6 Autores Alumnos de la Universidad Tecnoloacutegica Nacional ndash Facultad Regional Haedo ndash Laboratorio de Simulacioacuten y Mecaacutenica Computacional

Andreacutes Trapanotto

Antonio Sebastiaacuten Rodriacuteguez Capello

7 Agradecimientos Profesores de la Universidad Tecnoloacutegica Nacional ndash Facultad Regional Haedo ndash Laboratorio de Simulacioacuten y Mecaacutenica Computacional

Ing Carlos Carlassare

Ing Miguel Bavaro

Ing Juan C Polidoro

Paacutegina 27 de 27

Page 25: Instalacin de un Super-Servidor de procesamiento paralelo … · 2010-01-30 · computadora mediante un intérprete de comandos, y también puede redirigir el tráfico de X para poder

44 Para realizar la ejecucioacuten del programa ldquoPirdquoen nuestro superservidor

ahora deberemos realizar una copia del programa ldquoPirdquoen cada directorio compartido de nuestro ldquoNFSrdquo de cada nodo Como paso posterior ejecutaremos desde el servidor primario nuevamente nuestro programa tecleando ldquoroot192168131~ mpirun -np 12 Pirdquo Vemos que se ha aumentado la cantidad de procesos (slots) esto es debido a que ahora estaremos realizando la ejecucioacuten con mayor cantidad de procesadores (12 en total)

Paacutegina 25 de 27

45 Para visualizar la cantidad de procesos utilizaremos el comando ldquoTOPrdquo Aquiacute veremos los datos de cada proceso paralelo ejecutado

Paacutegina 26 de 27

Fuentes consultadas y sitios de intereacutes

httpwwwdebianorg

httpwwwopen-mpiorg

httpwwwps3clusterumassdeduindexhtml

httpwwwphilchencom20070728how-to-enable-passwordless-authentication-with-ssh

6 Autores Alumnos de la Universidad Tecnoloacutegica Nacional ndash Facultad Regional Haedo ndash Laboratorio de Simulacioacuten y Mecaacutenica Computacional

Andreacutes Trapanotto

Antonio Sebastiaacuten Rodriacuteguez Capello

7 Agradecimientos Profesores de la Universidad Tecnoloacutegica Nacional ndash Facultad Regional Haedo ndash Laboratorio de Simulacioacuten y Mecaacutenica Computacional

Ing Carlos Carlassare

Ing Miguel Bavaro

Ing Juan C Polidoro

Paacutegina 27 de 27

Page 26: Instalacin de un Super-Servidor de procesamiento paralelo … · 2010-01-30 · computadora mediante un intérprete de comandos, y también puede redirigir el tráfico de X para poder

45 Para visualizar la cantidad de procesos utilizaremos el comando ldquoTOPrdquo Aquiacute veremos los datos de cada proceso paralelo ejecutado

Paacutegina 26 de 27

Fuentes consultadas y sitios de intereacutes

httpwwwdebianorg

httpwwwopen-mpiorg

httpwwwps3clusterumassdeduindexhtml

httpwwwphilchencom20070728how-to-enable-passwordless-authentication-with-ssh

6 Autores Alumnos de la Universidad Tecnoloacutegica Nacional ndash Facultad Regional Haedo ndash Laboratorio de Simulacioacuten y Mecaacutenica Computacional

Andreacutes Trapanotto

Antonio Sebastiaacuten Rodriacuteguez Capello

7 Agradecimientos Profesores de la Universidad Tecnoloacutegica Nacional ndash Facultad Regional Haedo ndash Laboratorio de Simulacioacuten y Mecaacutenica Computacional

Ing Carlos Carlassare

Ing Miguel Bavaro

Ing Juan C Polidoro

Paacutegina 27 de 27

Page 27: Instalacin de un Super-Servidor de procesamiento paralelo … · 2010-01-30 · computadora mediante un intérprete de comandos, y también puede redirigir el tráfico de X para poder

Fuentes consultadas y sitios de intereacutes

httpwwwdebianorg

httpwwwopen-mpiorg

httpwwwps3clusterumassdeduindexhtml

httpwwwphilchencom20070728how-to-enable-passwordless-authentication-with-ssh

6 Autores Alumnos de la Universidad Tecnoloacutegica Nacional ndash Facultad Regional Haedo ndash Laboratorio de Simulacioacuten y Mecaacutenica Computacional

Andreacutes Trapanotto

Antonio Sebastiaacuten Rodriacuteguez Capello

7 Agradecimientos Profesores de la Universidad Tecnoloacutegica Nacional ndash Facultad Regional Haedo ndash Laboratorio de Simulacioacuten y Mecaacutenica Computacional

Ing Carlos Carlassare

Ing Miguel Bavaro

Ing Juan C Polidoro

Paacutegina 27 de 27