Clúster de Consolas de PlayStation 3

Anuncio
Universidad de Carabobo
Facultad experimental de ciencia y tecnología
Departamento de Computación
INFORME DE PASANTIA
Clúster de Consolas de PlayStation 3
Tutor Académico:
Dr. Germán Larrazábal
Tutor Empresarial:
Dr. Germán Larrazábal
Pasante:
Juan Ernesto García Álvarez
CI: 18859052
Valencia, mayo de 2010
RESUMEN DE LAS ACTIVIDADES REALIZADAS
OBJETIVO
Armar un clúster de cuatro consolas de PlayStation 3 con un disponible ambiente de trabajo bajo
código cell, usando para este fin el CELL SDK disponible de IBM, con un front-end (PC común)
habilitado para control total del clúster y de cada nodo (o consola) en donde se pueda tener un
simulador para que al momento de programar bajo código cell, nos pueda indicar si hay errores y
cuales, con un ambiente grafico diseñado para dicho propósito
Para realizar la configuración e instalación del clúster se tuvo que hacer lo siguiente:
Etapa1.- Configuraciones básicas tanto al servidor como a cada nodo por igual
Etapa2.- Configuración del servidor para control del clúster
Etapa3.- Instalación de un entorno grafico en el servidor para programa bajo código cell
Etapa4.- Pruebas del clúster haciendo Benchmarks
Etapa5.- Compilación y ejecución de programas
A continuación se explica que se hizo en cada etapa.
ETAPA 1
Configuraciones básicas (Servidor y nodos por igual):
En esta etapa se explican procedimiento que conforman la base para poder desarrollar dicho
clúster esto se debe hacer y se hizo tanto en el servidor (front-end) como en cada uno de los nodos
por igual
Esta etapa se divide en ciertos puntos:
.- Formateo e Instalación del Sistema Operativo
.- Instalación de programas claves para el funcionamiento del clúster (mpi, ssh, nfs)
.- Configuración de cada máquina (nombres, permisos, etc.)
.- Instalación de librerías y ambiente de trabajo para código cell (CELL SDK)
Formateo e Instalación del Sistema Operativo
Ahora se explicaran los procedimientos realizados para la instalación del Sistema Operativo tanto
en el servidor como en los nodos
Servidor (Front-End):
.- Descargar la imagen del CD de Fedora Core 9 disponible para arquitecturas x86
.- Iniciar una instalación “limpia” de Fedora sin actualizaciones, en esta instalación se agregó al
igual que los nodos un usuario llamado “PlayStation” y la clave tanto del root como del usuario es
“fedora”
Nodo (Consola PlayStation): esto se debe hacer y se hizo en cada nodo o consola

Descargar la imagen ISO de Fedora Core 9 para PPC, y quemarla en un DVD.


Para hacer la descarga de Fedora 9 se utilizó el siguiente enlace
http://mirrors.fedoraproject.org/publiclist/Fedora/9/
Descargar la imagen personalizada de arranque http://www.ps3cluster.org/distros/ps3.zip

Descomprimir el archivo. (Esta carpeta llamada "PS3" debe contener la subcarpeta
"otheros" y el archivo TRANS.TBL).

Colocar esta carpeta en cualquier unidad flash USB vacía

Formateo de la consola
 Conectar un teclado USB
 Encender la consola
 Navegar a:
"System Settings/Format Utility/Format HD/Custom/"


Seleccionar "10gb for PS3"
Instalación de Other OS
 Reiniciar el Sistema
 Insertar la unidad USB FLASH que tiene la imagen de arranque
 Navegar a "System Settings/Install Other OS"



