Вы находитесь на странице: 1из 27

CAPTULO I

1.1 INTRODUCCIN
El objetivo de la presente investigacin la cual realizamos en el Instituto
Tecnolgico de Huatabampo con apoyo del M.C. Eleazar Ros Valdez, docente del
departamento de sistemas y computacin, es verificar si realmente un mtodo de
ordenamiento es ms veloz que otro en la solucin de un problema de ordenacin
dado.

Normalmente la ejecucin de estos algoritmos se hace de forma individual en una


sola computadora, esta vez trataremos de ponerlos a prueba en un ambiente
paralelo, es decir, en un cluster computacional, para ello se utilizara CentOS 6.3
que es una distribucin Linux como sistema operativo y RocksCluster 6.0, el cual
es un sistema que permite instalar, configurar y administrar un cluster.

En este documento se menciona software que se puede utilizar para generar un


ambiente cluster, as como los sistemas operativos que soportan dichos software.
Para la realizacin de la investigacin fue necesario recabar mucha informacin
acerca de software disponible para llevar a cabo esta tarea, utilizamos algunos
scripts y programas para la etapa de pruebas las cuales se mencionan de manera
detallada y comprensible.

Tambin se detalla el hardware que se utiliz para ensamblar el cluster en el cual


se ejecutaron los algoritmos de manera distribuida, es decir, una ejecucin
paralela.

1.2 UBICACIN

El presente proyecto fue realizado en el Laboratorio de Computo del Instituto


Tecnolgico de Huatabampo, avenida tecnolgico s/n colonia unin, Huat, Son.

Figura 1.1 Ubicacin del lugar donde se realizo en proyecto

5
1.3 SOFTWARE NECESARIO

Para la realizacin de este proyecto se eligi el sistema operativo CentOS versin


6.3 porque es un sistema muy estable y robusto lo cual permite eliminar errores de
compatibilidad de hardware haciendo de la creacin del cluster una tarea sencilla y
rpida.

Las razones por las cuales empleamos este sistema son las siguientes:

Fcil mantenimiento.
Idneo para el uso a largo plazo.
Entorno favorable para los usuarios.
Desarrollo activo.
Soporta todo el hardware y software que soporta Red Hat.
Es gratuito, muy estable, porque contiene paquetes que estn muy
probados de bugs.
Especial para servidores.

Como software para cluster escogimos rockscluster por ser una distribucin para
clusters de alto rendimiento, el cual facilita la configuracin de las computadoras
que fungirn el papel de nodos del cluster, debido a que la adicin de un nuevo
nodo se hace de manera automtica por medio de la red del cluster.

La instalacin de rockscluster puede ser modificada lo que hace que el cluster sea
ms personalizado en cuanto a la tarea que este vaya a desempear, esto por
medio de Rolls (paquetes de instalacin) como por ejemplo el roll de Ganglia el
cual nos ayudar a ver y a monitorear de manera grfica el rendimiento del cluster.
Adems de ser una de las distribuciones ms empleadas en el mbito de clusters,
por lo cual existe mucha documentacin que puede ser de ayuda en el desarrollo
de los mismos.

1.4 HARDWARE UTILIZADO

PC1
Procesador intel Pentium IV a 2.8 Ghz
Memoria ram 256 mb
Disco duro 40 Gb
Tarjeta de red integrada Fast Ethernet 10/100 mb/s
PC2
Procesador intel Pentium IV a 2.8 Ghz
Memoria ram 256 mb

6
Disco duro 40 Gb
Tarjeta de red integrada Fast Ethernet 10/100 mb/s
PC3
Procesador intel Pentium IV a 2.8 Ghz
Memoria ram 512 mb
Disco duro 40 Gb
Tarjeta de red integrada Fast Ethernet 10/100 mb/s
PC4
Procesador intel core2duo a 2.83 Ghz
Memoria ram 2 Gb
Disco duro 200 Gb
Tarjeta de red integrada Fast Ethernet 10/100 mb/s
Switch Baseline 2824 de 24 puertos

1.5 TOPOLOGA DEL CLUSTER

En la siguiente figura se muestra la topologa o forma de conexin en la que se


encuentran las computadoras entre s, es decir, la red LAN (Local Area Network)

Figura 1.2 topologa del cluster

7
CAPITULO ll ESTADO DEL ARTE

2.1 SOFTWARE PARA CLUSTER

2.1.1 ROCKS CLUSTER

Rocks es una distribucin para clusters Linux de cdigo abierto, que permite a los
usuarios finales crear fcilmente grupos computacionales, puntos finales de la red
y visualizacin de paredes de azulejos de visualizacin. Cientos de investigadores
de todo el mundo han utilizado Rocks cluster para implementar su propio cluster.
[1]

