jueves, 24 de mayo de 2012

Ultima semana


Lo sucedido con el proyecto

Pues en si el proyecto en mi nobre opinion hubo un poco de mala organización de parte del grupo y un poco encarreraro la realizacion del proyecto y pues si se pudiera regresar un poco el tiempo creo que lo que se tendria que corregir seria principal mente la mala organizacion que se tuvo.

Tambien se realizo un cluster con lam e interfaz grafica de manera loca aqui el link en la wiki :

http://elisa.dyndns-web.com/progra/clusterfuncional#Reuni.2BAPM-n_21_de_mayo_2012


Nominaciones:

Juan Carlos
Rafa
Pedro


jueves, 17 de mayo de 2012

Semana 15

Continuando con la entrada anterior intentamos realizar el pvm pero ahora de manera grafica tratar de  jalar el pvm pero con varias complicaciones, al igual que en  la terminal fue necesaio crear una area local y modificar los diferentes archivos host ademas de instalar los paquete para la interfaz grafica del pvm.

Esto se puede instalar desde Synaptico, solo buscando por xpvm y posteriormente lo instalamos :)

WIKI: LINK

Colaboradores para realizar esto: Obed, Esteba, Jony y Ave


Nominaciones:
Juan carlos
Rafa

Por el monitorio de cluster :D

miércoles, 9 de mayo de 2012

Lab Sistemas Distribuidos y Paralelos

Grid computing



Que es?

Grid computing es una de las tecnologias mas inovadoras en la rama de computación, conrdinando esfuerzo para ciertos tipos de recursos que no estan sujetos a un control centralizado.

El termio Grid se refiere a una infraestructura que permite el uso de los ordenadores de forma colectiva con alto rendimiento con gran seguridad entre cada uno de sus integrantes. Esta especie de malla se concidera un sola supercomputadora.


Como funciona?

1-. Estableciendo Comunicación:

Para que esta "MALLA" funcione correctamente es necesario que este montado en un middleware que es un software para controlar las comunicaciones entre los diferentes nodos de manera flexible y limpia. Ademas se encarga de buscar la informacio y la manera de crear estadisticas de estas comunicaciones.


2-. Uso de los recursos:


En lo que trata realizar el grid es una serie de conexiones que aprovechen al maximo los diferentes tipos de recursos, acceso directo remoto a los ordenadores, software de lso mismos, dispositivos perifericos  y agrupar eficientemente los procesos para realizar tareas de alta conplejidad.


3-. Seguridad:


Como esta MALLA se maneja de diferentes ordenadores o usuarios, es necesario poner una estandirizacion sobre quien tiene derecho a utlizar tal dispositivo, correr alguna aplicacion o por cuanto tiempo.






Arquitectura del Grid:

Por lo general las arquitecturas de la MALLA son por medio de capas empesando por la del usuario.





Aqui se compara la Arquitectura del Grid  con el protocolo de Internet

La capa de aplicación es el software que interactua con el usuario ya sea como interfaz grafica o desde alguna terminal, para correr las diferentes aplicaciones y seguir con las capas de los recursos y distribuirlo de manera uniforme.

Posteriormente que se aya pasado la capa de aplicacion, sigue la de Recursos anteriormente, y  agrupar eficientemente los procesos en esta capa.

En la capa de Conectividad como su nombre lo indica, conecta con toda la infraestructura y la parte de ella que intactuara con lso diferentes procesos.






Aplicaciones del Grid





Súper computación distribuida:
Son aquellas aplicaciones que no se pueden realizar con un solo nodo.


Sistemas distribuidos en tiempo real:
Son las aplicaciones que generan datos constantemente y que necesitan ser analizados en tiempo re


Servicios puntuales:
En estos tipos de serivicos no importa realemente el poder del procesamiento de datos si no la manera enq eu esta la arquitectura implementada y la buena organizacion de los recursos

Proceso intensivo de datos:
Este metodo requeire de uan gran capacidad de almacenamiento donde un unico ordenador u nodo es imposible de ofrecer este tipo de serivico, y en este caso interviene el Grid para mejorar el procesamiento de datos entre todas las redes y mejorar significativamente el espacio de almacenamiento

Entornos virtuales de colaboración.
En este caso se necesita de igualmanera gran cantidad de procesamiento para poder generar entornos visuales en 3D de manera distribuida






ligas:
http://www.cyta.com.ar/ta0704/v7n4a1.htm
http://www.ramonmillan.com/tutoriales/gridcomputing.php
http://www.textoscientificos.com/redes/computacion-grid/ventajas-desventajas-aplicaciones




Entrada para clase