Esto cargara automáticamente la imagen de arranque.
En "/System Settings/Install other OS/Default Systems/" configurar como sistema
predeterminado 'Other OS'
o
Reiniciar la consola
Instalar Fedora 9: Se arranca automáticamente Linux. En el kboot del sistema, escribir:
"linux64 xdriver texto" = fbdev”, pulsar enter. (Lo que se está haciendo es establecer la
imagen de instalación de 64 bits, en lugar del predeterminado de 32 bits.) ahora Instalar el
sistema operativo con una memoria swap de 2GB, en este clúster a todos los nodos se les
agrego un usuario llamado “PlayStation” y la clave tanto del root como del usuario es
“fedora”
Cuando Linux Fedora arranque, esperamos ver 8 pingüinos. Esto indica que el sistema
operativo está utilizando todos los núcleos de su sistema.

Ahora se puede acceder al sistema Fedora desde la consola PS3.
Instalación de programas claves para el funcionamiento del clúster (mpi, ssh, nfs)
Esta instalación es igual tanto para las consolas PS3 como para el computador (Front-End)

Instalación de SSH: ssh se utiliza para las comunicaciones de red seguras en MPI.

Se usó el instalador yum para instalar primero el componente del servidor ssh.
Escribiendo "yum install openssh-server"

Una vez instalado, se necesita comenzar este proceso de servidor (sshd). Para
iniciar el servidor, escribir "start sshd yum"


Por último, se necesita instalar los componentes de cliente ssh escribiendo "yum
install openssh-clients". Este proceso debería terminar sin preguntar, y ssh debe
estar completamente instalado.

Prueba de la conexión: SSH requiere una contraseña entre los nodos de forma
predeterminada. Por lo tanto, cuando pida una contraseña de cada nodo indica una
conexión correcta. Para probar la conexión se escribe "ssh root@IPADDR" (donde
IPADDR = La dirección IP de ese nodo). Si aparece un mensaje para colocar la
contraseña indica una conexión con éxito.
MPI (Message Passing Interface)
MPI ("Message Passing Interface", Interfaz de Paso de Mensajes) es un estándar que
define la sintaxis y la semántica de las funciones contenidas en una biblioteca de paso de
mensajes diseñada para ser usada en programas que exploten la existencia de múltiples
procesadores.
El paso de mensajes es una técnica empleada en programación concurrente para aportar
sincronización entre procesos y permitir la exclusión mutua, de manera similar a como se
hace con los semáforos, monitores, etc.
Su principal característica es que no precisa de memoria compartida, por lo que es muy
importante en la programación de sistemas distribuidos.
Los elementos principales que intervienen en el paso de mensajes son el proceso que
envía, el que recibe y el mensaje.
Dependiendo de si el proceso que envía el mensaje espera a que el mensaje sea recibido,
se puede hablar de paso de mensajes síncrono o asíncrono. En el paso de mensajes
asíncrono, el proceso que envía, no espera a que el mensaje sea recibido, y continúa su
ejecución, siendo posible que vuelva a generar un nuevo mensaje y a enviarlo antes de
que se haya recibido el anterior. Por este motivo se suelen emplear buzones, en los que se
almacenan los mensajes a espera de que un proceso los reciba. Generalmente empleando
este sistema, el proceso que envía mensajes sólo se bloquea o para, cuando finaliza su
ejecución, o si el buzón está lleno. En el paso de mensajes síncrono, el proceso que envía
el mensaje espera a que un proceso lo reciba para continuar su ejecución. Por esto se
suele llamar a esta técnica encuentro, o rendezvous. Dentro del paso de mensajes
síncrono se engloba a la llamada a procedimiento remoto, muy popular en las arquitecturas
cliente/servidor.
La Interfaz de Paso de Mensajes (conocido ampliamente como MPI, siglas en inglés de
Message Passing Interface) es un protocolo de comunicación entre computadoras. Es el
estándar para la comunicación entre los nodos que ejecutan un programa en un sistema de
memoria distribuida. Las implementaciones en MPI consisten en un conjunto de bibliotecas
de rutinas que pueden ser utilizadas en programas escritos en los lenguajes de
programación C, C++, Fortran y Ada. La ventaja de MPI sobre otras bibliotecas de paso de
mensajes, es que los programas que utilizan la biblioteca son portables (dado que MPI ha
sido implementado para casi toda arquitectura de memoria distribuida), y rápidos, (porque
cada implementación de la biblioteca ha sido optimizada para el hardware en la cual se
ejecuta).