Versiones de rocks cluster

Rocks 1.0

Released: November, 2000


Kickstart files generated with 'sed'
eKV (ethernet Keyboard and Video) - monitor compute node installs over
the ethernet
FRONTEND's built with a kickstart file on a floppy
The kickstart file was generated by a web form
RedHat 6.2
Compute nodes downloaded packages via NFS

Rocks 2.0

Released: February, 2001


Kickstart files generated with 'sed' and 'cpp'
sed used for variable substitution
cpp used for module inclusion
RedHat 7.0
Compute nodes downloaded packages with HTTP

Rocks 2.0.1

Released: April, 2001

Rocks 2.1

Released: April, 2001

8
Rocks 2.1.1

Released: November, 2001

Rocks 2.1.2

Released: December, 2001

Rocks 2.2

Released: March, 2002

Rocks 2.2.1

Released: March, 2002

Rocks 2.3 (El Cap)

Released: November, 2002

Rocks 2.3.1 (Denail)

Released: February, 2003

Rocks 2.3.2 (Annapurna)

Released: April, 2003

Rocks 3.0.0 (Lhotse)

Released: September, 2003


"Rolls" are introduced

Rocks 3.1.0 (Matterhorn)

Released: December, 2003

Rocks 3.2.0 (Shasta)

Released: May, 2004

Rocks 3.3.0 (Makalu)

Released: October, 2004

9
Based on RedHat Enterprise Linux 3.0 rebuilt by the Rocks team from
freely-available source RPMS
kernel 2.4.x
SGE 5.3p6

Rocks 4.0.0 (Whitney)

Released: June, 2005


based on CentOS 4.0

Rocks 4.1 (Fuji)

Released: September, 2005


based on CentOS 4.2
kernel 2.6.x
SGE 6.0u6

Rocks 4.2 (Hallasan)

Released: August, 2006


based on CentOS 4.3
kernel 2.6.x
SGE 6.0u8
introduction of the Bio Roll and Restore Roll
Moved to graphical installer

Rocks 4.2.1 (Cydonia)

Released: September 2006


Maintenance release to 4.2
CentOS 4 update 4

Rocks 4.3 (Mars Hill)

Released: June 2007


CentOS 4 update 5
Initial release of Rocks command line and PXE-first boot order

Rocks 5.0 (V)

Released: April 2008


CentOS 5, update 1
Initial release of Xen support, fully-programmable partitioning, and flashing
BIOS on compute nodes using PXE

10
Rocks 5.1 (V.I)

Released: November 2008


CentOS 5, update 2
Initial release of virtual clusters support

Rocks 5.2 (Chimichanga)

Released: June 2009


CentOS 5, update 3
Initial release of Solaris support for client nodes and ability to assign
attributes to nodes

Rocks 5.3 (Rolled Tacos)

Released: December 2009


CentOS 5, update 4
Core software maintenance release

Rocks 5.4 (Maverick)

Released: November 2010


CentOS 5, update 5
Redesign of the Avalanche Installer (written in C, stage2.img files are now in
the peer-to-peer network, predictions, ability to group nodes during install)
Channel bonding and firewall settings controlled by the Rocks command line
Introduction of "Air Traffic Control"
"channeld" replaces "greceptor"
DNS resolution for multiple domains

Rocks 5.5/6.0 (mamba)

Released: may 2012

Rocks 6.1 (emerald boa)

Released: October 2012


Two-factor authentication is supported using google authenticator
Internal ssh authentication is now host-based
A frontend can be installed using a single partition
ZFS on Linux roll now available. Based upon the ZFS on Linux rc11. Note
ZFS on linux is a source roll.
Support GPT partition tables for drives > 2TB
Improved IPMI documentation

11
rocks create distro speed improved by removing redundant checksum
calculation
Infiniband (Mellanox) configured in the HPC roll with subnet manager
running on frontend
SGE roll updates to GE-2011p1
Condor roll updated to 7.8.5 [2]

2.1.2 OPEN MOSIX

OpenMosix es un sistema de cluster para Linux que permite a varias


computadoras actuar como un nico sistema multiprocesador (denominado en
ingls SSI). Esto permite que no tengamos que reprogramar nuestras aplicaciones
para que aprovechen el cluster. Los procesos no saben en qu nodo del cluster se
ejecutan, y es el propio openMosix el responsable de "engaarlos", y redirigir las
llamadas al sistema al nodo del cluster en el que se lanz el proceso. OpenMosix
implementa un algoritmo balanceador que permite repartir de forma ptima la
carga, si est el cluster bien calibrado.

Se compone de un parche al kernel, responsable de las migraciones transparentes


