¡Recomienda este blog!

jueves, 23 de septiembre de 2010

Modelo MPI: Paso de Mensajes

 La principal característica del modelo de programación de paso de mensajes es que los procesos se comunican entre sí enviando mensajes.

 En el paso de mensajes los datos contenidos en unas variables de un sub-programa se mueven a otro sub-programa.

 En general la siguiente información debe suministrarse en la transferencia de mensajes:
  1. Proceso que envía
  2. Dónde están los datos a enviar
  3. Clase de datos que se envían
  4. Cuántos datos hay
  5. Quién o quienes (procesos) reciben los datos
  6. Dónde deben dejarse los datos recibidos
  7. Cuántos datos puede recibir el proceso destino
Ejemplo: MPI

¿Qué es?
  • Una especificación de una librería de paso de mensajes.
  • No es un producto concreto.
  • Un proceso MPI es un programa en C o Fortran77 que se comunica.
con otros procesos MPI mediante llamadas a las subrutinas MPI.

¿Para qué?
  • Programación paralela sobre estructuras SPMD y MIMD (computadores paralelos, clusters, redes heterogéneas).
¿Por qué?
  • Portabilidad del código fuente.
  • Permite implementaciones eficientes en un gran rango de arquitecturas.
  • No existía un a biblioteca estándar ampliamente aceptada.
Ejemplo de C:

#include
#include "mpi.h"

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

MPI Status st;
int mid, np , num;

MPI Init ( &argc, &argv );
MPI Comm_size( MPI_COMM_WORLD, &np );
MPI Comm_rank ( MPI_COMM_WORLD, &mid );

printf ( "Soy el proceso %d de %d\n", mid, np );

if ( mid == 0 ){

printf(“Dame un número entero: );
scanf(“%d”,&num);
num++;
MPI_Send( &num, 1, MPI_INT, 1 , 0 , MPI_COMM_WORLD);
MPI_Recv( &num, 1, MPI_INT, np - 1 , 0 , MPI_COMM_WORLD, &st);
printf("El resultado es: %d\n", num);

}else{

MPI_Recv(&num, 1 ,MPI_INT, mid - 1, 0 , MPI_COMM_WORLD, &st);
num++;
MPI_Send(&num, 1 ,MPI_INT, (mid+1)%np ,0 ,MPI_COMM_WORLD);
}
MPI Finalize();

} //FIn

miércoles, 15 de septiembre de 2010

Organización de computadores + Procesador MIPS

El pasado día 13/09/10 y con motivo del comienzo de este nuevo curso comenzamos la asignatura de Organización de computadores. Ya adaptados a los nuevos planes de estudio, cual fue nuestra sorpresa cuando nos comunicaron que todas las prácticas serán realizadas con un procesador MIPS.

Para aquellos que nunca han oído hablar de esta familia de procesadores deciros que MIPS (siglas de Microprocessor without Interlocked Pipeline Stages) se conoce a toda una familia de microprocesadores de arquitecturaRISC desarrollados por MIPS Technologies.

Los diseños del MIPS son utilizados en la línea de productos informáticos de SGI; en muchos sistemas embebidos; en dispositivos para Windows CE; routersCisco; y videoconsolas como la Nintendo 64 o las Sony PlayStation, PlayStation 2 y PlayStation portable.

Debido a que los diseñadores crearon un conjunto de instrucciones tan claro, los cursos sobre arquitectura de computadores en universidades y escuelas técnicas a menudo se basan en la arquitectura MIPS. El diseño de la familia de CPU's MIPS influiría de manera importante en otras arquitecturas RISCposteriores como los DEC Alpha.

Para la realización de las prácticas estamos usando un simulador llamado Simula3MS, desarrollado por la universidad de la Coruña, el cual me recuerda a nuestro querido compañero de batalla OllyDbg.


Por último os dejo un ejemplo sencillo del uso de este simulador, lo único que hace es contar el número de caracteres de una cadena y almacenarlo en memoria.

#Segmento de datos
.data

#.ascii str --> Almacena la cadena str en memoria, ya la termina con el caracter nulo.
cadena: .asciiz "Esto es una prueba "
longitud: .word 0

.text
.globl main

main:
#cargo en $t3 la cadena.
la $t3,cadena

#cargo en $t5 longitud y despues su valor.
la $t5, longitud
lb $t5, 0($t5)

bucle:
lb $t4, 0($t3) # carácter primero de t3
beq $t4,$zero,fin # si es NULL bifurcar a fin
addi $t5,$t5,1 # sumamos uno al contador
addi $t3,$t3,1 # apuntamos al siguiente carácter
j bucle # repetimos

# aquí se llega cuando se encuentra el NULL
fin:
la $t1, longitud #Almacenamos el resultado en la direccion de longitud.
sb $t5, 0($t1) #Almacena el byte de $t5 en la direccion de $t1+0 que es la de longitud
nop

martes, 14 de septiembre de 2010

SIMO NETWORK 2010

Hola a tod@s, os comunico que hoy mismo he recibido la invitación para visitar Simo Network 2010, este año son solo 3 días desde el 5 de octubre hasta el 7 estos incluidos y cae entre semana, asi que como el año pasado nos quedaremos sin ir.

De todas formas, para aquellos que si puedan asistir, deciros que si no os mandan invitación, podéis registraros como profesionales en:

http://www.visitantes.ifema.es/ControlUsuarios/login.htm?idioma=es&url=http://www.pre-registro.ifema.es/Pre_registro3/ifema/preinscripciones/registros.jsp?codferia=5325%26tipo=esp

Lo que no estoy seguro es que así, podáis entrar de forma gratuita al recinto.

Este año se sigue notando que la feria no tiene todas las empresas asociadas que nos gustaría, pero quiero pensar que irá creciendo.

Por último me gustaría destacar algunas actividades de interés este 2010.

5 de octubre 2010
SALA 1
17:30 - 18:30
Consejos prácticos para implantaciones rentables

SALA 2
13:00 - 14:00
"Valor de negocio de la nueva arquitectura IBM eX5 para el mundo Intel: ofrezca más que rendimiento"
16:00 - 17:00
“Oportunidades de Negocio para el Canal con Dell – Presentación del programa de canal PartnerDirect”
17:30 - 18:30
“Oportunidades de Negocio para el Canal con Dell – Cómo ganar proyectos con las soluciones de almacenamiento iSCSI de Dell “


6 de octubre 2010
SALA 1
11:30 - 12:30
“Pandalabs. Conoce como se comporta un virus y aprende a combatirlo”
13:00 - 14:00
“Construye y gestiona la política de seguridad que se adapta a tus clientes”
16:00 - 17:00
"Acelerando el valor de su negocio con Smarter Systems: optimizando Hardware, Software y Servicios"
17:30 - 18:30

SALA 2
17:30 - 18:30
TPV, una categoría con alto potencial de crecimiento y rentabilidad de la mano de HP y SAGE


7 de Octubre de 2010
SALA 1
11:30 - 12:30
“Procesos, herramientas y oportunidades diseñadas para el canal”
13:00 - 14:00
"Nuevas oportunidades de Negocio a través del Cloud y la Convergencia"

SALA 2
11:30 - 12:30
“Cómo mejorar la eficiencia en el Almacenamiento y Protección de Datos de sus clientes mediante tecnologías de Deduplicación, Archivado y Virtualización”
16:00 - 17:00
"Samsung, Virtualización real y Soluciones de impresión: La revolución en el puesto de trabajo"