Para instalar el openmpi escribir "yum install gcc openmpi openmpi-devel openmpilibs"
NFS (Network File System)
Es el sistema Unix / Linux estándar para el intercambio de archivos de red. MPI
específicamente tiene que encontrar el programa que se ejecutan en el clúster en cada uno
de los nodos del clúster. NFS proporciona una ubicación publicada para cada sistema.

Para instalar NFS, escribir "yum install nfs-utils"
Configuración de cada máquina (nombres, permisos, etc.)
Los siguiente es colocarle un nombre a cada máquina, como el clúster se llama Rocinante, a cada
nodo se lo coloco, Rocinante1, Rocinante2, Rocinante3, Rocinante4, y al servidor RocinanteServer
En Fedora cambiar el nombre de una maquina se hace mediante el archivo /etc/sysconfig/network
allí se busca la línea “HOSTANME=” y al lado se coloca el nombre de la maquina

Configurar los nombres de las maquinas
Como estamos usando Fedora el archivo encargado de reconocer los nombres que le
ponemos a nuestras maquinas mediante los ips se encuentra en /etc/hosts, la manera de
configurar este archivo es muy simple, solo al final hay que colocar el ip de la maquina
seguido por el nombre de dicha máquina, en el caso del clúster que se armó se usaron los
siguientes ips con los siguientes nombres:
190.170.87.70 Rocinante1
190.170.87.71 Rocinante2
190.170.87.72 Rocinante3
190.170.87.73 Rocinante4
190.170.87.74 RocinanteServer
Esto hay que hacerlo tanto en la maquina servidor como en cada uno de los nodos del
clúster, en este caso para acceder a cada consola PlayStation y configurar los archivos se
usó ssh desde la maquina servidor

Configurar Permisos para NFS: esto se debe hacer solo en los nodos

Para configurar el NFS, se crea un archivo llamado “exports” en la carpeta “etc.”,
este un simple archivo de texto en donde se colocan los ip de las maquinas
antecedidos por la carpeta que se quiere que tengan acceso por medio de nfs a la
maquina presente, ejemplo “/ 190.187.70.87”

Para la configuración del clúster este archivo quedo de la siguiente forma en cada
nodo dándole acceso de lectura y escritura al servidor en la carpeta asignada:
/home/PlayStation/Documentos/Cluster RosinanteServer(rw, nohide)
Instalación de librerías y ambiente de trabajo para código cell (CELL SDK)
En cada Nodo y en el Servidor se realizó lo siguiente:

Descargar las siguientes imágenes de
http://www.ibm.com/developerworks/power/cell/downloads.html
.- CellSDK-Devel-Fedora_3.1.0.0.0.iso
.- CellSDK-Extra-Fedora_3.1.0.0.0.iso

Instalación de Paquetes necesarios usando yum
.- yum install glibc-devel.ppc64 rsync sed tcl wget

Instalación del instalador del SDK que se encuentra en CellSDK-DevelFedora_3.1.0.0.0.iso
.- rpm -ivh cell-install-3.1.0.0.0.noarch.rpm

Instalación del SDK usando el SDK script
.- /opt/cell/cellsdk --iso /tmp/cellsdkiso install
.- Leer y aceptar Licencias

Prevenir actualización de paquetes que puedan poner inestable el sistema
.- En /etc/yum.conf agregar exclude=blas blas-devel elfspe2 kernel lapack lapack-devel
libspe2 libspe2-debuginfo libspe2-devel oprofile oprofile-devel
ETAPA 2
Configuración del servidor para control del clúster

Configuración de Open-MPI: Open-MPI se configura mediante un archivo /etc/openmpidefault-hostfile. Si este archivo no se encuentra escribir "touch /etc/openmpi-defaulthostfile"
Es necesario editar este archivo añadiendo la dirección IP de cada nodo y el número de
'slots'. El número slots es el número de núcleos disponibles para procesar ejemplo
“190.187.70.72 slots=6”. Para la configuración del clúster este archivo quedo de la
siguiente manera.
Rocinante1 slots=6 max_slots=8
Rocinante2 slots=6 max_slots=8
Rocinante3 slots=6 max_slots=8
Rocinante4 slots=6 max_slots=8