de procesos, y unas herramientas de rea de usuario, necesarias para calibrar y
administrar el cluster.

openMosix puede migrar cualquier proceso mientras que no haga uso de los
segmentos de memoria compartida. Segn la calibracin, migrarn procesos ms
ligeros, o ms pesados.

Actualmente el desarrollo de openMosix est parado. Sigue funcionando bien para


los kernels 2.4; y para el kernel 2.6 an no funcionaba completamente.

Sin embargo, por su estabilidad y robustez an hay gente que lo emplea, y sigue
instalndolo. El nico problema real es con las computadoras que tienen hardware
no soportado por el kernel 2.4. [3]

12
Caractersticas:

No se requieren paquetes extra


No son necesarias las modicaciones en el cdigo
Es dependiente del kernel
No migra todos los procesos siempre, tiene limitaciones de funcionamiento
Problemas con memoria compartida

2.1.3 PELICANHPC

PelicanHPC es una distribucin de GNU / Linux que se ejecuta como una imagen
de arranque USB " live CD " o (tambin se puede arrancar desde una particin del
disco duro, o puede ser utilizado como un sistema operativo virtualizado). Si el
archivo de imagen ISO se pone en un CD o USB, a continuacin, se puede utilizar
para arrancar el ordenador. El equipo en el que se inicia PelicanHPC se conoce
como el "nodo FRONTEND. Es el equipo con el que interacta el usuario. Una
vez PelicanHPC est en marcha, un guin - " pelican_setup " - se puede ejecutar.
Este script configura el nodo FRONTEND como servidor netboot . Despus de
esto se ha hecho, otros equipos pueden arrancar copias de PelicanHPC travs de
la red. Estos otros ordenadores se denominan " nodos de cmputo". PelicanHPC
configura el grupo formado por el nodo FRONTEND y los nodos de cmputo para
que la computacin paralela basada en MPI se pueda hacer.

PelicanHPC se hace usando Debian GNU / Linux como base, a travs del sistema
Debian Live. Est hecho mediante la ejecucin de una nica secuencia de
comandos con el comando "sh make_pelican - v *". Versiones personalizadas de
PelicanHPC, por ejemplo, que contiene paquetes adicionales, pueden fcilmente
hacerse modificando el guin make_pelican. El guin make_pelican y los paquetes
necesarios se proporcionan en PelicanHPC, para que pueda construir una imagen
personalizada con las imgenes proporcionadas. Tambin puede ejecutar
make_pelican de cualquier distro GNU / Linux si instala live-build y algunos otros
paquetes.

Caractersticas

El nodo FRONTEND puede ser un ordenador de verdad fue iniciada utilizando un


CD o un dispositivo USB, o en una mquina virtual que se inicia con el archivo de
imagen de CD. Con esta ltima opcin, PelicanHPC se puede utilizar al mismo

13
tiempo que el entorno de trabajo normal, que puede ser cualquiera de los sistemas
operativos comunes.

Los nodos de cmputo son normalmente los equipos reales, para obtener el
mximo rendimiento, pero tambin pueden ser virtuales.

Soporta la computacin paralela basada en MPI utilizando Fortran (77, 90), C, C+


+, GNU Octave y Python.

Ofrece la aplicacin Abrir MPI de MPI

El cluster puede ser redimensionado a agregar o quitar nodos con el comando "
pelican_restarthpc.

Fcilmente extensible para agregar paquetes. Tambin fcilmente modificable, ya


que se crea la imagen PelicanHPC CD / USB utilizando un nico guin que se
basa en el sistema Debian Live. Por esta razn, la versin distribuida es bastante
bsica y ligera.
Contiene software de ejemplo: HPL Linpack (ahora en versin 2.0) de referencia y
extensos ejemplos que utilizan GNU Octave. Tambin tiene mpi4py.

Limitaciones y exigencias

Los nodos de cmputo que se deben iniciar por la red. Esta es una opcin que
ofrece todos los dispositivos de red modernos suministrados con las placas base,
pero a menudo se debe habilitar en la configuracin del BIOS. Permitirle que, y
darle ms prioridad que el arranque desde el disco duro u otras fuentes. Si usted
tiene una tarjeta de red que no va a hacer el arranque en red, es posible evitar
esto usando rom -o- matic. Otra cosa a tener en cuenta es que el FRONTEND
PelicanHPC funciona como un servidor DHCP. No debe utilizarlo en una red
abierta, o te vas a causar conflictos dhcp. Esto te llevar a un mundo de
problemas con los administradores de red. Adems, sus nodos de cmputo no se
iniciarn correctamente.

Un cluster PelicanHPC est diseado para ser utilizado por una sola persona -
slo hay un usuario, con el "usuario" nombre de usuario.

