COMPUTACIÓN DE ALTA PERFORMANCE
|
|
- Cristián Rey Escobar
- hace 6 años
- Vistas:
Transcripción
1 COMPUTACIÓN DE ALTA PERFORMANCE MPI-I COMPUTACIÓN DE ALTA PERFORMANCE Curso 2011 Sergio Nesmachnow (sergion@fing.edu.uy) Santiago Iturriaga (siturria@fing.edu.uy) Gerardo Ares (gares@fing.edu.uy) Grupo de Procesamiento Paralelo Aplicado Centro de Cálculo
2 COMPUTACIÓN DE ALTA PERFORMANCE MPI-I TEMA 9 MESSAGE PASSING INTERFACE (MPI-I) Parte II
3 CONTENIDO Grupos. Tipos de datos. Topologías de procesos. Caso de estudio: Jacobi. COMPUTACIÓN DE ALTA PERFORMANCE MPI-I
4 9.6: GRUPOS COMPUTACIÓN DE ALTA PERFORMANCE MPI-I
5 COMPUTACIÓN DE ALTA PERFORMANCE MPI-I MANEJO DE GRUPOS Organización de tareas en grupos. Permite comunicaciones y operaciones colectivas sobre un conjunto de tareas relacionadas. Provee la base para implementar topologías de procesos. MPI provee rutinas para la manipulación de grupos: Pueden crearse o destruirse desde subconjunto de grupos de procesos. Crear un comunicador para el nuevo grupo. Realizar operaciones colectivas entre los procesos de un grupo. Organizar los grupos de procesos en topologías virtuales. Todas las tareas que pertenezcan al grupo deben participar en la invocación de la creación del grupo.
6 COMPUTACIÓN DE ALTA PERFORMANCE MPI-I MANEJO DE GRUPOS Definen un colección ordenada de procesos. Cada proceso que pertenece a un grupo tiene un único identificador asociado (rank) en ese grupo. Los procesos pueden pertenecer a más de un grupo a la vez. El rank es siempre relativo a un grupo. Tareas que no pertenezcan a un grupo no podrán participar en operaciones o comunicaciones colectivas que especifiquen ese grupo. Un grupo se asocia con un comunicador, por defecto todas las tareas están en el grupo asociado con MPI_COMM_WORLD. Los grupos pueden superponerse. MPI provee más de 40 subrutinas para manejar grupos, comunicadores, y topologías virtuales. Existencia del grupo vacío: MPI_GROUP_EMPTY. Los grupos son creados a partir de otro grupo. El grupo base es el asociado al comunicador inicial MPI_COMM_WORLD.
7 COMPUTACIÓN DE ALTA PERFORMANCE MPI-I MANEJO DE GRUPOS MPI_Group_difference (group1,group2,*newgroup) Crea un grupo diferencia de dos grupos. MPI_Group_incl (group,n,*ranks,*newgroup) Crea un grupo con las tareas listadas de un grupo existente. MPI_Group_excl (group,n,*ranks,*newgroup) Crea un grupo con las tareas no listadas de un grupo existente. MPI_Group_intersection (group1,group2,*newgroup) MPI_Group_union (group1,group2,*newgroup) MPI_Group_compare (group1,group2,*result) Compara dos grupos y retorna: MPI_IDENT si las tareas y su orden coinciden. MPI_SIMILAR si solo las tareas son iguales. MPI_UNEQUAL en otro caso.
8 COMPUTACIÓN DE ALTA PERFORMANCE MPI-I MANEJO DE GRUPOS MPI_Group_rank (group,*rank) Retorna el rango del proceso en el grupo (ó MPI_UNDEFINED si el proceso no es miembro del grupo). MPI_Group_size (group,*size) Retorna el tamaño (#procesos) del grupo. MPI_Group_free (group) Elimina un grupo. MPI_Comm_group (comm,*group) Determina el grupo asociado a un comunicador. MPI_Comm_create (comm,group,*newcomm) Crea un comunicador para un grupo (puede ser subconjunto), a partir del viejo. MPI_Comm_dup (comm,*newcomm) Duplica un comunicador existente (con toda su información).
9 COMPUTACIÓN DE ALTA PERFORMANCE MPI-I MANEJO DE GRUPOS #include "mpi.h" #include <stdio.h> #define NPROCS 8 #define MASTER 0 #define MSGSIZE 7 int main(int argc, char *argv[]) { int rank, new_rank; int ranks1[4] = {0,1,2,3}; int ranks2[4] = {4,5,6,7}; char *msg; MPI_Group orig_group, new_group; MPI_Comm new_comm; MPI_Init(&argc,&argv); MPI_Comm_rank(MPI_COMM_WORLD, &rank); /* Extract the original group handle */ MPI_Comm_group(MPI_COMM_WORLD, &orig_group);
10 COMPUTACIÓN DE ALTA PERFORMANCE MPI-I MANEJO DE GRUPOS /* Divide tasks into two distinct groups. First create new group and then a new communicator. Find new rank in new group and setup for the collective communication broadcast if MASTER. */ if (rank < NPROCS/2) { MPI_Group_incl(orig_group, NPROCS/2, ranks1, &new_group); MPI_Comm_create(MPI_COMM_WORLD, new_group, &new_comm); MPI_Group_rank (new_group, &new_rank); if (new_rank == MASTER) msg="group 1"; } else { MPI_Group_incl(orig_group, NPROCS/2, ranks2, &new_group); MPI_Comm_create(MPI_COMM_WORLD, new_group, &new_comm); MPI_Group_rank (new_group, &new_rank); if (new_rank == MASTER) msg="group 2"; } MPI_Bcast(&msg,MSGSIZE,MPI_CHAR,MASTER,new_comm); printf("rank= %d newrank= %d msg= %s\n",rank,new_rank,msg); MPI_Finalize(); }
11 COMPUTACIÓN DE ALTA PERFORMANCE MPI-I MANEJO DE GRUPOS Salida ejemplo: rank= 0 newrank= 0 msg= Group 1 rank= 1 newrank= 1 msg= Group 1 rank= 2 newrank= 2 msg= Group 1 rank= 3 newrank= 3 msg= Group 1 rank= 4 newrank= 0 msg= Group 2 rank= 5 newrank= 1 msg= Group 2 rank= 6 newrank= 2 msg= Group 2 rank= 7 newrank= 3 msg= Group 2
12 COMPUTACIÓN DE ALTA PERFORMANCE MPI-I 9.7: TOPOLOGIA DE PROCESOS
13 TOPOLOGÍA DE PROCESOS Topología Virtual: Permite organizar los procesos en topologías orientadas a las aplicaciones: Topología de Grafos. Topología cartesiana (Grillas). Método de alto nivel para manejar grupos de procesos. Permite sacar provecho del hardware de modo de optimizar comunicaciones entre dominios relacionados. COMPUTACIÓN DE ALTA PERFORMANCE MPI-I
14 COMPUTACIÓN DE ALTA PERFORMANCE MPI-I TOPOLOGÍA DE PROCESOS Topología Virtual:
15 TOPOLOGÍA CARTESIANA Muchos programas paralelos usan topologías como anillos y mallas, las cuales se definen en forma sencilla especificando el número de dimensiones y los procesos en cada coordenada. Función para crear una topología cartesiana: MPI_Cart_create(MPI_COMM_WORLD,ndim,dims,periods, Reorder,comm2d,ierrr) Crea un nuevo comunicador en el comunicador del primer argumento con la información de los otros seis argumentos. Funciones de consulta para topologías cartesianas: MPI_CartDim_get ( comm, ndims) MPI_Cart_get ( comm, maxdims, dims, periods, coords) MPI_Cart_rank ( comm, coords, rank) COMPUTACIÓN DE ALTA PERFORMANCE MPI-I
16 COMPUTACIÓN DE ALTA PERFORMANCE MPI-I TOPOLOGÍA CARTESIANA Ejemplo: ndim = 2, dims(1) = 4, dims(2) = 3, periods(1) = false, periods(2) = false, reorder = true
17 COMPUTACIÓN DE ALTA PERFORMANCE MPI-I TOPOLOGÍA GRAFO Utilizado cuando la topología de los procesos es más genérica. Los nodos (procesos) tienen vecinos. La vecindad puede ser asimétrica (un nodo puede ser vecino de otro, pero no al revés). Nodo Vecinos Índice Aristas , ,
18 TOPOLOGÍA GRAFO Creación de una topología: int MPI_Graph_create( MPI_Comm comm_old, int nnodes, int *index, int *edges, int reorder, MPI_Comm *comm_graph ) Comunicador sin topología. Cantidad de nodos en el grafo. Arreglo de enteros describiendo el grado de cada nodo. Arreglo de enteros describiendo el orden de las aristas. Posibilidad de reordenar el ranking de los nodos. Comunicador nuevo. COMPUTACIÓN DE ALTA PERFORMANCE MPI-I
19 TOPOLOGÍA GRAFO #include "mpi.h" MPI_Comm graph_comm; int nnodes = 4; /* number of nodes */ int index[4] = {1, 3, 5, 6}; /* definición de índices */ int edges[6] = {1, 0, 2, 1, 3, 2}; /* definición de aristas */ int reorder = 1; /* Permitir reordenar para eficiencia */ MPI_Graph_create(MPI_COMM_WORLD,nnodes,index,edges,reorder,graph_comm); Nodo Vecinos Índice Aristas , , COMPUTACIÓN DE ALTA PERFORMANCE MPI-I
20 COMPUTACIÓN DE ALTA PERFORMANCE MPI-I TOPOLOGÍA GRAFO Funciones para manipulación de topologías de Grafo: MPI_Graph_create (comm,nnodes,index,edges,reorder,comm_grap) MPI_Graphdims_get (comm,nnodes,nedges) MPI_Graph_get (comm,maxindex,maxedges,index,edges) MPI_Graph_neighbors_count(comm,rank,nneighbors) MPI_Graph_neighbors (comm,rank,maxneighbors,neighbors)
21 9.8: TIPOS DE DATOS COMPUTACIÓN DE ALTA PERFORMANCE MPI-I
22 COMPUTACIÓN DE ALTA PERFORMANCE MPI-I DEFINICIÓN DE TIPOS DE DATOS EN MPI MPI permite al usuario construir nuevos tipos de datos en tiempo de ejecución. Primitivas: MPI_Type_contiguous MPI_Type_vector MPI_Type_indexed MPI_Type_struct Tipos de datos predefinidos (para C): MPI_CHAR MPI_SHORT MPI_INT MPI_LONG MPI_UNSIGNED_CHAR MPI_UNSIGNED_SHORT MPI_UNSIGNED_INT MPI_UNSIGNED_LONG MPI_FLOAT MPI_DOUBLE MPI_LONG_DOUBLE MPI_BYTE MPI_PACKED
23 COMPUTACIÓN DE ALTA PERFORMANCE MPI-I DEFINICIÓN DE TIPOS DE DATOS EN MPI MPI_Type_contiguous (count,oldtype,*newtype) Produce un nuevo tipo de dato, formado por copias contiguas de un tipo existente. MPI_Type_vector (count,blocklength,stride,oldtype,*newtype) Similar al anterior, permite saltos regulares en los desplazamientos. MPI_Type_indexed (count,blocklens[],offsets[],old_type,*newtype) Crea un array indexado por los desplazamientos provistos. MPI_Type_hindexed Idéntica a MPI_Type_indexed, pero los offsets se especifican en bytes.
24 COMPUTACIÓN DE ALTA PERFORMANCE MPI-I Matriz A (100x100): EJEMPLO
25 DEFINICIÓN DE TIPOS DE DATOS EN MPI double a[100][100]; int separacion[100],longbloqs[100],i; MPI_Datatype superior;... /* Cálculo del inicion y tamaño de cada fila */ for (i=0;i<100;i++) { } separacion[i] = 100*i + i; longbloqs[i] = i ; /* Crea el tipo de dato para la parte triangular superior de la matriz */ MPI_Type_indexed(100,longbloqs,separacion,MPI_DOUBLE,&superior); MPI_Type_commit(&superior); /*... Entonces envía la parte... */ MPI_Send(a,1,superior,dest,tag,MPI_COMM_WORLD); COMPUTACIÓN DE ALTA PERFORMANCE MPI-I
26 COMPUTACIÓN DE ALTA PERFORMANCE MPI-I 9.9: CASO DE ESTUDIO (MÉTODO DE JACOBI)
27 CASO DE ESTUDIO Método de Jacobi para la resolución de sistemas de ecuaciones lineales: A x = b. Bajo ciertas condiciones, un sistema lineal puede resolverse mediante el método iterativo de Jacobi: Para calcular el paso k+1 solo se precisan datos del paso anterior k. El calculo puede paralelizarse realizando una división de dominio, con un modelo maestro-esclavo. COMPUTACIÓN DE ALTA PERFORMANCE MPI-I
28 CASO DE ESTUDIO Asumiendo el sistema de 3x3: Se realizará una división de dominio en 3 procesos. Cada proceso tomará la fila i, y calculará el xi correspondiente. Para esto necesita la fila i de la matriz A, el bi y la solución completa actual. El algoritmo general será: Distribuir datos iniciales. Iterar hasta cierta condición esperada. Calcular el xi Distribuir el xi a todos. COMPUTACIÓN DE ALTA PERFORMANCE MPI-I
29 CASO DE ESTUDIO Fase de distribución inicial: Dado que se necesita transmitir una fila a cada proceso, se puede utilizar un Scatter para la matriz A. Lo mismo ocurre para el vector b, por lo que se necesita una operación de scatter. En cambio, la solución inicial es necesario transmitirla para todos (broadcast). Fase de iteración: Cada proceso hace el cálculo de su xi. Para distribuir su valor se puede realizar un broadcast, o mejor un Allgather? COMPUTACIÓN DE ALTA PERFORMANCE MPI-I
MPI es un estándar de programación en paralelo mediante paso de mensajes que permite crear programas portables y eficientes.
Programación paralela en MPI MPI es un estándar de programación en paralelo mediante paso de mensajes que permite crear programas portables y eficientes. Introducción a MPI MPI fue creado en 1993 como
Brevísimo tutorial de MPI (Message Passing Interface) Miguel Vargas
Brevísimo tutorial de MPI (Message Passing Interface) Miguel Vargas 19/10/10 1/33 Contenido Contenido Clusters Beowulf MPI (Message Passing Interface) Comunicación entre procesos Un programa simple con
Paradigma de paso de mensajes
Paradigma de paso de mensajes Curso 2011-2012 Índice Visión lógica del paradigma de paso de mensajes. Operaciones básicas en paso de mensajes. Operaciones bloqueantes. Operaciones no bloqueantes. MPI:
UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INFORMÁTICA INGENIERÍA EN INFORMÁTICA. ARQUITECTURA DE COMPUTADORES II 19 de junio de 2007
UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INFORMÁTICA INGENIERÍA EN INFORMÁTICA. ARQUITECTURA DE COMPUTADORES II 19 de junio de 2007 Para la realización del presente examen se dispondrá de 2 1/2
Cómputo en paralelo con MPI
Cómputo en paralelo con MPI Miguel Vargas-Félix miguelvargas@cimat.mx CIMAT, October 9, 2015 1/35 Clusters Beowulf Master node External network Slave nodes Network switch Características: Tecnología estandar
Programación de aplicaciones paralelas con MPI (Message Passing Interface)
Programación de aplicaciones paralelas con MPI (Message Passing Interface) José Miguel Alonso Facultad de Informática UPV/EHU miguel@si.ehu.es 13/1/97 1. Introducción a MPI MPI (Message Passing Interface)
Índice. Índice. Máquinas de memoria distribuida. Arquitectura de un cluster. Arquitectura
Índice Programación en MPI 1. Máquinas de memoria distribuida 2. MPI 3. Arquitectura 4. Funciones básicas a. Arranque y parada b. Envío y recepción bloqueantes c. Envío y recepción NO bloqueantes d. Barreras
Introducción a MPI (Message Passing Interface)
Centro Nacional de Cálculo Científico Universidad de Los Andes CeCalCULA Mérida - Venezuela Introducción a MPI (Message Passing Interface) Francisco Hidrobo hidrobo@ciens.ula.ve Herbert Hoeger hhoeger@ing.ula.ve
Computacion de Alto Performance
Computacion de Alto Performance Abraham Zamudio Abraham Zamudio Computacion de Alto Performance 1/47 Indice 1 Algunos Aspectos Teoricos 2 Paralelismo Computacional 3 Linux Cluster Hardware Software 4 MPICH
Programación en Paralelo con MPI en Clusters Linux
Programación en Paralelo con MPI en Clusters Linux Francisco Javier Rodríguez Arias 13 de marzo de 2006 Problema y Motivación En física se requiere hacer muchos cálculos. Para eso se hacen programas de
Computación Matricial y Paralela
Computación Matricial y Paralela Programación híbrida Javier Cuenca Dpto. de Ingeniería y Tecnología de Computadores Domingo Giménez Dpto. de Informática y Sistemas Universidad de Murcia http://dis.um.es/~domingo
Computación Matricial y Paralela
Computación Matricial y Paralela Programación con Paso de Mensajes. MPI Javier Cuenca Dpto. de Ingeniería y Tecnología de Computadores Domingo Giménez Dpto. de Informática y Sistemas Universidad de Murcia
Guía práctica de estudio 03: Algoritmos
Guía práctica de estudio 03: Algoritmos Elaborado por: M.C. Edgar E. García Cano Ing. Jorge A. Solano Gálvez Revisado por: Ing. Laura Sandoval Montaño Guía práctica de estudio 03: Algoritmos Objetivo:
Instalación de un Super-Servidor de procesamiento paralelo basado en MPI
LABORATORIO: Simulación y Mecánica Computacional TRABAJO: Instalación de un Super-Servidor de procesamiento paralelo basado en MPI Idioma: Español Plataforma de Hardware: AMD64 Sistema Operativo: Debian
Estructuras en LabVIEW.
Estructuras en LabVIEW. Sumario: 1. Ejecución según el flujo de datos. 2. Estructuras básicas disponibles en LabVIEW. a) Estructura Sequence. b) Estructura Case. c) Estructura For Loop. d) Estructura While
Descripción y Contenido del Curso. Programación C++ Capacity Academy.
Descripción y Contenido del Curso Programación C++ Capacity Academy Educación en Tecnología de la Información Online, Efectiva y Garantizada Qué aprenderá si toma este Curso? En este curso aprenderás todo
Laboratorio de Paralelismo MPI: ejemplos y ejercicios
Laboratorio de Paralelismo MPI: ejemplos y ejercicios > Máquinas y directorios Vamos a trabajar con un cluster sencillo de 35 nodos: 32 nodos uniprocesador (Pentium IV, 3 GHz, 1,5 GB RAM, 2 MB cache) y
Tipos algebraicos y abstractos. Algoritmos y Estructuras de Datos I. Tipos algebraicos
Algoritmos y Estructuras de Datos I 1 cuatrimestre de 009 Departamento de Computación - FCEyN - UBA Programación funcional - clase Tipos algebraicos Tipos algebraicos y abstractos ya vimos los tipos básicos
Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1
Prologo Agradecimientos Nota de los autores Índice general I III V VII 1 Problemas, algoritmos y programas 1 1.1 Programas y la actividad de la programación.................... 4 1.2 Lenguajes y modelos
El método simplex 1. 1 Forma estándar y cambios en el modelo. 2 Definiciones. 3 Puntos extremos y soluciones factibles básicas. 4 El método simplex.
El método simplex Forma estándar y cambios en el modelo. Definiciones. Puntos extremos y soluciones factibles básicas. 4 El método simplex. Definiciones y notación. Teoremas. Solución factible básica inicial.
Guía práctica de estudio 03: Algoritmos
Guía práctica de estudio 03: Algoritmos Elaborado por: M.C. Edgar E. García Cano Ing. Jorge A. Solano Gálvez Revisado por: Ing. Laura Sandoval Montaño Guía práctica de estudio 03: Algoritmos Objetivo:
<tipo> Tipo de dato de los elementos del vector
Vectores y matrices Declaración Vector (array unidimiensional): []; Tipo de dato de los elementos del vector Identificador de la variable.
Operaciones de comunicación
Operaciones de comunicación Curso 2011-2012 Índice Importancia de las operaciones colectivas de comunicación. Difusión Uno-a-Todos. Reducción Todos-a-Uno. Difusión y Reducción Todos-a-Todos. Reducción
Complejidad computacional (Análisis de Algoritmos)
Definición. Complejidad computacional (Análisis de Algoritmos) Es la rama de las ciencias de la computación que estudia, de manera teórica, la optimización de los recursos requeridos durante la ejecución
Introducción al tipo Vector Cómo guardar una colección de datos conceptualmente relacionados? - almacenar los 100 primeros números primos, - al
Tema 6. Vectores 1. Introducción y Definiciones 2. Operaciones elementales con vectores 3. Definición y manejo de vectores (arrays arrays) en C 4. Operación de Recorrido secuencial de un vector 5. Operación
UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE CIENCIAS PRACTICA DE PROCESOS HERRAMIENTAS
UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE CIENCIAS PRACTICA DE PROCESOS HERRAMIENTAS Caso 1: 1.- Necesitamos un cd o Dvd para grabar alguna de las versiones de livecd de Linux. 2.- Liga de una
Implementación de un Cluster de Computadoras con software libre para Computación Científica en Jicamarca
Implementación de un Cluster de Computadoras con software libre para Computación Científica en Jicamarca A.Zamudio M. Milla Contenido de la Presentación 1 Radio Observatorio de Jicamarca 2 3 4 5 6 Índice
Tema 2. El lenguaje JAVA
Tema 2. El lenguaje JAVA Nomenclatura habitual Variables Tipos de variables Tipos primitivos Referencias Arrays Operadores Operadores de Java Precedencia de operadores Sentencias de control Sentencias
CLUSTER FING: PARALELISMO de MEMORIA DISTRIBUIDA
CLUSTER FING: PARALELISMO de MEMORIA DISTRIBUIDA SERGIO NESMACHNOW Centro de Cálculo, Instituto de Computación FACULTAD DE INGENIERÍA, UNIVERSIDAD DE LA REPÚBLICA, URUGUAY CONTENIDO Introducción: arquitecturas
Computación II. Introducción a Visual Basic
Computación II Introducción a Visual Basic Introducción a Visual Basic Microsoft Visual Basic es un conjunto de herramientas que posibilitan el desarrollo de aplicaciones para Windows de una manera rápida
Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones
Unidad Didáctica 2 Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.3 Índice
Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.
Tipos de Datos Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial. Entrada de datos Procesamientos de datos Salida de resultados Los
utilizar libros ni un ejemplo tráfico
UNIVERSIDAD CARLOS III DE MADRID INGENIERÍA EN INFORMÁTICA. ARQUITECTURA DE COMPUTADORES II 14 de junio de 2010 Para la realización del presente examen se dispondrá de 2 1/2 horas. NO se podrán utilizar
Lenguaje C Funciones. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia
Lenguaje C Funciones Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia Qué es una función o rutina/subrutina? Se presenta como un subalgoritmo
e-mail: mtoledo@dgrfsa.gov.ar
Arreglos Introducción a las Estructuras de Datos. Arreglos Unidimensionales: Vectores Vectores Estáticos en VB Vectores Dinámicos en VB Ordenando un Vector Introducción a las Estructuras de Datos. Una
Apuntadores (Punteros)
Apuntadores (Punteros) x9ff10 X int 209 SESION 7 *ptr Definición Llamados también punteros. Un Apuntador es una variable que contiene una dirección de memoria, la cual corresponderá a un dato o a una variable
FARMER en C y C++ bajo MPICH Antonio Carrillo Ledesma
FARMER en C y C++ bajo MPICH Antonio Carrillo Ledesma http://www.mmc.igeofcu.unam.mx/acl Objetivo El presente proyecto es sobre la implementación de un Maestro-Esclavo (farmer) en el lenguaje de programación
Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas
2 - Introducción al lenguaje Java, identificadores y comentarios. Carlos Montenegro Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas 1. Introducción: Java tiene como todos
ARQUITECTURAS PARA PROCESAMIENTO PARALELO
1 de 6 27/11/11 13:08 ARQUITECTURAS PARA PROCESAMIENTO PARALELO Facultad de Ingeniería de Sistemas Información para el Proyecto REYCYT RESUMEN Se presenta información general relativa a las diferentes
4. Operadores Operador asignación
Programación orientada a objetos con Java 43 4. Operadores Objetivos: a) Describir los operadores (aritméticos, incrementales, de relación, lógicos y de asignación) y los tipos de dato primitivos sobre
PROCESADORES DE LENGUAJE EXAMEN FINAL 8-JUNIO-07
PROCESADORES DE LENGUAJE EXAMEN FINAL 8-JUNIO-07 1. En qué método de análisis sintáctico puede suceder que en la construcción del árbol de derivación de las posibles expansiones de un símbolo no terminal
12 símbolos (13 si se incluye el espacio en blanco)
Universidad Rafael Urdaneta Facultad de Ingeniería Escuela de Ingeniería de Computación Cátedra: Programación I Laboratorio - Semestre 2012-1 (Sección L y P ) Profesor: Jaime Soto Examen #1 - Fecha: 09-03-2012
Elementos de un programa en C
Elementos de un programa en C Un programa en C consta de uno o más archivos. Un archivo es traducido en diferentes fases. La primera fase es el preprocesado, que realiza la inclusión de archivos y la sustitución
APUNTADORES. Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable.
APUNTADORES Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable. No hay que confundir una dirección de memoria con el contenido
Programación Estructurada
Programación Estructurada PROGRAMACIÓN ESTRUCTURADA 1 Sesión No. 7 Nombre: Estructuras de datos Contextualización Cuando un programa suele ser muy extenso, un problema clásico de los programadores es la
Paralelismo en Máquinas de Búsqueda
Paralelismo en Máquinas de Búsqueda Mauricio Marin Yahoo! Research, Santiago Julio 2007 Yahoo! Confidential Clusters de Computadores Clusters de Computadores mensajes Yahoo! Confidential Yahoo! Confidential
Tema 3: El Método Simplex. Algoritmo de las Dos Fases.
Tema 3: El Método Simplex Algoritmo de las Dos Fases 31 Motivación Gráfica del método Simplex 32 El método Simplex 33 El método Simplex en Formato Tabla 34 Casos especiales en la aplicación del algoritmo
TEORÍA DE GRAFOS Ingeniería de Sistemas
TEORÍA DE GRAFOS Ingeniería de Sistemas Código: MAT-31114 AUTORES Ing. Daniel Zambrano Ing. Viviana Semprún UNIDADES DE LA ASIGNATURA» UNIDAD I. Relaciones» UNIDAD II. Estructuras Algebraicas» UNIDAD III.
Funciones como Subprogramas en C++
FUNCIONES Cuando es necesario escribir programas complicados para resolver problemas complejos, una práctica común entre los programadores es descomponer el algoritmo (el diagrama de flujo) en varias partes.
Problema de las N Reinas. Resolución paralela
Problema de las N Reinas Resolución paralela Indice Introducción al problema Representación y Soluciones Resolución secuencial Resolución paralela Conclusiones Bibliografía 2 3 Introducción Introducción
Curso-Taller Programación Paralela con lenguaje C bajo Linux. MCC. Salazar Martínez Hilario
Curso-Taller Programación Paralela con lenguaje C bajo Linux MCC. Salazar Martínez Hilario Mayo 2011 Programación Paralela La que se realiza usando procesos separados. Interactúan intercambiando información.
TIPO DE DATO ABSTRACTO (TDA)
TIPO DE DATO ABSTRACTO (TDA) Ing. Eduard Antonio Lozano Córdoba Nota: Toda la información fue copiada de: Libros físicos e Internet Actividad Extra Clases #include #include int binario(int
Fundamentos de programación
Fundamentos de programación Estructuras de Control Estructuras de control Estructuras de control Estructura secuencial Estructura alternativa Sentencias if, if else Sentencias if else anidadas El operador
UNIVERSIDAD CENTRAL DE VENEZUELA FACULTAD DE INGENIERÍA ESCUELA DE INGENIERÍA CIVIL DEPARTAMENTO DE INGENIERÍA ESTRUCTURAL
117 TIPO DE 5 FUNDAMENTACIÓN El desarrollo de toda actividad productiva y/o cualquier proyecto requiere como insumo indispensable disponer, manejar y procesar información relevante para los fines que se
Objetivos formativos de Álgebra
Objetivos formativos de Álgebra Para cada uno de los temas el alumno debe ser capaz de hacer lo que se indica en cada bloque. Además de los objetivos que se señalan en cada tema, se considera como objetivo
Estructura de datos Tema 2: Tipos Abstractos de Datos (TADs)
Universidad de Valladolid Departamento de informática Campus de Segovia Estructura de datos Tema 2: Tipos Abstractos de Datos (TADs) Prof. Montserrat Serrano Montero ÍNDICE Tipos de datos El tipo abstracto
MÓDULO SE: SISTEMAS DE ECUACIONES
LABORATORIO DE COMPUTACIÓN CIENTÍFICA (Prácticas) Curso 2009-10 1 MÓDULO SE: SISTEMAS DE ECUACIONES Alumno: Lee detenidamente los enunciados. Copia las funciones y scripts que crees a lo largo de la practica,
Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria
1.2. Jerarquía de niveles de un computador Qué es un computador? Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria Es un sistema tan complejo
Método de diferencias finitas para ecuaciones diferenciales parciales elípticas. (Parte II)
Método de diferencias finitas para ecuaciones diferenciales parciales elípticas (Parte II) Métodos numéricos para sistemas lineales Solución numérica de EDPs requiere resolver sistemas de ecuaciones lineales
En este artículo vamos a conocer los tipos de datos que podemos manejar programando en C.
El primer objetivo de un programa informático es el manejo de datos. Un dato es toda aquella información que se puede tratar en un programa informático. En este artículo vamos a conocer los tipos de datos
Java para no Programadores
Java para no Programadores Programa de Estudio Java para no Programadores Aprende a programar con una de las tecnologías más utilizadas en el mercado de IT. Este curso está orientado a quienes no tienen
Proyecto. Estudio Experimental del Efecto del Paso de Mensajes en Ambiente GRID para el Desarrollo de Sistemas que Tratan con Problemas NP-Completos
Proyecto Estudio Experimental del Efecto del Paso de Mensajes en Ambiente GRID para el Desarrollo de Sistemas que Tratan con Problemas NP-Completos REPORTE FINAL Colaboradores en el proyecto Universidad
2^10 2^9 2^8 2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0 SUMA
Universidad Rafael Urdaneta Facultad de Ingeniería Escuela de Ingeniería de Computación Cátedra: Programación I Laboratorio - Semestre 2012-1 (Sección C ) Profesor: Jaime Soto Examen #1 - Fecha: 07-03-2012
Fundamentos de Programación Visual Basic
Pág. N. 1 Fundamentos de Programación Visual Basic Familia: Editorial: Tecnología de información y computación Macro Autor: Ricardo Walter Marcelo Villalobos ISBN: 978-612-304-236-3 N. de páginas: 280
Laboratorio de Paralelismo Prácticas MPI
Laboratorio de Paralelismo Prácticas MPI Tras los ejemplos MPI que hemos ido haciendo en el laboratorio, hay que realizar estos cuatro ejercicios. Los programas de partida los tienes en el directorio de
Tema: Clases y Objetos en C#. Parte II.
Programación II. Guía No. 5 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Clases y Objetos en C#. Parte II. Objetivos Implementar clases, objetos, propiedades, métodos y
Teoría de grafos y optimización en redes
Teoría de grafos y optimización en redes José María Ferrer Caja Universidad Pontificia Comillas Definiciones básicas Grafo: Conjunto de nodos (o vértices) unidos por aristas G = (V,E) Ejemplo V = {,,,,
Clases e instancias. Algoritmos y Estructuras de Datos I. Clases e instancias. memoria dinámica.
Algoritmos Estructuras de Datos I Primer cuatrimestre de 2014 Departamento de Computación - FCEN - UBA Programación imperativa - clase 10 Memoria dinámica listas enlazadas Clases e instancias El paquete
Escuela Politécnica Superior de Elche
EXAMEN DE SISTEMAS INFORMÁTICOS INDUSTRIALES ((SOLUCIÓN) (TEORÍA)jUJ jhshshs SEPTIEMBRE 2015 1. Indicar si las siguientes afirmaciones son verdaderas o falsas: (a) En C++, una clase derivada puede acceder
Universidad de Guanajuato Tronco Común de Ingenierías
Universidad de Guanajuato Tronco Común de Ingenierías Objetivo del Area: Diseñar modelos matemáticos y proponer alternativas de solución a problemas. Programa. AREA: Matemáticas MATERIA: Lenguaje de Programación
Sistemas de ficheros paralelos
Índice Sistemas Operativos Distribuidos Sistemas de ficheros paralelos Necesidad de E/S paralela Conexión de dispositivos Sistemas de ficheros distribuidos versus paralelos Técnicas de optimización de
Fundamentos de Programación 2017-I
Fundamentos de Programación 2017-I Fundamentos para la construcción de código a partir del algoritmo Objetivo: El alumno construirá programas utilizando el lenguaje de programación C a través de un análisis
UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS ESCUELA DE COMPUTACION
UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS ESCUELA DE COMPUTACION CICLO: 02/ 2012 Nombre de la Practica: Lugar de Ejecución: Tiempo Estimado: MATERIA: GUIA DE LABORATORIO #08 Uso de Arreglos
Unidad Nº V Listas Enlazadas
Instituto Universitario Politécnico Santiago Mariño Unidad Nº V Listas Enlazadas Lista Enlazadas Es una colección o secuencia de elementos dispuestos uno detrás de otro, en la que cada elemento se conecta
Programación estructurada (Introducción a lenguaje C)
Programación estructurada (Introducción a lenguaje C) M. en C. Sergio Luis Pérez Pérez UAM CUAJIMALPA, MÉXICO, D. F. Trimestre 15-I Sergio Luis Pérez (UAM CUAJIMALPA) Curso de programación estructurada
!MATRICES INVERTIBLES
Tema 4.- MATRICES INVERTIBLES!MATRICES INVERTIBLES!TÉCNICAS PARA CALCULAR LA INVERSA DE UNA MATRIZ REGULAR 1 Hemos hablado anteriormente de la matriz cuadrada unidad de orden n (I n ).. Es posible encontrar
PHP: Lenguaje de programación
Francisco J. Martín Mateos Carmen Graciani Diaz Dpto. Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla Tipos de datos Enteros Con base decimal: 45, -43 Con base octal: 043, -054
7.1 Consideraciones. Considere la búsqueda de un libro en una biblioteca. Considere la búsqueda de un nombre en el directorio telefónico.
86 Capítulo 7. ORDENAMIENTO. 7.1 Consideraciones. Considere la búsqueda de un libro en una biblioteca. Considere la búsqueda de un nombre en el directorio telefónico. Si los elementos a ordenar son compuestos
ANEXO XVII DE LA RESOLUCION N
Hoja 1 de 7 UNIVERSIDAD NACIONAL DE CÓRDOBA Facultad de Ciencias Exactas Físicas y Naturales República Argentina Programa de: Código: Informática Carrera: Materia común Res. Nº Plan: Puntos:3.5 Escuela:
Trabajo Práctico N 5: ESPACIOS VECTORIALES. Ejercicio 1:
6 Trabajo Práctico N 5: ESPACIOS VECTORIALES Ejercicio : Determine si los siguientes conjuntos con las operaciones definidas en cada caso son o no espacios vectoriales. Para aquellos que no lo sean, indique
Uso avanzado de punteros
Uso avanzado de punteros Mario Medina C. mariomedina@udec.cl Punteros Contienen direcciones de memoria Punteros a tipos de datos simples int, char, float, double Punteros a estructuras Punteros a vectores
Bloques Aritméticos - Multiplicadores
Bloques Aritméticos - Multiplicadores La multiplicación es una operación cara (en términos de recursos) y lenta Este hecho ha motivado la integración de unidades completas de multiplicación en los DSPs
Tema 9. Algoritmos sobre listas. Programación Programación - Tema 9: Algoritmos sobre listas
Tema 9 Algoritmos sobre listas Programación 2015-2016 Programación - Tema 9: Algoritmos sobre listas 1 Tema 9. Algoritmos sobre listas Algoritmos sobre Arrays. Búsqueda. Inserción. Ordenación. Programación
INDICE Prologo Capitulo 1. Algoritmos y programas Capitulo 2. La resolución de los problemas con computadoras y las herramientas de programación
INDICE Prologo XI Capitulo 1. Algoritmos y programas 1.1. Configuraciones de una computadora 1 1.2. Lenguajes de programación 2 1.3. Resolución de problemas 1.3.1. Fase de resolución del problema 3 1.3.1.1.
GESTIÓN DE ARCHIVOS. Presentado por: Alba Arosemena Alma Vargas Hospicia Mendoza Roselvira Fernández Ahías Arosemena
GESTIÓN DE ARCHIVOS Presentado por: Alba Arosemena Alma Vargas Hospicia Mendoza Roselvira Fernández Ahías Arosemena INTRODUCCIÓN En la mayoría de las aplicaciones, el archivo es el elemento central. La
GUIA 2: Repaso sobre uso de C#. Funciones, métodos y arreglos.
1 Programación II, Guía 2 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II GUIA 2: Repaso sobre uso de C#. Funciones, métodos y arreglos. Objetivos Utilizar la sintaxis de las funciones
la solución a una ecuación cuadrática solicitando al usuario los términos de dicha ecuación.
ALGORITMOS SECUENCIALES: La estructura secuencial es aquella en la que una acción (instrucción) sigue a otra en secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente
Java para programadores
Java para programadores Java y Servicios Web I Master en Ingeniería Matemática Manuel Montenegro Dpto. Sistemas Informáticos y Computación Desp. 467 (Mat) montenegro@fdi.ucm.es Contenidos Variables. Tipos
Programación 1 Tema 3. Información, datos, operaciones y expresiones
Programación 1 Tema 3 Información, datos, operaciones y expresiones Índice Datos y tipos de datos Datos primitivos en C++ Expresiones e instrucción de asignación Datos y tipos de datos Problema información
Matrices. José Vicente Romero Bauset. ETSIT-curso 2009/2010. José Vicente Romero Bauset Tema 1.- Matrices. 1
Matrices José Vicente Romero Bauset ETSIT-curso 2009/2010 José Vicente Romero Bauset Tema 1- Matrices 1 Introducción Por qué estudiar las matrices? Son muchas las situaciones de la vida real en las que
Tema 13: Apuntadores en C
Tema 13: Apuntadores en C M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo A. Franco) 1 Contenido Introducción
Una operación interna: Suma Una operación externa: Multiplicación por un escalar
El conjunto R n Es el conjunto de las n-adas formadas por el producto cartesiano RRR.R, donde R es el conjunto de los números reales. Así pues, dos elementos X y Y de R n serán iguales si y solo si tienen
Universidad de Cantabria. Facultad de Ciencias Ingeniería en Informática. Ingeniería del Software II
Universidad de Cantabria. Facultad de Ciencias Ingeniería en Informática. Ingeniería del Software II Ejercicios del Tema 1: Construcción y Pruebas del Software Ejercicio 1 Se desean realizar pruebas de
Grafos. Algoritmos y Estructuras de Datos III
Grafos Algoritmos y Estructuras de Datos III Grafos Un grafo G = (V, X ) es un par de conjuntos, donde V es un conjunto de puntos o nodos o vértices y X es un subconjunto del conjunto de pares no ordenados
TEMA 1. MATRICES, DETERMINANTES Y APLICACIÓN DE LOS DETERMINANTES. CONCEPTO DE MATRIZ. LA MATRIZ COMO EXPRESIÓN DE TABLAS Y GRAFOS.
TEMA 1. MATRICES, DETERMINANTES Y APLICACIÓN DE LOS DETERMINANTES. 1. MATRICES. CONCEPTO DE MATRIZ. LA MATRIZ COMO EXPRESIÓN DE TABLAS Y GRAFOS. DEFINICIÓN: Las matrices son tablas numéricas rectangulares
INSTRUMENTACIÓN N AVANZADA. ARRAYS EN LABVIEW Relacionando Datos Arrays y Clusters
ARRAYS EN LABVIEW Relacionando Datos Arrays y Clusters Objetivos 1. Event Structure 2. Arrays 3. Funciones 4. Ejercicios 5. Cluster 6. Simulación de adquisición de señales de tensión 7. Adquisicion de
DISEÑO DEL SISTEMA DE INFORMACION (DSI)
DISEÑO DEL SISTEMA DE INFORMACION (DSI) El objetivo del proceso de Diseño del Sistema de Información (DSI) es la definición de la arquitectura del y del entrono tecnológico que le va a dar soporte, junto
Tema 14: Arreglos estáticos en C
Tema 14: Arreglos estáticos en C Solicitado: Ejercicios 05: Ejercicios con arreglos estáticos unidimensionales M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom
Algoritmos y programas. Algoritmos y Estructuras de Datos I
Algoritmos y programas Algoritmos y Estructuras de Datos I Primer cuatrimestre de 2012 Departamento de Computación - FCEyN - UBA Programación funcional - clase 1 Funciones Simples - Recursión - Tipos de
TEMA 11 CONMUTACIÓN DE PAQUETES
TEMA 11 CONMUTACIÓN DE PAQUETES La conmutación de circuitos fue diseñada para transmisión de voz o Recursos dedicados a una llamada en particular o Parte considerable del tiempo la conexión de datos no