Está en la página 1de 8

Módulo Teórico-Práctico

Entrega

Módulo

Sistemas Distribuidos

Nombre de la entrega

Implementación de tecnologías sockets, procesamiento y programación paralela

Nivel académico

Pregrado

Tipo de entrega

Proyecto grupal
INSTRUCCIONES PARA
REALIZAR LA ENTREGA

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 instancia, 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 realizada esta parte de la primera entrega,
desarrollar un taller de Sockets que se explica más adelante.

En segunda instancia, se busca que se aprenda a crear un sistema HPC (High Performance
Compute) enlazando una máquina máster con dos máquinas virtuales esclavas en Linux,
probar la interconexión de las redes y desarrollar los talleres de la segunda y tercera entrega.

Se sugiere que cada estudiante elabore los talleres en su portátil para que adquiera el
conocimiento y luego integre los resultados en el documento maestro.

El estudiante debe ir elaborando las entregas 1, 2 y 3 en cada semana conforme a las


instrucciones para la elaboración del proyecto.

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 construir las
respectivas entregas en las fechas pactadas en el curso.

POLITÉCNICO
POLITÉCNICO GRANCOLOMBIANO
GRANCOLOMBIANO
22
ENTREGA PREVIA 1
SEMANA 3

Primera entrega:
Realice el siguiente paso a paso en su computador:

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 este sistema operativo, luego debe 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. Actualice el sistema operacional Linux con el comando: yum -y update y luego expórtela
para tener una copia de respaldo.

4. Proceda a desarrollar una aplicación cliente-servidor para un taller transaccional


utilizando sockets, así:

a. Monte 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 envíela al programa socket servidor,
el cual debe recibir el mensaje, extraer las subcadenas cuenta y valor y convertirlas
a valores numéricos, así podrá ingresar al archivo y grabar los datos separados por
comas. Si pudo grabar, el socket server debe enviar un mensaje al cliente diciendo:

POLITÉCNICO
POLITÉCNICO GRANCOLOMBIANO
GRANCOLOMBIANO
33
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 server queda abierto
esperando por si otro cliente solicita un 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.

Construya un video de sustentación en el que incluya:

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

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

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

Desarrolle el informe teniendo en cuenta los siguientes elementos:

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


socket.

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

3. 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.

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

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

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

POLITÉCNICO
POLITÉCNICO GRANCOLOMBIANO
GRANCOLOMBIANO
44
ENTREGA PREVIA 2
SEMANA 5

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.

d. 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

e. 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).

POLITÉCNICO
POLITÉCNICO GRANCOLOMBIANO
GRANCOLOMBIANO
55
#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;
}

Construya un video de sustentación en el que incluya

1. Un video donde explique el código y muestre el funcionamiento.

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


informe.

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.

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


utilizando el programa “holamundo.c”.

POLITÉCNICO
POLITÉCNICO GRANCOLOMBIANO
GRANCOLOMBIANO
66
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

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)

ENTREGA FINAL
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 1(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 1(a) en trapecios sucesivos como se muestra en la figura 1(b),
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.

POLITÉCNICO
POLITÉCNICO GRANCOLOMBIANO
GRANCOLOMBIANO
77
b
y y = f(x) y y= f(x)dx
a

a b
x a b
(a) (b)

Figura 1. Área bajo la curva


Fuente: elaboración propia

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 un
procesamiento paralelo y lo que usted entendió de programación paralela, junto con
su explicación de lo que usted cree que hace el sistema Rocks.

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.

Nota: el documento final debe contener todo lo requerido en la tercera entrega.

POLITÉCNICO
POLITÉCNICO GRANCOLOMBIANO
GRANCOLOMBIANO
88

También podría gustarte