Para poder ejecutar un programa en un clúster en paralelo con mpi, es necesario que dicho
programa se encuentre exactamente en el mismo lugar dentro de cada nodo y en el
servidor.
Para poder lograr que el usuario final, no tenga una tarea engorrosa, de cada ves que vaya
a ejecutar un programa tener que manualmente instalar el programa en cada nodo, y
sincronizar las carpetas, se creó un lugar específico para dicho propósito,
/home/PlayStation/Documentos/Clúster
En esta carpeta el usuario simplemente toma el programa y lo pega en cada uno de los
nodos en la misma carpeta, para hacer esto de manera sencilla, se usa el programa nfs
que se explicó anteriormente para pasar archivos en red, para automatizar el procesó se
agregaron las siguientes líneas en el archivo /etc/fstab
Rocinante1: /home/PlayStation/Documentos/Cluster /mnt/Nodo01 nfs
rsize=8192,wsize=8192,timeo=14,intr 0 0
Rocinante2: /home/PlayStation/Documentos/Cluster /mnt/Nodo02 nfs
rsize=8192,wsize=8192,timeo=14,intr 0 0
Rocinante3: /home/PlayStation/Documentos/Cluster /mnt/Nodo03 nfs
rsize=8192,wsize=8192,timeo=14,intr 0 0
Rocinante4: /home/PlayStation/Documentos/Cluster /mnt/Nodo04 nfs
rsize=8192,wsize=8192,timeo=14,intr 0 0
Se hizo un enlace simbólico de cada punto de montaje en el escritorio
De manera que el usuario cuando entre escriba como root en la consola “mount –a” y ya
pueda tener acceso a dicha carpeta en cada nodo mediante el escritorio, y así copiar sus
programas en cada nodo para poder ejecutarlos

El último paso pero no el menos importante, es configurar el ssh para que funcione sin
clave ya que así el openmpi podrá conectarse satisfactoriamente
Para esto se siguió el siguiente procedimiento:
 Desde el servidor escribir en la consola “ssh-keygen –t dsa”, y presionar enter en
todas las preguntas sin escribir nada, de esta forma estamos creando la llave en la
dirección por defecto y no le estamos creando una frase de seguridad
 Luego escribir en el servidor como usuario PlayStation:
scp ~/.ssh/id_dsa.pub PlayStation@Rocinante1:.ssh/authorized_key
scp ~/.ssh/id_dsa.pub PlayStation@Rocinante2:.ssh/authorized_key
scp ~/.ssh/id_dsa.pub PlayStation@Rocinante3:.ssh/authorized_key
scp ~/.ssh/id_dsa.pub PlayStation@Rocinante4:.ssh/authorized_key


Colocar la contraseña del usuario cuando lo indique
Luego de realizar las configuraciones se probó el clúster con el hola mpi, para asegurarse
de que todo estaba funcionado bien
ETAPA 3
Instalación de un entorno grafico en el servidor para programa bajo código cell

Instalación de la versión IBM de java usando yum
 yum install ibm-java2-i386-jre

Configurar el ambiente para instalar la nueva versión de java
 agregar en HOME/.bash_profile lo siguiente
PATH=$HOME/bin:/opt/java/jdk1.5.0_08/jre/bin: $PATH

Instalación del Eclipse
 yum install cellide

Instalación del simulador
 Descargar el simulador de www.alphaworks.ibm.com/tech/cellsystemsim/download
 antes de instalarlo, para evitar errores Instalar el sysroot_image