Versiones publicadas son para CPUs de 64 bits solamente (Opteron, Turion, Core
2, etc.) make_pelican puede ser fcilmente utilizado para hacer una versin de 32
bits, si es necesario.

14
La pgina web PelicanHPC enumera algunas otras distribuciones similares que
pueden ser ms apropiados para determinados usos.

PelicanHPC es una imagen de CD producido mediante la ejecucin de un script


(vea a continuacin). El guin tiene licencia GPL v3. La imagen resultante CD
contiene software de la distribucin Debian GNU / Linux, y varias otras fuentes, lo
que est sujeto a las licencias escogidas por los autores de ese software.

PelicanHPC CD se distribuye con la esperanza de que ser til, pero SIN


NINGUNA GARANTA, incluso sin la garanta implcita de COMERCIALIZACIN o
IDONEIDAD PARA UN PROPSITO PARTICULAR [4]

2.1.4 ATIPA

Atipa ha logrado tanto con el lanzamiento de la Phoenix Cluster Management


Suite. Herramienta de gestin de sistemas, tales como aadir nuevos nodos al
cluster con slo conectarlos a la red, encenderlo, y el nodo principal se configurar
automticamente el nuevo nodo y agregarlo en el fondo de recursos.
En un entorno de clculo equilibrado, las mejoras de hardware y de software han
contribuido igualmente al aumento de rendimiento de la aplicacin. Lo que ms
importa es el tiempo ms corto para una solucin. El cluster Atipa est diseado
para proporcionar una manera integral y comparativo de lograr el rendimiento del
cluster. Ingenieros Atipa utilizan programas de benchmarking reconocidos para
asegurar el funcionamiento del cluster. Estas herramientas analticas miden
diferencias debidas a los cambios de hardware o software en el mismo
cluster. Hemos descubierto que la ejecucin con xito todas las pruebas de una
garanta de que el cluster est configurado correctamente. [5]

Caractersticas:

Completamente adaptable a sus necesidades exactas, incluyendo la


instalacin de bibliotecas complejas y su pre-requisitos.
Configuracin, sintonizacin y optimizacin del entorno de funcionamiento
idntico en todos los nodos.
La administracin y gestin del Sistema suite inclua, Phoenix suite de
gestin de clusters de Atipa.
Integracin de los ganglios para el monitoreo muertos-cluster simple.
Soporte completo IPMI para un fcil y potente sistema de administracin de
la salud.
Consultora, transferencia de conocimientos y asistencia tcnica durante
todo el ciclo de vida de la agrupacin.

15
2.1.5 SCYLD CLUSTERWARE

Scyld de cluster es una solucin completa de administracin de clusteres HPC que


es escalable, flexible y fcil de usar. Es totalmente compatible con RedHat
Enterprise Linux y CentOS. Ofertas Scyld Clusterware. [6]

Caractersticas:

Aprovisionamiento Super-rpido de cluster


Sistema nico de Arquitectura de imagen que garantiza la coherencia de la
configuracin
El apoyo a las nubes internas y explosin de nubes
Arquitectura basada en servicios web para la gestin de flujo de trabajo y la
presentacin desde cualquier lugar
Calificacin y optimizacin de hardware pingino para una experiencia de
usuario ptima
La certificacin como arquitectura de referencia Intel Cluster Ready para
clusters SSI
2.1.6 OSCAR

Cluster OSCAR. (Open Source Cluster Application Resources) es una coleccin


de software de cdigo abierto para crear un cluster sobre Linux desarrollada por el
Grupo de Clusters Abiertos (OCG Open Cluster Group).

Los computadores que conforman el cluster se denominan nodos, existen dos


tipos de nodos: un nodo principal (nodo servidor) y varios nodos de cmputo
(nodos clientes).

El nodo principal provee respuestas a los pedidos de servicio y asigna las tareas
apropiadas a cada nodo cliente. Los nodos clientes se dedican a realizar tareas de
cmputo, poseen hardware homogneo y disponen de una copia completa
del sistema operativo y de otros programas. Los nodos se comunican a travs de
una red Ethernet que no est expuesta al mundo exterior; el nodo servidor posee
dos interfaces de red: una interfaz de red conectada al mundo externo y una
interfaz conectada a la red interna.

16
OSCAR se instala sobre un computador con una distribucin Linux previamente,
realiza la instalacin y/o configuracin de los paquetes necesarios para el cluster
de forma automtica. [7]

2.2 LENGUAJES DE PROGRAMACIN PARALELA

La computacin paralela es una forma de cmputo en la que


