Vous êtes sur la page 1sur 6

Proyecto grupal _ pregrado-TP2690PU1E1AED1V01

Módulo SISTEMAS DISTRIBUIDOS

Nivel académico PREGRADO

Nombre del proyecto Implementación de tecnologías Sockets, Procesamiento y


programación paralela

Competencias y Conocer los conceptos fundamentales de los sistemas distribuidos, aprender a


elementos de procesos transaccionales en máquinas virtuales con VirtualBox e instalar el
competencia a desarrollar sistema operacional distribuido Rocks, aprender a compilar programas MPI con
gcc fortran90, desarrollar ejercicios de programación paralela

Indicadores de competencia DEFINICIÓN DEL PROYECTO

Descripción del proyecto.

Se deben crear tres máquinas virtuales enlazadas a través de una red interna, de
tal manera que se comuniquen y hagan ping.

El objetivo es aprender en primera estancia a trabajar con aplicaciones


distribuidas transaccionales para lo cual se debe montar una máquina virtual con
Linux y sobre esta máquina instalar el eclipse para Java. Una vez echa esta parte
de la primera entrega desarrollar un taller de sockets que se explica más adelante.

En segunda estancia, se busca que se aprenda a crear un sistema HPC (High


performance Compute) enlazando una maquina máster con dos máquinas
virtuales esclavas en Linux, probar la interconexión las redes y desarrollar los
talleres de la segunda y tercera entrega.

SUGENRENCIA. Se sugiere que cada estudiante, elabore los talleres en su


portátil para que vaya adquiriendo el conocimiento y luego integrar los resultados
del grupo en el documento maestro.

Al finalizar el módulo, se debe entregar un DOCUMENTO CON LA TERCERA


ENTREGA COMPLETA, con el desarrollo de las respectivas competencias.

INSTRUCCIONES PARA ENTREGAR EL PROYECTO

El estudiante debe ir elaborando las entregas 1, 2 y 3 en cada semana conforme a las instrucciones para la
elaboración del proyecto.

[ POLITÉCNICO GRANCOLOMBIANO ]
Para elaborar el proyecto, el estudiante debe ir aplicando los procesos metodológicos del programa, hacer
ejercicios de clase y una vez afianzado el conocimiento debe comenzar a construir las respectivas entregas en
las fechas pactadas en el curso

ENTREGA 1 (SEMANA 3)
Primera entrega:

A. Realice el siguiente paso a paso en su ordenador:

1. Para realizar esta entrega es indispensable que realice las lecturas de los escenarios 1, 2 y 3, sobre
Fundamentos de los sistemas distribuidos y el manejo de sockets.

2. Debe instalar VirtualBox 5.2 (Software libre) de 64 bits para Windows si su computador está con sistema
operacional Windows, luego montar el sistema operacional Linux CentOS 6.10 en la Máquina Virtual
(VM) de 50 GB de disco, un Core y 1024 GB de Memoria RAM. Durante el proceso de instalación habilite
la aplicación de eclipse y el Java.

3. Actualizar el sistema operacional Linux con el comando: “yum -y update” y luego exportarla para tener
una copia de respaldo.

4. Proceder a desarrollar una aplicación Cliente-Servidor para un taller transaccional utilizando sockets
así:

a. Montar el compilador de Java. Cree un archivo llamado datos.txt usando la utilidad manejo de
archivos en Java.

b. Elabore un programa socket Server que recoja las peticiones de un programa cliente.

c. Elabore un programa socket Cliente que solicite capture por consola el número de cuenta y un valor
en tipo de dato String, arme un mensaje por concatenación de cadenas de caracteres en la variable
mensaje y la envíe al programa socket servidor el cual debe recibir el mensaje, extraer las sub-
cadenas cuenta y valor y convertirlas a valores numéricos y así pueda ingresar al archivo y grabar
los datos separados por comas. Si pudo grabar, el socket Servidor debe enviar un mensaje al cliente
diciendo: “Registro grabado OK”, o un NO-OK si la operación falló. El cliente recibe el mensaje,
publica el resultado y cierra la transacción, pero el socket servidor queda abierto esperando por si
otro cliente solicita servicio.

d. Repita el proceso hasta grabar 5 registros diferentes en los campos (cuenta y valor)

Ejemplo: 245812345678,100000, (el valor unas veces puede ser 100000 o 10000000)

e. Después el socket cliente hace una consulta como lo hace un cajero automático dando el número
de cuenta y el servidor devuelve el valor si encontró la cuenta.

B. Construya un video de sustentación en el incluya:

* Explicación del código fuente de los sockets y muéstrelo funcionando.

* Suba el video a YouTube y recuerde verificar que funciona.

* Adjunte el enlace del video al documento de la entrega en una parte visible al final, antes de las conclusiones.

[NOMBRE DEL MÓDULO]


C. Desarrolle el informe teniendo en cuenta los siguientes elementos:

* Incluya en el documento la información resumida del estado del arte de lo que un socket.

* Incluya la explicación de las líneas de código de los sockets construidos para el taller.

* Agregue el diseño de la red utilizada para el desarrollo de su aplicación y la trazabilidad con las pruebas del
proceso descrito anteriormente.

