0% encontró este documento útil (0 votos)
70 vistas40 páginas

Implementación de Rocks en Sistemas Distribuidos

Este documento resume la segunda entrega del proyecto de sistemas distribuidos. Incluye una descripción del middleware "Rocks", pantallazos de la ejecución del programa "holamundo.c" usando comandos de "Rocks", el código fuente modificado para imprimir 1000 veces y capturas de pantalla, y el enlace de video. El objetivo es aprender a crear un sistema HPC usando "Rocks" e implementar una red de computadoras.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
70 vistas40 páginas

Implementación de Rocks en Sistemas Distribuidos

Este documento resume la segunda entrega del proyecto de sistemas distribuidos. Incluye una descripción del middleware "Rocks", pantallazos de la ejecución del programa "holamundo.c" usando comandos de "Rocks", el código fuente modificado para imprimir 1000 veces y capturas de pantalla, y el enlace de video. El objetivo es aprender a crear un sistema HPC usando "Rocks" e implementar una red de computadoras.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

SISTEMAS DISTRIBUIDOS [GRUPO 4]

ENTREGA 2

Implementación de tecnologías sockets,


procesamiento y programación paralela

Profesora: xxxxxxxxxxxxxxxxxxxxxxx

INTEGRANTES:
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

POLITÉCNICO GRANCOLOMBIANO
BOGOTÁ
2022

TABLA DE CONTENIDO

INTRODUCCIÓN............................................................................................................................. 2
OBJETIVOS GENERALES ............................................................................................................ 4
OBJETIVOS ESPECIFICOS .......................................................................................................... 4
SEGUNDA ENTREGA .................................................................................................................... 5
1. Elabore el documento con la información resumida del estado del arte de lo que es
“Rocks”. ......................................................................................................................................... 5
2. Incluya pantallazos de la ejecución de los comandos fundamentales de uso de “Rocks”,
utilizando el programa “holamundo.c”. ...................................................................................... 8
3. Adjunte el código fuente a la entrega del programa holamundo modificado (un ciclo)
para que haga el printf al menos mil veces y registre los pantallazos de lo que hace. .......... 21
4. Adjunte el enlace del video realizado en el punto B. ............................................................ 23
5. Cargue la entrega completa a la plataforma dentro de los plazos establecidos. ................ 23
6. Instalación máquinas virtuales y “Rocks” ............................................................................ 24
CONCLUSIONES ........................................................................................................................... 39
REFERENCIAS .............................................................................................................................. 40

INTRODUCCIÓN

Empezamos nuestro proyecto con la definición de algunos términos que plantearemos a lo


largo del documento:
• El middleware es un metasistema operativo que proporciona una capa integradora
para todos los nodos de cómputo de un clúster, es también un software multipropósito
que proporciona servicios a las aplicaciones, adicional a lo que ofrece el sistema
operativo.
• Un clúster es un desarrollo informático cuyo alto desempeño tiene que ver con la
capacidad de procesar un gran número de instrucciones por unidad de tiempo. El
clúster, es una interconexión de computadores PC a través de una red de datos
denominados nodos. Debido a las diferentes clasificaciones de un clúster, existe una
variada lista de middleware que va desde aquellos dedicados a administrar clúster de
visualización hasta los middleware mixtos que permiten dar dos perfiles a un clúster
(Floriano, L. E. C, 2017).
Otro punto que destacar de los middlewares es la correcta adaptación a diferentes
distribuciones Linux. Un aspecto que aporta flexibilidad es la escalabilidad, que es la
cantidad de nodos de procesamiento que se pueden administrar y al mismo tiempo, de manera
adecuada. La interfaz de instalación que “Rocks” ofrece es a través de una GUI (Graphics
User Interface) que es muy intuitiva para el usuario, a diferencia de otros middlewares como
“xCat” que solo se cuenta con la CLI (Command Line Interface).
OBJETIVOS GENERALES

Trabajar con aplicaciones distribuidas transaccionales, aprovechando los recursos


tecnológicos existentes, la motivación y fortalecimiento en el desarrollo de proyectos que
requieran alto poder de cómputo y la oportunidad futura de configurar una malla de
computadores (Grid) a través de redes de alta velocidad.
Hacer el uso de Rocks para computación distribuida, mediante la instalación y configuración
de estos.

OBJETIVOS ESPECIFICOS

• Aprender a crear un sistema HPC (High Performance Compute) a través de sistemas


operacionales como los son los middlewares en nuestro caso hablamos de “Rocks”.
• Estudiar el estado actual, en el ámbito de aplicaciones, de la computación de alto
rendimiento basado en Grid.
• Ampliar nuestro conocimiento acerca de Sistemas Distribuidos, donde podamos
comprender como implementar una red de computadoras u otros dispositivos de tal
manera que puedan ser accedidos desde el exterior como si fuera un único servidor.
SEGUNDA ENTREGA