muchas instrucciones se ejecutan simultneamente, operando sobre el principio
de que problemas grandes, a menudo se pueden dividir en unos ms pequeos,
que luego son resueltos simultneamente (en paralelo). Hay varias formas
diferentes de computacin paralela: paralelismo a nivel de bit, paralelismo a nivel
de instruccin, paralelismo de datos y paralelismo de tareas. El paralelismo se ha
empleado durante muchos aos, sobre todo en la computacin de altas
prestaciones, pero el inters en ella ha crecido ltimamente debido a las
limitaciones fsicas que impiden el aumento de la frecuencia. Como el consumo de
energa y por consiguiente la generacin de calor de las computadoras
constituye una preocupacin en los ltimos aos, la computacin en paralelo se ha
convertido en el paradigma dominante en la arquitectura de computadores,
principalmente en forma de procesadores multincleo. [8]

2.2.1 MPI

MPI (Message Passing Interface) es un Interfaz estandarizado para la realizacin


de aplicaciones paralelas basadas en paso de mensajes. El modelo de
programacin que subyace tras MPI es MIMD (Multiple Instruction streams,
Multiple Data streams) aunque se dan especiales facilidades para la utilizacin del
modelo SPMD (Single Program Multiple Data), un caso particular de MIMD en el
que todos los procesos ejecutan el mismo programa, aunque no necesariamente
la misma instruccin al mismo tiempo.

MPI es, como su nombre indica, un interfaz, lo que quiere decir que el estndar no
exige una determinada implementacin del mismo. Lo importante es dar al
programador una coleccin de funciones para que ste disee su aplicacin, sin
que tenga necesariamente que conocer el hardware concreto sobre el que se va a
ejecutar, ni la forma en la que se han implementado las funciones que emplea.

17
Figura 2.1 Ubicacin de MPI en el proceso de programacin de aplicaciones paralelas

MPI ha sido desarrollado por el MPI Forum, un grupo formado por investigadores
de universidades, laboratorios y empresas involucrados en la computacin de
altas prestaciones. Los objetivos fundamentales del MPI Forum son los siguientes:

Definir un entorno de programacin nico que garantice la portabilidad de


las aplicaciones paralelas.
Definir totalmente el interfaz de programacin, sin especificar cmo debe
ser la implementacin del mismo.
Ofrecer implementaciones de calidad, de dominio pblico, para favorecer la
extensin del estndar.
Convencer a los fabricantes de computadores paralelos para que ofrezcan
versiones de MPI optimizadas para sus computadoras (lo que ya han hecho
fabricantes como IBM y Silicon Graphics).

Los elementos bsicos de MPI son una definicin de un interfaz de programacin


independiente de lenguajes, ms una coleccin de bindings o concreciones de ese
interfaz para los lenguajes de programacin ms extendidos en la comunidad
usuaria de computadores paralelos: C y FORTRAN. [9]

2.2.2 OPENMP

OpenMP es una interfaz de programacin de aplicaciones (API) para la


programacin multiproceso de memoria compartida en mltiples plataformas.
Permite aadir concurrencia a los programas escritos en C, C++ y Fortran sobre la
base del modelo de ejecucin fork-join.

Est disponible en muchas arquitecturas, incluidas las plataformas de Unix y de


Microsoft Windows. Se compone de un conjunto de directivas de compilador,
rutinas de biblioteca, y variables de entorno que influyen el comportamiento en
tiempo de ejecucin.

Definido juntamente por un grupo de proveedores de hardware y de software


mayores, OpenMP es un modelo de programacin portable y escalable que
proporciona a los programadores una interfaz simple y flexible para el desarrollo

18
de aplicaciones paralelas para las plataformas que van desde las computadoras
de escritorio hasta las supercomputadoras. Una aplicacin construida con un
modelo de programacin paralela hbrido se puede ejecutar en un cluster de
computadoras utilizando ambos OpenMP y MPI, o ms transparentemente a
travs de las extensiones de OpenMP para los sistemas de memoria distribuida.
OpenMP se basa en el modelo fork-join, paradigma que proviene de los
sistemas Unix, donde una tarea muy pesada se divide en K hilos (fork) con menor
peso, para luego "recolectar" sus resultados al final y unirlos en un solo resultado
(join).

Cuando se incluye una directiva OpenMP esto implica que se incluye


una sincronizacin obligatoria en todo el bloque. Es decir, el bloque de cdigo se
marcar como paralelo y se lanzarn hilos segn las caractersticas que nos d la
directiva, y al final de ella habr una barrera para la sincronizacin de los
diferentes hilos (salvo que implcitamente se indique lo contrario con la
directiva nowait). Este tipo de ejecucin se denomina fork-join. [10]

2.3 SISTEMAS OPERATIVOS PARA CLUSTERS

2.3.1 HP-UX

Es la versin de Unix desarrollada y mantenida por Hewlett-Packard desde 1983,


