La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Algoritmos paralelos Lab. 1: Introducción

Presentaciones similares


Presentación del tema: "Algoritmos paralelos Lab. 1: Introducción"— Transcripción de la presentación:

1 Algoritmos paralelos Lab. 1: Introducción
Glen Rodríguez

2 Máquinas virtuales Vamos a usar máquinas virtuales en el laboratorio de este curso El concepto de máquina virtual surge con el sistema VM/370 de IBM en La idea principal es la de permitir ejecutar varios sistemas operativos simultáneamente sobre el mismo hardware. Para ello, separa las dos funciones básicas que realiza un sistema moderno: multiprogramación y abstracción del hardware. El corazón del sistema es conocido como monitor de máquina virtual, y se ejecuta sobre el hardware proporcionando varias máquinas virtuales al siguiente nivel de software (S.O.). Estas máquinas virtuales, son copias exactas del hardware desnudo. Por esto, cada una puede estar ejecutando cualquier sistema operativo.

3 Por qué? Recientemente, ha surgido VmWare, Xen, Virtual Box. Permiten ejecutar Windows, Linux, BSD, etc. de forma simultánea en la misma computadora. Por qué usarlo? Siempre es mejor probar las cosas en una máquina que no es crítica para el negocio y que, como en el caso de las máquinas virtuales, se puede recuperar en muy poco tiempo.

4

5 Definiciones Sistema operativo anfitrión o host
Es el S.O. que realmente corre en la computadora Junto con la capa de virtualización, simula un “hardware virtual” donde corre el: Sistema operativo invitado o guest Corre en un ambiente simulado

6 Funcionamiento (1) En primer lugar se crea una máquina virtual, para lo que se dispone de un asistente donde se indican varios detalles como el tamaño del disco duro, cantidad de RAM, conexiones de red, etc. El siguiente paso es, instalar el sistema operativo y luego el software restante. El proceso es idéntico a instalarlo en una computadora recién salida de fábrica. Esos pasos ya los hizo el personal FC. El resultado es un archivo donde esta contenido el sistema instalado

7 Funcionamiento (2) Inicie el sistema operativo anfitrión (host)
Copie la carpeta DebianCC con todos sus archivos a su disco duro Instale Virtual Box Corra Virtual Box Abra el archivo DebianCC.vbox (Máquina – Agregar) Ignore el mensaje de error

8

9 Funcionamiento (3) Haga los siguientes cambios en la configuración, haciendo click al botón “Configuración” En sistema, pestaña procesador, ponga 2 ó 4 procesadores (lo que soporte su computadora) y límite ejecución = 100 En sistema, placa base, suba la memoria a 512 En la pestaña de Aceleración activa las dos opciones que hay. En Almacenamiento, elimine el CDROM del IDE Controller

10

11

12

13 Funcionamiento (4) En USB, desactive el controlador USB 2.9
Cree en el sistema operativo host el directorio cc301 (por ejemplo en windows cree el directorio o carpeta c:\cc301) Añada esa carpeta, en la opción carpetas compartidas, el directorio cc301 Acepte y cierre configuración

14

15 Funcionamiento (5) Ya puede usar su máquina virtual dando click en Iniciar (flecha verde) De aceptar a las ventanas de mensajes Bootee la primera opción Login: usuario= root, password= admincc Ejecute: mount -t vboxsf cc301 /mnt TIENE que hacer mount cada vez que encienda este máquina virtual

16 Ejemplo de programa paralelo con MPI
Vaya al directorio /home/user (Haga: cd /home/user) Inicie el deamon de mip (haga: mpd &) Vea el programa hello.c Ejeciute el programa en 1 solo CPU y en 2 CPUs mpiexec –n 1 ./hello mpiexec –n 2 ./hello

17 #include <mpi.h>
#include <stdio.h> #include <string.h> #define BUFSIZE 128 #define TAG 0 int main(int argc, char *argv[]) { char idstr[32]; char buff[BUFSIZE]; int numprocs; int myid; int i; MPI_Status stat; MPI_Init(&argc,&argv); /* all MPI programs start with MPI_Init; all 'N' processes exist thereafter */ MPI_Comm_size(MPI_COMM_WORLD,&numprocs); /* find out how big the SPMD world is */ MPI_Comm_rank(MPI_COMM_WORLD,&myid); /* and this processes' rank is */

18 /* At this point, all programs are running equivalently, the rank distinguishes
the roles of the programs in the SPMD model, with rank 0 often used specially... */ if(myid == 0) { printf("%d: We have %d processors\n", myid, numprocs); for(i=1;i<numprocs;i++) sprintf(buff, "Hello %d! ", i); MPI_Send(buff, BUFSIZE, MPI_CHAR, i, TAG, MPI_COMM_WORLD); } MPI_Recv(buff, BUFSIZE, MPI_CHAR, i, TAG, MPI_COMM_WORLD, &stat); printf("%d: %s\n", myid, buff);

19 else { /* receive from rank 0: */ MPI_Recv(buff, BUFSIZE, MPI_CHAR, 0, TAG, MPI_COMM_WORLD, &stat); sprintf(idstr, "Processor %d ", myid); strncat(buff, idstr, BUFSIZE-1); strncat(buff, "reporting for duty\n", BUFSIZE-1); /* send to rank 0: */ MPI_Send(buff, BUFSIZE, MPI_CHAR, 0, TAG, MPI_COMM_WORLD); } MPI_Finalize(); /* MPI Programs end with MPI Finalize; this is a weak synchronization point */ return 0;


Descargar ppt "Algoritmos paralelos Lab. 1: Introducción"

Presentaciones similares


Anuncios Google