Incluya en el documento:
1. Elabore el documento con la información resumida del estado del arte de lo que es
“Rocks”.
2. Incluya pantallazos de la ejecución de los comandos fundamentales de uso de “Rocks”,
utilizando el programa “holamundo.c”.
3. Adjunte el código fuente a la entrega del programa holamundo modificado (un ciclo)
para que haga el printf al menos mil veces y registre los pantallazos de lo que hace.
4. Adjunte el enlace del video al final del documento antes de las conclusiones.
5. Cargue la entrega completa a la plataforma dentro de los plazos establecidos.

Desarrolle el informe teniendo en cuenta los siguientes elementos:


1. Elabore el documento con la información resumida del estado del arte de lo que es
“Rocks”.

Inicialmente se realiza una revisión del middleware ““Rocks””, mencionando a grandes


rasgos sus principales ventajas y desventajas de su uso. Se menciona a ““Rocks”” con la
principal ventaja de ser un middleware de fácil escalabilidad, y con un proceso de instalación
altamente automatizado. No obstante realizar una actualización del sistema operativo,
implica una reinstalación total del clúster. También es válido mencionar otro middleware
como lo es “xCat”, un middleware poco portable, con funcionalidades inferiores a las de
““Rocks”” y con la desventaja de no contar con una instalación débilmente automatizada
(Floriano, L. E. C, 2017).
““Rocks”” es una distribución para clústeres Linux de código abierto, que permite a los
usuarios finales crear fácilmente grupos computacionales (Fernández Ayala, D. A, 2005).
Se lanzó originalmente con el nombre NPACI Rocks y está diseñado para clústeres de
computación de alto rendimiento (HPC) que utilizan nodos distribuidos basados en Linux.
Este proyecto fue iniciado por la Asociación Nacional para la Infraestructura Computacional
Avanzada y el Centro de Supercomputación de San Diego (SDSC) en 2000 y el último
lanzamiento de esta distribución de Linux es el lanzamiento de 2017 (What is Rocks Cluster?,
s. f.).
Rocks permite instalar un clúster desde cero, configurando tanto el nodo principal (froend o
frontal) como los nodos de cómputo. Existen gran cantidad de ampliaciones fácilmente
instalables, como sistemas de ficheros paralelos, o aplicaciones específicas para algunos
campos. (John Alex)
Si bien Rocks es conocido por simplificar la administración y gestión de sistemas a gran
escala, un creciente ecosistema de extensiones es una gran parte de lo que hace de Rocks una
solución convincente en tantos entornos (Politecnico Grancolombiano // Acceso externo a
recursos electrónicos, s. F.).
La instalación de “Rocks” es una tarea amigable para el usuario, gracias a la implementación
de una GUI. La interfaz presentada al usuario es concretamente un asistente que lo guía paso
a paso para hacer una instalación limpia y funcional del clúster. Sin embargo, una GUI suele
presentar un alto nivel de abstracción, debido a la falta de secuencias de comandos y en
determinadas ocasiones no permiten aprovechar todo el potencial detrás del motor de
instalación. Esta forma de trabajo también suele consumir un alto porcentaje de recursos
(procesador y espacio en disco).
En el Sistema Operativo Base (SOB), la instalación de “Rocks” provee el Roll OS, Dicho rol
es el encargado de instalar el sistema operativo base (una versión de CentOS), por lo que
cuando se realiza la instalación de “Rocks”, no es necesario contar con un sistema operativo
preinstalado.
La instalación de nuevos nodos de cómputo en “Rocks” es un proceso unificado que se realiza
con el script automatizado insert-ethers. Dicho script pone al servidor en un proceso DHCP
de escucha de peticiones, esperando solicitudes por parte de los nodos a instalar mediante la
red usando el protocolo PXE. El script insert-ethers se encarga de integrar automáticamente
dichos nodos al clúster.
Un clúster computacional requiere de diversas herramientas administrativas: verificadores de
integridad de sistemas de archivos, monitoreadores, planificadores de tareas, tecnologías de
virtualización, lenguajes de programación, etc. “Rocks” en este aspecto, cuenta con los
llamados Roll CD’s. Los roles son paquetes de software adicionales a la instalación base de
“Rocks” que permiten al sistema base extenderse automáticamente y sin problemas. Esta
integración a su vez simplifica la instalación y configuración de nuevos nodos de cómputo
lo que se traduce en buena escalabilidad.
Resumimos entonces que las funciones básicas con las que cuenta “Rocks” son:
• Instalación del sistema operativo Linux
• Configuración de los nodos de cómputo.
• Construcción de la base de datos de información de todo el clúster.
• Entrega de bibliotecas necesarias para la construcción y ejecución de los programas.
• Manejo y monitoreo del clúster
Ilustración 1 Imagen tomada de “Clústeres, Componentes. http://clusterfie.epn.edu.ec”