ejecutable tpicamente sobre procesadores HP PA RISC y en sus ltimas
versiones sobre Intel Itanium (arquitectura Intel de 64 bits); a pesar de estar
basada ampliamente en System V incorpora importantes caractersticas BSD. En
la actualidad la ltima versin de este sistema operativo es la 11.23, tambin
conocido como 11iv2 (2003), aunque existen numerosas instalaciones de sistemas
ms antiguos, especialmente HP-UX 10.x (1995-97) o incluso 9.x. (1992-95).
Apartir de la versin 11.11 (2000) se usa un sistema de numeracin doble, as la
11.11 es tambin conocida como 11i, la 11.20 es 11iv1.5 y as sucesivamente. Est
previsto el lanzamiento de 11.31 (11iv3) a finales de 2006. [15]

2.3.2 AIX

Es un sistema operativo UNIX System V propietario de IBM. Inicialmente


significaba "Advanced IBM Unix" pero probablemente el nombre no fue aprobado
por el departamento legal y fue cambiado a "Advanced Interactive eXecutive"
AIX corre en los servidores IBM eServers pSeries, utilizando procesadores de la
familia IBM POWER de 32 y 64bits. [15]

2.3.3 WINDOWS SERVER 2008

19
Es el nombre del sistema operativo para servidores de Microsoft. Es el sucesor de
Windows Server 2003 puesto en libertad casi cinco aos antes. Al igual que
Windows Vista, Windows Server 2008 se basa en el ncleo Windows NT 6.0.

Desarrollo

Fue conocido como Windows Server "Longhorn" hasta el 16 de mayo de 2007,


cuando Bill Gates, el presidente de Microsoft anunci su ttulo oficial (Windows
Server 2008) durante su discurso de apertura en WinHEC. [15]

2.3.4 MAC OS X

Es la versin actual del sistema operativo Macintosh de Apple. Se basa en UNIX y


usa una interfaz grfica desarrollada por Apple llamada Aqua, que se inspira
libremente en la interfaz de Mac OS Classic. El gestor de ventanas X11,
caracterstico en la familia de sistemas Unix, y Java se usan solo para
compatibilidad con software no nativo de Mac.

MAC OS X V10.6 (SNOW LEOPARD):

Anunciada en una conferencia privada en la Worldwide Developers Conference


2008, esta nueva versin no incluye nuevas funciones, sino que est pensada
principalmente para aumentar la estabilidad y seguridad de Leopard. Incluye
soporte para el sistema de archivos ZFS, que permite utilizar hasta 16 TB de
disco. Tambin tendr soporte para Microsoft Exchange Server 2007 en Mail
(software), iCal y Adress Book (software). Mac OS X usa el protocolo Exchange
Web Services para tener acceso a Exchange Server 2007. [15]

2.3.5 SOLARIS

Solaris es un sistema operativo de tipo Unix desarrollado por Sun Microsystems


desde 1992 como sucesor de SunOS. Es un sistema certificado oficialmente como
versin de Unix. Funciona en arquitecturas SPARC y x86 para servidores y
estaciones de trabajo.

Aunque Solaris fue desarrollado como software privativo, la mayor parte de su


cdigo se ha liberado como proyecto de software libre denominado OpenSolaris.
Solaris es conocido por su escalabilidad, especialmente en sistemas SPARC, y
por ser origen de innovadoras tecnologas, como DTRace y ZFS. [15]

20
2.3.6 FREEBSD

Es un sistema operativo multiusuario, capaz de efectuar multitarea con


apropiacin y multiproceso en plataformas compatibles con mltiples
procesadores; el funcionamiento de FreeBSD est inspirado, como ya se dijo, en
la variante 4.4 BSD-Lite de UNIX. Aunque FreeBSD no puede ser propiamente
llamado UNIX, al no haber adquirido la debida licencia de The Open Group,
FreeBSD s est hecho para ser compatible con la norma POSIX, al igual que
varios otros sistemas "clones de UNIX". El sistema FreeBSD incluye el ncleo, la
estructura de ficheros del sistema, bibliotecas de la API de C, y algunas utileras
bsicas. La versin 6.1 [3] trajo importantes mejoras como mayor apoyo para
dispositivos Bluetooth y controladores para tarjetas de sonido y red.

La ltima versin estable es la 7.0 lanzada el 27 de febrero del ao 2008, que


incluye compatibilidad con el sistema de archivos ZFS de Sun y a la arquitectura
ARM, entre otras novedades.[15]

2.3.7 CENTOS