En esta semana nos dedicamos un poco a probar sobre como se utilizar el PVM (Parallel Virtual Machine). Esta maquina virtual se utiliza para correr aplicaciones, tareas entre diferentes computadoras compartiendo sus recursos, procesadores y memoria de manera heterogenea como si fuera un cluster.


Esto fue obra de: Obed, Jony y yo
Instalación, configuración y corrida


Tambien existe uan forma grafica para este tipo de aplicaciones con algo llamado xPVM continuara....

Entrada a la wiki: WIKI


Nominaciones:
Para la compañera adriana y su aportacion de la aplicacion de Balanceo para compartir diferentes trabajos y ser una especie de cluster:

BLOG

miércoles, 2 de mayo de 2012

Semana 13

En esta semana intentamos implementar todo lo anterior y unirlo con el cluster y verificar que todo salga de igual manera como si lo estuvieramos haciendo en una red local.

Esto lo realise en conjunto con mi compañero jonathan ya teniendo previo la instalacion de hamachi y la comunicación entre las dos computadoras.


Ya se realizo lo anterior y se empeso a seguir el tutorial que se encuentra en la wiki. Se utilizio las ip que nos marcava el hamachi para realizar el cluster.

Posteriormente de tener todo preparado listo, la computadora de jonathan seria el nodo principal, y en casi de mi comptadora seria el esclavo.

Se inicio el demonio primero para que se pudiera corre con

mpd &

Psosteriormente como eran dos nodos solamente se iso de esta manera:

$ mpdboot --verbose -n 2

y para verificar que esten los dos nodos nomas se ase:

mpdtrace


y de prueba corrimos un programa en python en donde nos genera una imagen de un fractal.



Nominaciones:
Carmen Suarez
Jonathan


domingo, 29 de abril de 2012

Semana 12 Distribuidos


SEMANA 12

Todo esto lo hicimos entre triana, adriana y ave :P

ssh +  hamachi + firewall



En esta semana trabajamos con Hamachi y SSH cosa que anteriormente se habia trabajado pero no se habia logrado la conectividad, ya que al realizar pruebas con los pings las computadoras no respondían. Al igual que la implementacion del firewall predefinido de ubuntu.



Lo primero que se realizo, fue instalar el hamachi en los diferentes computadoras a utilizar en este caso se instaló en la compu de triana, adriana y ave.

Esto de hamachi anteriormente se abria hablado sobre como instalarlo en la wiki al igual el manejo del ssh y el firewall solo nos dimos a la tarea de juntar todo.


Posteriormente uno de nosotros creo una red donde todos se podran conectar remotamente sin necesidad de estar en una misma red.


De la siguiente manera:


hamachi create aveits y nos pide algun password se la damos y listo :D

Las demas computadores se conectarían de la siguiente manera:
hamachi join aveits y ponemos la contraseña y ya con esto estámos dentro de la red virtual que hamachi nos ofrece.


Posteriormente para probar que todo funciona, podemos hacer ping a cualquiera de los nodos y verificar que si nos manda alguna respuesta:


Posterior a esto se realizó a generar los diferentes llaves para cada uno e los usuarios y copiarlos a las diferentes maquinas.


Luego se abrio el puerto 22 para que no hubiera ningun tipo de problema y para finalizar se vuelve a probar las ip con el ping.


Ya para finalizar se conectó remotamente a las diferentes maquinas con las ip que nos asigna hamachi y todo listo :D




Conexion desde la compu mia a la de adriana:



Conexion desde la compu mia a la de triana:



Puntos a jony por los envios de mensaje en c
Posdata: La entrada a la wiki de esto lo subio triana :D punts para el por eso y a adriana tambien

WIKI

miércoles, 18 de abril de 2012

Avanze


En esta ocación investigue un poco sobre la manera en que se programa con la libreria mpi en congunto con pyMPI




aki el link:

LINKI WIKI

referencias
https://computing.llnl.gov/code/pdf/pyMPI.pdf
http://pympi.sourceforge.net/


Nomino a mi compañero Obed por las diferentes subrutinas que se pueden utilizar con esta libreria, las menciona en la misma entrada de la liga de la wiki antes de los ejemplos.

domingo, 15 de abril de 2012

Avances de semana

En esta ocación me dedique a buscar diferentes tipos de librerias para poder crear programas en paralelos y la instalacion respectivamente.


En el caso de lenguaje scrip python existen diferentes tipos de librerias entre esas, existe una que se llama pyMPI que se utiliza para programas en paralelo.

Pueden descargar la libreria del siguiente link:

Libreria pyMPI


Ya descargada la libreria se descomprime en cualquier directorio y posteriormente se pasa a la instalacion,  como toda libreria o por lo general se siguen los siguientes pasos:

Dentro de la carpeta ya descomprimida se realiza los siguientes comandos desde terminal:

1-. ./configure
2-. sudo make
3-. sudo make install




En ciertas ocaciones pueden resultar una serie de problemas al hora de instalar este paquete, en caso de que no funcione es necesario instalar unos cierto paquetes de python desde el synaptic
como:

python3-dbg
pythonl3-all
python3-all-dbg


Ya posteriormente teniendo los paquetes intentamos nuevamente instalarlo con los pasos anteriores despues de esto sabremos si estan instalados correctamente, si despues del make install nos muestra lo siguiente:




Ya teniendo todo listo ya se puede ejecutar los diferentes tipos de programas paralelos de python


con el siguiente comando:

mpirun -np 3 pyMPI Programa.py



miércoles, 28 de marzo de 2012

Reporte Sistemas Distribuidos y Paralelos 8

En esta semana se realizaron una explicación breve de lo que cada equipo necesitaba hacer para este proyecto y una manera de organización. Al igual se empezaron a realizar las diferentes tipos de instalaciones de paquetes para el Cluster.


También realice un sencillo ejemplo de la implementación de "Executor" para java

Link del wiki:  "Executor"


Nominaciones:

Una nominación a mi compañero   Jonathan por su tutorial de mpi para c y su implementación en el Cluster.

Liga wiki: Tutoc

Y para José Guadalupe pos su entrada sobre el tema de OpenMosix y la manera en que se Compila el kernel.

Liga: OpenMosix


jueves, 22 de marzo de 2012

semana 7

Avances


Se realizo una reunión para verificar los diferentes tipos de avances que se a realizado entre todo el grupo en especial de los encargados del hardware del cluster por le momento y
realizar una calendarización para que todo salga bien y a tiempo.

Calendarización:  https://docs.google.com/document/d/13SpAJyJ9EDO5ae6EiB91b-qfeyl9qfMOg7tXPLvnPQA/edit?pli=1

Se acordó utilizar la distribución de ubuntu 10.04 TLS de 64 bits para mejor rendimiento del sistema o Cluster.  Ya instalado se pasara a realizar las diferentes tipos de configuraciones necesaria para poder realizar el funcionamiento correcto del cluster con el uso de VPN donde los compañeros Rafa y Juan Carlos hablaron sobre como se utilizaba y de que trataba este sistema.



Posteriormente en las semanas siguientes se continuara con lo planeado en la calendarización y realizar las diferentes tipos de pruebas necesarias y la implementación de diferentes tipos de lenguajes de programación ya sea python, java o lenguaje c.



Aportación de la semana pasada, pasada a la wiki:

Hilos en c



Nominaciones para Rafa y Juan Carlos por la realización de la junta

miércoles, 7 de marzo de 2012

Reporte de distribuidos(por el momento)

Thread en c (POSIX)

Los hilos son diferentes tipos de programas o ejecuciones de maneras continuas dentro de  un mismo programa , ya sea en lenguaje java, python o en este caso "c".
Existen hoy en día diferentes tipos de implementación de los thread en concurrencia o programas en paralelismo.


Se puede utilizar una librería llamada   <pthread.h> para utilizar estos importantes recursos llamados thread. En el caso de se se puede utilizar    los hilos para que en un solo programa, correr múltiples métodos al mismo tiempo y controlar mas eficientemente los recursos.

Para declarar los thread en c se pone de la siguiente manera:

phtread_t thread1

Para poder correr los thread es parecido en java solo ponemos lo siguiente:
                     
  pthread_create(&thread,NULL,hilo,NULL);


Posteriormente se declaran los métodos en donde irán los procesos que realizaran los hilos:


void * hilo()
{
     while(1)
{
}
}


Es aquí dentro del loop infinito lo que hará el hilo


 pthread_join(thread,NULL)

Funciona para lo mismo en java, ayuda agregar el hilo en caso de espera

Libreras útiles en "c" para uso de thread


 <semaphore.h> //librería estilo semáforo                             


Esta librería ayuda para hacer esperar un thread a otro que termine de ejecutarse o detenerlos simultáneamente. Se puede iniciar el semáforo  con lo siguiente:

sem_post(variable)

E indicar al otro thread que inicie si ejecución o hacer esperar el thread:

sem_wait(variable)

A continuacion un ejemplo de un programa en c con hilos:

jueves, 1 de marzo de 2012

Reporte de semana Distribuidos y Paralelos


En esta semana me dedique a la investigación del funcionamiento de los hilos en java y la sincronización de métodos, estos tipos de sincronizaciones funcionan para ejemplos como la cena de los filósofos, el productor y consumidor entre otros.