Algunas ventajas adicionales que encontramos con la implementación de un HPC (High


Performance Compute) con el uso de Rocks son:
• Permite a más personas trabajar en computación paralela.
• Casi todos los componentes están publicados como Open-Source.
• Implementación de procesamiento de Batch
• Comunicación entre los ambientes.
A continuación, veremos un gráfico representativo del uso de un HPC – Cluster:
Ilustración 2. Elaboración Propia con draw.io

2. Incluya pantallazos de la ejecución de los comandos fundamentales de uso de


“Rocks”, utilizando el programa “holamundo.c”.
Terminado el paso de la instalación, realizamos el login con el usuario root y la contraseña
ingresada anteriormente.

Abrimos un nuevo terminal y digitamos el siguiente comando “”.


Evidenciamos el programa que se ejecuta, seleccionamos la primera opción, esto con fin de
evidenciar la conexión de los nodos 0 y 1.

Iniciamos el nodo-0.
Evidenciamos la conexión exitosa entre el nodo-0 y la maquina master.

Luego de verificar la conexión, reiniciamos el nodo-0, para que de esta forma obtenga toda
la información de nuestro clúster (master).
Evidenciamos que la instalación que se realizó anteriormente en el cluster (master), se
realiza en el nodo-0.

Iniciamos el nodo-1
Evidenciamos la conexión exitosa entre el nodo-1 y el clúster (master).

Reiniciamos el nodo-1 para realizar la instalación.


Luego de terminar la instalación en las dos máquinas (nodo-0 y nodo-1), ejecutamos el
comando ““Rocks” list host” y evidenciamos las dos máquinas conectadas correctamente al
cluster.

Digitamos el comando “ssh compute-0-0”, e ingresamos a la terminal del nodo-0


Para salir de la conexión a el nodo ingresamos el comando “exit”.
Digitamos el comando “ssh compute-0-1”, e ingresamos a la terminal del nodo-1

Para salir igualmente con el comando “exit”.


Ejecutamos el comando “qstat -f” este comando se utiliza para verificar el estado de los job

El comando “qsub” se utiliza para enviar una serie de trabajos sencillos al SGE.
El comando ““Rocks” run host” se utiliza para ejecutar desde el nodo maestro en varios o
todos los nodos, en este ejemplo lo usamos para comprobar los procesos activos en el nodo-
0.
Ejecutamos el comando ““Rocks” run host compute-0-0 “ls -l /tmp””
Terminando la parte de comandos por último accedemos a la IP que definimos
anteriormente /ganglia, (192.168.0.10/ganglia), en esta URL comprobaremos las maquinas
conectadas al cluster.

Verificamos el uso de recursos de cada nodo, seleccionamos como ejemplo el nodo-0


(compute-0-0).
seleccionamos el nodo-1 (compute-0-1).

Ejecución del programa “holamundo.c”


Creamos el archivo “holamundo.c” y digitamos el código suministrado en la actividad.
Ampliación de imagen

Abrimos una ventana de terminar para ejecutar comandos. Ejecutamos el comando “mpicc
holamundo.c” para compilar nuestro archivo creado anteriormente.
Evidenciamos que no se generó ningún error de compilación.

Evidenciamos que se generó un archivo llamado “a.out”, que es el programa compilado.


Ejecutamos el archivo “a.out” con el comando “./a.out”

Evidenciamos el mensaje de salida generado en la terminal.

3. Adjunte el código fuente a la entrega del programa holamundo modificado (un


ciclo) para que haga el printf al menos mil veces y registre los pantallazos de lo que
hace.

//Código ejecución 1 ciclo


#include <stdio.h>
#include "mpi.h"

int main(int argc, char *argv[])

{
int rank, size;
MPI_Init(&argc, &argv);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
MPI_Comm_size(MPI_COMM_WORLD, &size);
printf("Soy el core nro. %d de %d\n", rank, size);
MPI_Finalize();
return 0;

}
//Código ejecución 1000 ciclos
#include <stdio.h>
#include "mpi.h"

int main(int argc, char *argv []){

int rank, size, i;


MPI_Init(&argc, &argv);

MPI_Comm_rank(MPI_COMM_WORLD, &rank);
MPI_Comm_size(MPI_COMM_WORLD, &size);

for(i=0; i<1000; i++){


printf("Soy el core nro. %d de %d/n", i, rank, size);
}
MPI_Finalize();
return 0;

}
Ampliación de imagen

4. Adjunte el enlace del video realizado en el punto B.


En el siguiente enlace de YouTube podremos encontrar el funcionamiento de las maquinas:

• Video

5. Cargue la entrega completa a la plataforma dentro de los plazos establecidos.


6. Instalación máquinas virtuales y “Rocks”
Descargamos la ISO 6.2 de “Rocks” desde la página sugerida en el taller.

Procedemos a montar la máquina virtual llamada master. Clic en el botón “Nueva”

Configuramos el nombre de la maquina y carpeta.


Luego de haber creado las máquinas virtuales procedemos a configurar la maquina master,
con lo solicitado en el documento. Nos dirigimos al apartado de red y en el adaptador 1
creamos la red interna llamada ““Rocks”” y en el adaptador 2 creamos la red de tipo NAT.
En el apartado de almacenamiento indicaremos el medio de instalación, el cual será la ISO
descargada previamente.

Repetimos los anteriores pasos con las maquinas virtuales nodo-0 y nodo-1, cambiando los
nombres y tamaño de disco.
Para el nodo-0.
Realizamos la configuración.
Seleccionamos la ISO, para el “nodo-0”

Realizamos la configuración de la red interna


Adaptador 1.
Para el nodo-1.
Realizamos la configuración.
Seleccionamos la ISO, para el “nodo-0”

Realizamos la configuración de la red interna


Adaptador 1.
Terminado los anteriores pasos procedemos a configurar la maquina “master”.
Evidenciamos que corre correctamente.

Ejecutamos el comando “build”, para construir nuestro cluster.


Realizamos la configuracion. Seleccionamos las instancias que tendra nuestra maquina
master.
Seleccionamos únicamente los necesarios.

Clic en “Submit”, nos aparece una pantalla con el resumen y damos clic en “Next”.
Evidenciamos la información de nuestro cluster, la cual se deja por defecto y damos clic en
“Next”.
Realizamos la configuración de la IP publica de nuestro cluster.
Asignamos el valor de la variable IP Fija como 10.1.1.1 y una máscara de Subred
255.255.0.0, damos clic en el botón “Next”.

Realizamos la configuración de la red privada, con los siguientes valores.


IP Adress: 192.168.10
Mascara de subred: 255.255.255.0
Damos clic en el botón “Next”.
Realizamos la configuración de una puerta de enlace.
Gateway: 192.168.0.1
DNS Servers: 192.168.0.1
Damos clic en el botón “Next”.
Definimos una contraseña para nuestro usuario root y damos clic en el botón “Next”.
Seleccionamos la zona horaria en la que nos encontramos y damos clic en el botón
siguiente.

Para el particionamiento de disco, seleccionamos la opción “Auto partitioning”, clic en el


botón “Next”.
Evidenciamos que se realiza la instalación
CONCLUSIONES

A través de la experiencia obtenida con la administración de los middlewares, podemos


deducir que algunos son más robustos que otros como es el caso de “xCat” en comparación
a ““Rocks””. Los middlewares están enfocados al mundo profesional, ya que cuentan con
herramientas para la administración de clústeres.

Se ha realizado la instalación del cluster utilizando ““Rocks”” y posteriormente se ha


configurado, para así coordinadamente formar parte de la arquitectura Grid.

Como equipo, logramos interactuar y completar nuestra entrega de manera ordenada,


compartiendo nuestras opiniones y experiencias.

Logramos comprender los conceptos fundamentales y practicas acerca de los Rocks y su


utilidad en el manejo de servidores y redes.
REFERENCIAS

• Fernández Ayala, D. A., & Mejía Navarrete, R. D. (2005). Clusters de computadores


personales con Linux (Bachelor's thesis, QUITO/EPN/2005).

• Floriano, L. E. C., Aguirre, J. A. G., González, A. R., León, A. R., & Avelino, J. C.
P. Análisis comparativo entre dos Middlewares para clusters HPC. Emprendiendo
Innovaciones con Tecnologías Exponenciales, 26.

• Online reference: “Clústeres, Componentes. http://clusterfie.epn.edu.ec”

• Politecnico Grancolombiano // Acceso externo a recursos electrónicos. (s. f.).


Recuperado 26 de septiembre de 2022, de
https://login.loginbiblio.poligran.edu.co/login?qurl=https://dl.acm.org%2fdoi%2fful
lHtml%2f10.1145%2f1188455.1188482

• Como realizar un Cluster con Rocks en virtuabox.


https://www.youtube.com/watch?v=RqExnlXP6XM

• Open-Source Toolkit for Real and Virtual Clusters, Publicado el 15 de mayo del 2008,
http://www.rocksclusters.org/assets/tutorials//tutorial-1.pdf en el sitio web
rocksclusters.org

• What is Rocks Cluster? (s. f.). Recuperado 26 de septiembre de 2022, de


https://www.roseindia.net/tutorial/linux/rockscluster/index.html

También podría gustarte