CentOS es una distribucin de Linux la cual fue compilada por voluntarios a partir
del cdigo liberado por Red Hat, en resumen, CentOS es un sistema basado en
Red Hat. A diferencia de las distribuciones de Linux ms conocidas como Debian,
Fedora o Ubuntu, este sistema es robusto, es decir, es un sistema por dems
estable y confiable lo que lo hace ideal para crear servidores especializados.

Este sistema es por mucho una de las mejores opciones debido a que su
desarrollo no fue enfocado a innovacin, sino a estabilidad eso aunado a sus
races de Red Hat dan seguridad y confianza, adems de contar con
documentacin y soporte masivos en la red.
Dicho lo anterior, CentOS es la distribucin ideal para la creacin de un cluster ya
que es uno de los sistemas Linux ms estables y robustos que se pueden
encontrar con una gran capacidad y confiabilidad para la gestin de redes y/o
servidores. [16]

21
CAPTULO III IMPLEMENTACIN

3.1 PRUEBAS

3.1.1 FUNCIONABILIDAD DEL CLUSTER

Antes de comenzar con la ejecucin de programas en el cluster veremos que


todas las computadoras se encuentran incluidas dentro de nuestro cluster para
ellos se agregaron tres computadoras. Al agregar los nodos (computadoras) al
cluster cada nodo recibe un nombre de forma automtica para poder identificarlas
en el cluster como se muestra en las siguientes imgenes:

Figura 3.2 Nodo 0

Figura 3.3 Nodo 1

Figura 3.4 Nodo 2

Como se puede observar en las imgenes cada una de los nodos reciben un
nombre el cual los identifica en el cluster recibiendo los nombres de compute-0-0,
compute-0-1, y compute-0-2 respectivamente.

Ahora desde el FRONTEND (servidor) accederemos a la lista de nodos mediante


el comando rocks list host el cual nos mostrar una lista como la siguiente:

22
Figura 3.5 Nodos registrados en Rocks Cluster

Otra manera muy til para monitorear la conexin y correcto funcionamiento del
cluster es mediante el Roll llamado Ganglia, el cual muestra de manera grafica el
uso que se le da al cluster y el rendimiento de este, ahora bien este Roll nos
muestra que todos los nodos se encuentran conectados al cluster y en
funcionamiento solo a la espera de recibir la carga que les sea asignada y de esa
forma empezar a trabajar.

A continuacin se detalla una imagen tomada de Ganglia, para ver qu muestra la


grfica en sus datos.

Cantidad de trabajo
realizado

Hora en la que se
realizo el trabajo

Carga actual Carga mxima


del nodo del nodo

Figura 3.6 Descripcin de la grfica de ganglia

Las siguientes imgenes tomadas de Ganglia en el FRONTEND muestran que


todos los nodos estn en lnea y el trabajo o la carga de cada uno de ellos tanto en
grupo como de forma individual.

23
Figura 3.7 Grfica del Frontend en Ganglia

Figura 3.8 Grfica del nodo 2 en Ganglia

Figura 3.9 Grfica del nodo 1 en Ganglia

24
Figura 3.10 Grfica del nodo 0 en Ganglia

Figura 3.11 Grfica global del cluster

Como se puede apreciar en las imgenes anteriores el cluster ya esta ensamblado


y listo para nuestras pruebas.

25
Figura 3.12 Fotografa del cluster encendido y operando

3.1.2 CREACIN DEL USUARIO

Para que comenzar a realizar las pruebas pertinentes del cluster, se necesita crear
un usuario nuevo en el sistema, el cual se agrega de la forma acostumbrada en
todo sistema linux.

Para ello se utilizan los comandos acostumbrados que son:

adduser: con el cual crearemos el usuario "pruebas".


passwd: con el cual le se asigna una contrasea al usuario.

Esto se realiza dentro de una ventana de comandos, como es habitual en este tipo
de sistemas, como se muestra en la siguiente figura.

Figura 3.13 creacin del usuario

Despus de crear el usuario se utiliza el comando rocks sync confing, esto para
que los equipos se sincronicen con el equipo principal o frontend.

26
3.1.3 FUNCIONABILIDAD DE LA PROGRAMACIN PARALELA (MPI)

Antes de iniciar las pruebas es necesario el usuario creado anteriormente, luego


se procede a crear un archivo de texto el cual es nombrado prueba.c. Utilizamos
en siguiente comando, touch prueba.c y luego lo editamos con el comando nano y
luego se escribe el cdigo de prueba que se muestra en la siguiente figura:

Figura 3.14 Cdigo de prueba [17]

Y un script sencillo el cual indica al servidor en cuales nodos se ejecutaran los


procesos que sern ejecutados llamado nodos el cual contiene el siguiente
contenido:

Figura 3.15 script de los equipos que se utilizaran

