instalacin de un super-servidor de procesamiento paralelo … · 2010-01-30 · computadora...
TRANSCRIPT
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
--------------------------------------------------- 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
--------------------------------------------------- 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
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
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
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
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
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