miércoles, 22 de febrero de 2012

Reporte 4 Configuración de firewall vía terminal

Aquí les dejo un pequeño aporte sobre la configuración del firewall, antes de iniciar, en esta semana tratamos de reparar un poco el desastre que teníamos con la ejecución del cluster y me gustaría nominar a Jose Guadalupe por que resolvió una de las partes importantes que era lo de montar correctamente las carpetas a los usuario mpi(general de los nodos) con la utilización del servidor nfs.

Solo ayude un poco mas al cluster y la configuración del firewall para desbloquear puertos esenciales como el 22.

liga: wiki


liga del código en java mostrando funcionalidad de los hilos en java(solo lo subí de la entrada anterior) :  wikihilos

Espero aportar más la siguiente semana con algún algoritmo mpi para el cluster







jueves, 16 de febrero de 2012

Clase de distribuidos

in this week we are moddify the porccees in the cluster

the problem we have is some permission about all node and ruter of this bloqued all ports

before this problem we need to created a new comon user for all node
 we can use te next line:

root@nodo :$/   add user mpi

in the user mpi need to generaed the keys
and the authorized keys and public key is in the folder .ssh

wiki explain this

next step is only agreed all permision in all node

esteban, me and obed help in this part, with generaed keyś and copy in all node  and we prove with me computer and estabn computer.

link of wiki:

Wiki cluster

Hilos java


Para utilizar hilos en java es sencillo y se pueden utilizar de dos maneras:
heredando desde un método Thread o utilizando una implementación con Runnable 

La segunda opción es utilizada cuando se hereda para métodos ya sean como swing, u otro tipo de clases y no es posible heredad de una clase llamada Thread.

Posteriormente lo que ejecute el hilo es necesario un método run donde están las instrucciones para nuestro hilo  y posteriormente se puede iniciar la ejecución del hilo con un método start()

Programa de ejemplo:


 Las funciones del arreglo total solo son para verificar el tamaño del arreglo y con otro método dividirá  el arreglo para enviarlo a diferentes hilos pero en este caso solo utiliza un hilo para mostrar su uso.



jueves, 9 de febrero de 2012

Reporte 2 MPI

En esta semana me dedique un poco a lo que es el el protocolo de transferencia de datos, ya contando con ssh el siguiente paso seria aplicar este protocolo para el envio de los datos para pode correr las aplicaciones ya sea en un nodo o en conjunto.

liga: WIKI 


Tercera seman de actividades: Posible implentación de programas en el cluster

miércoles, 8 de febrero de 2012

Lab MPI

Para poder utilizar esta libreria es necesario instalar la siguiente libreria, en el anterior post aparece  ya que es necesario para la realización del cluster.

sudo apt-get install mpich2

Posteriormente de instalar se puede hacer unas cuantas pruebas para provar que funciona la libreria.

En este caso suele probocar problemas al instalar el mpich2, problemas como al hora de entrar como "root" aparecen problemas en la linea de comandos, o al modificar ciertos archivos.

Para poder verificar que si esta bien el archivo nos tenemos que dirijir a la siguiete dirección desde la terminal:

 usuario:/etc/hosts

y verificamos que la primera linea sea de esta manera:


"127.0.0.1 hostname.domain hostname"
en caso de que no este de la misma manera al instalar mpich2 es necesario modificarla de la manera anterior.


Posteriormente que este corregido para comprobar que todo funcione podemos probarlo de esta manera en la terminal:


usuario:/ mpd &
de esta manera tambien se corre el cluster

y tiene que aparecer solos unos dijitos.

y tambien podemos verificar problemas con el comando mpdcheck.

martes, 31 de enero de 2012

Primera semana de de dsitribuidos

Link de wiki:

http://elisa.dyndns-web.com/progra/Cluster

Sistemas distribuidos

Sistemas  distribuidos y paralelos


Aporte mas que nada con los servicios y paquetes del ssh para poder comunicarse los nodos con claves de verificación entre todos los nodos esclavos y el nodo maestro.

Pequeño resumen expres:

Configuración de permisos para utilización de cluster

Instalación de paquetes "ssh" para el uso de permisos para servidores

En la terminal de ubuntu se puede instalar de las siguientes maneras

sudo apt-get install ssh

Y tambien se puede instalar desde el gestor de paquetes de symaptic
buscando el paquete con ssh

posteriormente de instalarlo para poder general claves de seguridad para compatir archivos entre una red desde la terminal se ejecuta de la siguiente manera:


Aquí les dejo el link de la wiki del cluster completo de todas las aportaciones del team:  wiki cluster