Este script tan sencillo, es muy til para la ejecucin de programas de carcter
paralelo en rocks cluster, en esta ocasin lo nombraremos como nodos.txt para
su uso posterior en la ejecucin de nuestra prueba.

27
Luego de editar y el cdigo y el archivo de configuracin para los nodos a utilizar,
se procede a compilar el proyecto, para ello utilizaremos el comando mpicc como
se muestra en la siguiente figura.

Figura 3.16 compilacin del proyecto

Al ejecutar el compilador, en caso de marcar algn error solo se procede a


corregirlo y volver a compilar hasta que no exista error alguno.

Al terminar la compilacin, se obtiene un archivo ejecutable el cual contiene


todas las instrucciones necesarias para poder ser ejecutado sobre la plataforma
de linux, luego de este paso se procede a ejecutar el archivo, para ello hacemos
uso de la siguiente sentencia, la cual se muestra en la siguiente figura:

Figura 3.17 ejecucin del cdigo de prueba

Como se puede apreciar en el cdigo, se seleccionan 400 procesos del mismo


programa, los cuales corren por separado en las diferentes estaciones de trabajo
establecidas en el archivo de configuracin llamado nodos.txt.

3.2 ANLISIS DE RESULTADOS

Luego de la ejecucin del cdigo de prueba, se obtuvieron los siguientes


resultados, los cuales han sido satisfactorios, pudindose observar claramente
que el cdigo funciona perfectamente tal como se puede apreciar en la figura 3.18.

28
Figura 3.18 resultado de la ejecucin del cdigo

En la siguiente figura, se muestra la herramienta ganglia, en la cual podemos


apreciar de manera grafica todo el trabajo que es realizado en cada uno de los
equipos designados en el archivo de configuracin nodos.txt, y puede apreciarse
el extensivo trabajo en los nodos, mantenindose el frontend en un mnimo de
trabajo, puesto que no se encuentra participando en la ejecucin del programa de
manera directa, ya que el solo se encarga de asignar cuales sern los nodos que
realizaran la tarea.

Figura 3.19 Herramienta ganglia mostrando el trabajo realizado en el cluster


CAPITULO lV. CONCLUSIONES Y RECOMENDACIONES

CONCLUSIN

En conclusin la presente investigacin, arrojo como resultado que los procesos


se ejecutaron tal y como se esperaba, lo que deja claro que este trabaja como un
cluster tipo Beowulf. Con esto se entiende que podemos utilizar cualquier tipo de
equipo de cmputo para la construccin o ensamble de un cluster, siempre y
cuando cuenten con la infraestructura necesaria para su interconexin y los
requerimientos mnimos para el sistema operativo que se utilice.

29
Esto da por entendido que cualquier institucin puede llegar a contar con un
sistema informtico complejo, es decir, que cualquier centro que cuente con el
recurso necesario puede ensamblar uno de estos sistemas, ya sea para
investigacin y aplicacin en diferentes reas para ensear a alumnos el
funcionamiento, aplicacin y ensamble de una sper-computadora.

RECOMENDACIONES

Utilizar un sistema operativo y software para cluster que sean altamente


compatibles y de los cuales se haya tenido xito en su implementacin, as como
el uso de los mejores equipos con los que se cuente a la mano, para garantizar
que el resultado sea un cluster altamente confiable y potente a la hora de realizar
los distintos procesos que sean aplicados sobre l.

30
Referencias Virtuales
[1] http://es.wikipedia.org/wiki/Rocks_Clusters
[2] https://wiki.rocksclusters.org/wiki/index.php/History
[3]http://es.cyclopaedia.net/wiki/OpenMosix
[4] http://es.scribd.com/doc/56426541/54531563-PelicanHPC-Tutorial-en-Espanol
[5] http://www.atipa.com/general-purpose-computing.html
[6] http://www.penguincomputing.com/products/cluster-management
[7] http://www.ecured.cu/index.php/Cluster_Oscar
[8] http://es.wikipedia.org/wiki/Computaci%C3%B3n_paralela
[9] http://electro.fisica.unlp.edu.ar/arq/laboratorios/cluster/tutorial.MPI.basico.pdf
[10] http://es.wikipedia.org/wiki/OpenMP
[11] http://www.udb.edu.sv/udb/archivo/guia/informatica-ingenieria/programacion-
iv/2013/ii/guia-2.pdf
[12] http://blog.zerial.org/ficheros/Informe_Ordenamiento.pdf
[13] http://www.slideshare.net/123jou/ordenamiento-shel
[14] http://es.wikipedia.org/wiki/Quicksort
[15] http://cluster-so.blogspot.mx/
[16] http://es.wikipedia.org/wiki/CentOS
[17] revista espacio ITH # 8 volumen 4. no. 2, julio - diciembre 2014

31

Вам также может понравиться