Para información acerca de cómo correr el simulador y usar el eclipse, ibm nos da una guía
completa en la siguiente página
http://public.dhe.ibm.com/software/dw/cell/IDE_Users_Guide_v3.1.pdf
ETAPA 4
Pruebas del clúster haciendo Benchmarks
Para hacer pruebas formales del clúster se realizaron benchmark de mpi, midiendo la capacidad de
comunicación entre procesos en el clúster
El benchmark realizado fue skampi (http://liinwww.ira.uka.de/~skampi/). SKaMPI es un benchmark para
implementación de mpi. Los benchmarks que incluye son los siguientes:





point-to-point communication
collective communications
derived datatypes
one-sided communication
MPI IO
Los benchmarks que se hicieron son los siguientes:
# SKaMPI Version 5.0.4 rev. 355
# Started at Wed Aug 18 16:12:36 2010
# begin result "Pingpong_Send_Recv"
count= 1
4 969.3
8.8
16 925.4 950.0
count= 2
8 904.3
13.1
16 848.7 901.1
count= 3
12 903.5
14.8
16 868.0 889.2
count= 4
16 922.4
11.3
16 866.0 910.4
count= 6
24 943.7
9.4
16 911.7 929.8
count= 8
32 900.5
20.2
16 866.8 895.6
count= 11
44 944.1
7.9
16 878.5 935.5
count= 16
64 893.8
12.9
16 841.3 893.4
count= 23
92 932.9
11.3
8 876.2 920.5
count= 32
128 958.1
8.2
16 943.1 925.7
count= 45
180 946.8
12.8
16 876.6 938.6
count= 64
256 887.1
10.1
16 844.9 887.1
count= 91
364 887.5
5.8
8 843.2 875.0
count= 128
512 913.6
10.5
16 874.2 913.6
count= 181
724 994.0
7.9
16 946.7 982.6
count= 256 1024 1034.4
12.7
16 969.5 1031.2
count= 362 1448 1379.0
12.3
8 1379.0 1038.8
count= 512 2048 1421.0
3.4
8 1421.0 1066.3
count= 724 2896 1715.4
11.1
16 1647.9 1715.4
count= 1024 4096 1780.9
23.5
16 1696.9 1763.9
count= 1448 5792 2216.3
43.2
8 2091.2 2170.8
count= 2048 8192 2411.1
27.1
8 2272.8 2388.8
count= 2896 11584 3005.5
30.2
8 2867.5 2996.4
count= 4096 16384 3507.8
16.5
16 3271.8 3507.8
# end result "Pingpong_Send_Recv"
# duration = 0.60 sec
# begin result "processor names measurement"
#P[0] # rank
#P[1] # rank
#P[2] # rank
#P[3] # rank
#P[4] # rank
#P[5] # rank
#P[6] # rank
#P[7] # rank
#P[8] # rank
#P[9] # rank
#P[10] # rank
#P[11] # rank
0: Rocinante2
1: Rocinante2
2: Rocinante2
3: Rocinante2
4: Rocinante2
5: Rocinante2
6: Rocinante4
7: Rocinante4
8: Rocinante4
9: Rocinante4
10: Rocinante4
11: Rocinante4
#P[12] # rank
#P[13] # rank
#P[14] # rank
#P[15] # rank
#P[16] # rank
#P[17] # rank
#P[18] # rank
#P[19] # rank
#P[20] # rank
#P[21] # rank
#P[22] # rank
#P[23] # rank
12: Rocinante1
13: Rocinante1
14: Rocinante1
15: Rocinante1
16: Rocinante1
17: Rocinante1
18: Rocinante3
19: Rocinante3
20: Rocinante3
21: Rocinante3
22: Rocinante3
23: Rocinante3
# end result "processor names measurement"
# duration = 0.02 sec
# begin result "MPI_Bcast-procs-short"
procs= 2
procs= 3
procs= 4
procs= 5
procs= 6
procs= 7
procs= 8
procs= 9
procs= 10
procs= 11
procs= 12
procs= 13
procs= 14
procs= 15
procs= 16
procs= 17
procs= 18
procs= 19
procs= 20
procs= 21
procs= 22
procs= 23
procs= 24
1024
40.7
1.5
34
12.9
40.7
1024
44.6
1.4
34
19.1
43.6
40.5
1024 9326.8 2180.7
34
20.2 988.7 4725.0 8641.2
1024 19360.6 2182.8
35
23.1 3846.0 2745.7 14693.2 11695.1
1024 24977.6 2017.0
34
24.4 4521.1 9134.5 12973.0 12135.6 15011.1
1024 22739.8 2036.6
33
28.8 1217.9 5167.5 9098.5 8919.5 10848.1 11826.7
1024 28615.9 1862.3
34
29.7 4223.3 3606.8 12224.5 9087.9 19957.3 16608.7 20085.7
1024 29126.6 1416.2
32 106.8 1528.9 985.0 17793.1 5441.1 18035.4 10119.0 17030.9 11680.7
1024 28913.0 1517.9
34 108.7 836.4 4339.1 11823.8 6048.8 15092.6 13516.0 21054.5 798.5 6907.1
1024 33141.4 1212.6
34 120.0 6313.3 2874.5 17752.5 10539.8 20730.4 12182.7 19825.2 6625.3 17067.5 12874.9
1024 38451.2 2077.4
34 112.1 2980.3 3352.1 13703.7 7149.1 22418.1 8884.6 24912.4 5892.3 17665.6 10544.0 30898.0
1024 40289.7 2280.1
34 119.0 2005.2 3382.1 19351.4 3872.6 14915.6 12724.0 26611.3 5389.8 7930.0 11347.1 35975.8 7469.3
1024 37418.2 1896.3
34 116.0 1693.7 3776.5 9451.9 8868.8 12470.1 12414.6 19390.0 1884.0 12244.3 13867.7 29263.2 12571.1 18763.4
1024 33643.2 1804.8
34 112.5 124.0 146.1 7395.8 2450.1 6538.0 14078.8 15843.2 1325.6 4023.8 11863.9 20615.7 18966.9 12874.2 14504.5
1024 37880.0 1219.0
32 114.9 1772.0 3133.1 9026.8 2894.5 7019.6 6892.4 23694.6 2239.9 9883.7 9752.4 23982.1 14080.4 24490.7 12060.4 28650.1
1024 40983.0 900.3
34 156.3 355.1 1009.6 1766.2 3007.4 6374.3 6508.8 7092.4 9125.2 13679.3 14531.4 15289.6 16621.4 21164.2 26056.2 29979.1
1024 36824.6 1606.9
34 154.7 170.5 319.8 370.6 943.8 2524.2 4546.5 4881.3 7202.3 7379.1 12595.5 17988.5 19118.3 20254.5 21292.4 23682.0
1024 40004.2 1418.0
33 149.9 263.6 960.5 1401.6 4107.0 4985.4 5846.1 6986.8 9709.9 10973.0 12165.4 17755.9 20816.4 27173.0 27722.2 29249.4
1024 43557.7 1326.7
33 153.4 1668.1 3094.2 4469.7 5290.0 8806.5 14189.9 14192.8 15428.9 16556.3 17420.8 19370.0 22640.2 23379.6 27632.3 29366.2
1024 42520.5 2195.9
35 156.6 1540.0 2303.1 5560.0 5737.6 6969.5 10351.0 11241.8 16290.4 16671.9 18958.1 19209.5 22715.2 26793.0 29547.5 32047.2
1024 44123.2 1468.0
34 159.2 321.8 829.7 5149.1 5328.4 8370.6 9753.8 14714.6 14959.6 18871.4 24033.2 26666.7 26783.0 31147.8 31588.0 34720.9
1024 45122.1 2331.8
33 157.6 3811.2 5299.4 7718.8 9368.8 9379.2 12194.7 15695.9 18034.6 19801.8 23646.6 25327.6 28399.8 30386.4 32008.5 32932.5
1024 43102.3 1580.4
33 157.1 2064.9 2783.1 2794.2 4769.8 5433.8 10284.9 14777.3 16507.6 17757.7 23083.1 23751.8 25437.2 29316.7 29417.6 33336.8
# end result "MPI_Bcast-procs-short"
# duration = 105.07 sec
# begin result "MPI_Bcast-procs-long"
procs= 2 262144 37204.8 1150.2
procs= 3 262144 38904.9 1339.6
procs= 4 262144 41100.2 290.1
procs= 5 262144 57451.9 887.8
procs= 6 262144 59365.5 922.2
procs= 7 262144 64757.2 878.3
procs= 8 262144 77827.2 1206.5
procs= 9 262144 71681.2 1305.1
procs= 10 262144 70928.8 953.0
procs= 11 262144 74074.8 897.2
procs= 12 262144 84963.2 881.0
procs= 13 262144 101791.5 955.4
procs= 14 262144 99085.6 982.1
procs= 15 262144 114863.1 1740.6
procs= 16 262144 110083.8 1752.5
procs= 17 262144 105927.4 1849.3
procs= 18 262144 116270.3 1294.5
procs= 19 262144 114571.7 1718.2
procs= 20 262144 109798.2 1049.9
procs= 21 262144 109145.4 1673.6
procs= 22 262144 111767.4 1771.1
procs= 23 262144 111085.3 1083.2
procs= 24 262144 112235.4 1353.9
33 35984.8 23643.7
35 1755.2 33301.4 34781.7
25 40631.4 30626.3 25324.4 25453.7
39 996.8 45905.2 47613.1 34593.9 36562.7
39 50615.2 45758.8 46070.3 36847.6 34408.0 29818.9
32 1075.7 54825.0 54572.6 31421.3 42771.1 49508.1 41806.8
39 44142.7 53873.2 56689.6 67288.0 66182.4 53477.4 53150.8 47350.4
30 1697.9 45802.5 41689.2 59627.9 66630.3 55857.5 50461.8 41455.3 42704.1
32 30370.3 38117.4 38506.0 60948.3 58653.8 55756.6 62153.8 47078.9 50611.4 35189.0
32 994.8 42808.8 37500.3 54203.9 60497.4 59757.3 57270.8 48484.5 57876.8 45504.9 50688.2
16 70071.4 42940.1 40226.3 77188.1 67636.3 61752.5 71290.9 66069.1 65364.7 42782.1 44860.8 69676.6
24 997.6 47341.2 48659.0 85104.9 84707.8 68969.9 76444.8 79687.9 79729.6 47729.7 44900.8 93490.0 75356.2
14 46268.7 46572.4 44689.9 78686.3 79403.5 67779.9 73039.1 76910.5 82139.4 55112.4 52793.2 94852.1 77101.1 43169.4
32 3864.2 64336.0 71330.0 89224.8 91532.3 94018.3 92697.2 91456.1 87340.5 74767.9 80077.0 98489.6 82393.8 67935.4 67117.0
32 77925.6 53856.7 66011.6 88555.5 86087.5 79499.8 81606.8 88797.2 85169.2 60029.7 75935.7 88137.4 86026.9 62950.6 61140.4
32 2091.8 51818.4 52550.1 57397.6 58123.9 64576.1 66690.3 75514.1 79205.7 80341.2 83835.6 86034.5 86057.5 86104.7 86373.9
24 44791.3 47605.4 52157.0 60980.8 62531.2 68534.9 70714.6 78259.8 81099.0 86034.4 87618.5 87755.5 88611.2 89187.4 92287.0
24 997.3 42946.3 51702.4 71061.3 73595.8 81526.6 81787.3 83339.9 90662.8 93247.3 96041.4 96108.9 97506.7 100113.9 100429.8
33 39300.3 42335.0 67975.5 71575.8 73535.7 75660.4 79314.5 84027.1 85585.4 87367.6 90133.0 90847.1 96153.1 98527.4 98601.5
16 1058.7 41886.5 47811.8 70266.4 70446.6 73902.9 75223.7 76156.6 82452.2 82616.2 84954.0 86885.7 90065.2 101748.6 102050.4
32 42903.1 44586.3 64984.8 65557.5 66004.8 69322.8 70093.9 74599.0 77147.5 78843.4 80032.4 88302.5 90757.6 93967.4 94027.8
16 1476.6 47841.1 61393.2 70860.8 72889.6 75204.0 76238.6 80072.9 81170.2 81293.8 84418.0 85201.8 93388.5 98329.5 100143.8
24 49597.9 50195.7 73999.6 74824.0 77649.8 80200.6 81889.7 84140.9 84578.9 87124.4 87665.9 88318.2 89996.6 91106.2 97997.0
# end result "MPI_Bcast-procs-long"
# duration = 148.02 sec
77272.8
88280.2
94889.9
101491.3
104961.3
104306.0
98138.4
103468.2
99357.7
ETAPA 5
Compilación y ejecución de programas
Para poder correr un programa en el clúster se deben seguir los siguientes pasos:
- Montar las Carpetas de los nodos en el servidor
- Compilación del programa
- Copiar el ejecutable del programa junto con sus librerías en cada nodo
- Correr el programa
- Montar las carpetas
Para poder acceder a las carpetas en el escritorio satisfactoriamente es necesario como root correr
en la consola "mount -a"
- Compilación del programa:
Para compilar el programa se debe tener en cuenta que la arquitectura en donde se va a ejecutar
el programa es la arquitectura del PlayStation, por lo que esto nos lleva a compilar el programa en
dicha arquitectura es decir es necesario copiar los archivos en cualquiera de los nodos del
PlayStation, luego acceder a él, por medio de la consola con ssh, ejemplo ssh root@Rocinante1,
luego navegar a la carpeta en donde se copiaron los archivos a compilar en este caso si se
copiaron en las carpetas que están en el escritorio, navegar: cd
/home/PlayStation/Documentos/Cluster, luego allí meterse en la carpeta del programa y compilarlo
usando mpicc, ejemplo mpicc NombredelEjecutable NombredelArchivo, al hacer esto se compilara
el programa usando openmpi, para comunicación en paralelo
- Copiar el ejecutable:
Cada nodo debe tener el programa para poder ejecutarlo satisfactoriamente en el clúster, si se
usaron las carpetas del escritorio, (que para eso se crearon) es muy sencillo, copiar el ejecutable
en cada nodo dejando exactamente los mismos nombres de carpetas y archivos y en exactamente
la misma ubicación, en las carpetas del escritorio hasta en el servidor
- Correr el programa:
Para correr el programa es necesario abrir la consola como root o el usuario configurado para
dicho propósito ("PlayStation"), y navegar hasta la carpeta en donde se encuentra el ejecutable en
el servidor, en este caso debería ser /home/PlayStation/Documentos/Cluster/ y allí correr el
programa usando el siguiente comando, "mpirun NombredelEjecutable"
CONCLUSION
La fase de ejecución del periodo de pasantías ha representado un complemento indispensable,
debido a que ha permitido aumentar la experiencia laboral, conocer el contexto de una empresa y
obtener una visión más amplia acerca de las actitudes que se debe tomar en una organización.
Todas las actividades anteriormente expuestas se han cumplido satisfactoriamente, por ello se
puede enfatizar que el proceso de pasantías ha sido provechoso al máximo, como por ejemplo la
institución cuya visión se ha cumplido un vez más, el alumno que ahora pasa a ser mano de obra
capacitada y de calidad, y la organización por haber obtenido los servicios y aportes del pasante.
BIBLIOGRAFIA Y REFERENCIA
http://www.ibm.com/developerworks/power/cell/
http://es.wikipedia.org/wiki/Cell
http://www.ps3cluster.umassd.edu/
http://moss.csc.ncsu.edu/~mueller/cluster/ps3/
http://www.netlib.org/utk/people/JackDongarra/PAPERS/scop3.pdf
http://en.wikipedia.org/wiki/PlayStation_3
http://support.suso.com/supki/SSH_Tutorial_for_Linux
http://www.linuxhelp.net/guides/nfs/
http://nfs.sourceforge.net/nfs-howto/
http://news.softpedia.com/news/Iptables-Basic-Guide-35969.shtml
Descargar