* Adjunte el enlace del Video realizado en el punto B.

* Adjunte el código fuente a la entrega con conclusiones y bibliografía consultada.

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

ENTREGA 2 (SEMANA 5)
A. Realice el siguiente paso a paso en su ordenador:

Haga un diseño de una red interna y una red pública NAT, para enlazar tres máquinas virtuales.

1. Monte una máquina virtual máster con VirtualBox de 50 GB, un Core y 1024 de RAM. Configure una red
LAN interna por el dispositivo 1 llamada Rocks y una red Pública por el dispositivo 2, como NAT.

2. Cree una segunda máquina virtual de 30 GB, 1 Core y 1024 bytes de RAM con el nombre “nodo-0”
Configure una red LAN interna llamada Rocks por el dispositivo de red 1.

3. Cree una tercera máquina virtual de 30 GB, 1 Core y 1024 bytes de RAM con el nombre “nodo-1”
Configure una red LAN interna llamada Rocks por el dispositivo de red 1.

4. PROCEDA A MONTAR EL SISTEMA OPERACIONAL DISTRIBUIDO HPC con ROCKS

a. Descargue el Rocks 6.1.1 o 6.2 de la página oficial de Rockscluster.org y proceda a su instalación.


http://www.rocksclusters.org/downloads.html

b. Instale el Rocks servidor en el Máster. Vaya documentando el proceso.

c. Instale el Rocks cliente en los nodos y vaya documentado el proceso.

Aprenda a usar los comandos básicos de Rocks, tales como ssh, rocks list, qstat, qsub, rocks run host,
ganglia, etc. Ver manual en: http://digital.csic.es/bitstream/10261/36977/1/ContrerasB_MatDidact_Programac_rocks.pdf
(

d. Escriba el programa “holamundo.c” que se muestra a continuación, compílelo y córralo. Luego


adjunte las evidencias al documento de la segunda entrega. (Solicite asistencia al tutor por el correo
y en los encuentros).
#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);

[ POLITÉCNICO GRANCOLOMBIANO ]
MPI_Comm_size(MPI_COMM_WORLD, &size);

printf(“Soy el core nro. %d de %d\n”, rank, size);

MPI_Finalize();
return 0;
}

B. Construya un video de sustentación en el incluya:

* Construya un video donde explique el código y muestre el funcionamiento.

* Suba el video a YouTube y pruebe su funcionamiento. Adjunte el enlace del video al informe.

C. Desarrolle el informe teniendo en cuenta los siguientes elementos:

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

*Incluya pantallazos de la ejecución de los comandos fundamentales de uso de Rocks, utilizando el programa
“holamundo.c”

* Adjunte el código fuente a la entrega del programa hola mundo modificado (un ciclo) para que haga el printf al
menos mil veces y registre los pantallazos de lo que hace.

* Adjunte el enlace del video al final del documento antes de las conclusiones.

* Cargue la entrega completa a la plataforma dentro de los plazos establecidos

Referencias:

https://www.ele.uva.es/~ivasan/HPC/abstracts/2015_2016_Diego_Jose.pdf

http://www.rocksclusters.org/docs/guides.html

https://e-archivo.uc3m.es/bitstream/handle/10016/18024/PFC-IgnacioVeronaRios.pdf (ver página 63 en


adelante para uso de comandos)

[NOMBRE DEL MÓDULO]


ENTREGA 3 Y SUSTENTACIÓN (SEMANA 7)
Tercera entrega: Con base en el Rocks instalado en la entrega 2, desarrolle un programa para calcular el área
bajo la curva de la figura 5(a).

Para esto utilice los fundamentos del cálculo de un área bajo la curva, que consiste en dividir el área de la curva
de la figura 5a, en trapecios sucesivos como se muestra en la figura 5b, mediante sumas sucesivas, lo cual nos
lleva al uso de la integración de la función entre los límites a y b de f(x)dx.

Figura 5. Área bajo la curva

Revise las referencias [1, 2] de la lectura del escenario 6 y en su infraestructura computacional compuesta por
una máquina máster con dos Cores y dos máquinas virtuales adicionales llamadas Nodo-0 y Nodo-1, convierta
el seudocódigo de la lectura en código compilable. Revise otras bibliografías, complete el programa en
programación paralela, compílelo y hágalo correr.

Para la entrega final, tenga en cuenta los siguientes pasos:

a. Elabore el documento con la información resumida del estado del arte de lo que es procesamiento paralelo
y lo que usted entendió de programación paralela, junto con su explicación de lo que usted cree que el
sistema Rocks, hace.

b. Adjunte el código fuente a la entrega del programa de la integral de f(x)dx junto con la explicación de lo que
hace ese código.

c. Explique el comando de compilación utilizado

d. Explique el comando de ejecución utilizado para correr el programa

e. Construya un video donde explique el código y muestre el funcionamiento.

f. Suba el video a YouTube y pruebe su funcionamiento.

g. Adjunte el enlace del video a la entrega

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

[ POLITÉCNICO GRANCOLOMBIANO ]
Nota: El documento final debe contener todo lo requerido en la tercera entrega.

[NOMBRE DEL MÓDULO]

Vous aimerez peut-être aussi