Proyecto Sistemas Distribuidos

Módulo Teórico-Práctico Entrega Módulo Sistemas Distribuidos Nombre de la entrega Implementación de tecnologías socke

Views 42 Downloads 0 File size 443KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

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

55

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

77

y

y

y = f(x)

a

(a)

b

b

x

y=

a

(b)

a

f(x)dx

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

88