Una Biblioteca Numérica Paralela para UPC
|
|
- Arturo Navarrete Lucero
- hace 6 años
- Vistas:
Transcripción
1 1/32 Una Biblioteca Numérica Paralela para UPC Jorge González-Domínguez 1 *, María J. Martín 1, Guillermo L. Taboada 1, Juan Touriño 1, Ramón Doallo 1, Andrés Gómez 2 1 Grupo de Arquitectura de Computadores Universidad de A Coruña {jgonzalezd,mariam,taboada, juan,doallo}@udc.es 2 Centro de Supercomputación de Galicia (CESGA) Santiago de Compostela {agomez}@cesga.es XX Jornadas de Paralelismo, Universidad de A Coruña
2 2/32 1 Introducción Unified Parallel C para Computación de Altas Prestaciones Computación Numérica en UPC 2 Funciones privadas Funciones compartidas 3 4 5
3 3/32 Introducción Unified Parallel C para Computación de Altas Prestaciones Computación Numérica en UPC 1 Introducción Unified Parallel C para Computación de Altas Prestaciones Computación Numérica en UPC
4 Unified Parallel C para Computación de Altas Prestaciones Computación Numérica en UPC UPC: una Alternativa Adecuada para la Era Multi-core Modelos de programación: Tradicionalmente: Memoria compartida o distribuida Reto: Arquitecturas con memoria híbrida PGAS (Partitioned Global Address Space) Lenguajes PGAS: UPC -> C Titanium -> Java Co-Array Fortran -> Fortran Compiladores UPC: Berkeley UPC GCC (Intrepid) Michigan TU Compiladores de HP, IBM y Cray 4/32
5 Unified Parallel C para Computación de Altas Prestaciones Computación Numérica en UPC UPC: una Alternativa Adecuada para la Era Multi-core Modelos de programación: Tradicionalmente: Memoria compartida o distribuida Reto: Arquitecturas con memoria híbrida PGAS (Partitioned Global Address Space) Lenguajes PGAS: UPC -> C Titanium -> Java Co-Array Fortran -> Fortran Compiladores UPC: Berkeley UPC GCC (Intrepid) Michigan TU Compiladores de HP, IBM y Cray 4/32
6 Unified Parallel C para Computación de Altas Prestaciones Computación Numérica en UPC UPC: una Alternativa Adecuada para la Era Multi-core Modelos de programación: Tradicionalmente: Memoria compartida o distribuida Reto: Arquitecturas con memoria híbrida PGAS (Partitioned Global Address Space) Lenguajes PGAS: UPC -> C Titanium -> Java Co-Array Fortran -> Fortran Compiladores UPC: Berkeley UPC GCC (Intrepid) Michigan TU Compiladores de HP, IBM y Cray 4/32
7 5/32 Introducción Unified Parallel C para Computación de Altas Prestaciones Computación Numérica en UPC Identificadores importantes THREADS -> Número total de threads en ejecución MYTHREAD -> Número del thread actual #include<stdio.h> #include<upc.h> int main() { printf("thread %d de %d: Hola Mundo\n", MYTHREAD, THREADS);} $ upcc -o holamundo holamundo.upc $ upcrun -n 3 holamundo Thread 0 de 3: Hola Mundo Thread 2 de 3: Hola Mundo Thread 1 de 3: Hola Mundo
8 5/32 Introducción Unified Parallel C para Computación de Altas Prestaciones Computación Numérica en UPC Identificadores importantes THREADS -> Número total de threads en ejecución MYTHREAD -> Número del thread actual #include<stdio.h> #include<upc.h> int main() { printf("thread %d de %d: Hola Mundo\n", MYTHREAD, THREADS);} $ upcc -o holamundo holamundo.upc $ upcrun -n 3 holamundo Thread 0 de 3: Hola Mundo Thread 2 de 3: Hola Mundo Thread 1 de 3: Hola Mundo
9 5/32 Introducción Unified Parallel C para Computación de Altas Prestaciones Computación Numérica en UPC Identificadores importantes THREADS -> Número total de threads en ejecución MYTHREAD -> Número del thread actual #include<stdio.h> #include<upc.h> int main() { printf("thread %d de %d: Hola Mundo\n", MYTHREAD, THREADS);} $ upcc -o holamundo holamundo.upc $ upcrun -n 3 holamundo Thread 0 de 3: Hola Mundo Thread 2 de 3: Hola Mundo Thread 1 de 3: Hola Mundo
10 6/32 Introducción Unified Parallel C para Computación de Altas Prestaciones Computación Numérica en UPC Declaración de arrays compartidos shared [block_factor] A [size] size -> Tamaño del array block_factor -> Número de elementos consecutivos afines al mismo thread -> Tamaño de los trozos
11 7/32 Introducción Unified Parallel C para Computación de Altas Prestaciones Computación Numérica en UPC Bibliotecas BLAS Basic Linear Algebra Subprograms Especificación de un conjunto de funciones numéricas Muy usada por científicos e ingenieros SparseBLAS y PBLAS (BLAS paralelo) Implementaciones BLAS Genéricas y código abierto GSL -> GNU Optimizadas para ciertas arquitecturas MKL -> Intel ACML -> AMD CXML -> Compaq MLIB -> HP
12 7/32 Introducción Unified Parallel C para Computación de Altas Prestaciones Computación Numérica en UPC Bibliotecas BLAS Basic Linear Algebra Subprograms Especificación de un conjunto de funciones numéricas Muy usada por científicos e ingenieros SparseBLAS y PBLAS (BLAS paralelo) Implementaciones BLAS Genéricas y código abierto GSL -> GNU Optimizadas para ciertas arquitecturas MKL -> Intel ACML -> AMD CXML -> Compaq MLIB -> HP
13 8/32 Introducción Unified Parallel C para Computación de Altas Prestaciones Computación Numérica en UPC Nivel BLAS TnombreBLAS Acción BLAS1 BLAS2 BLAS3 Tcopy Tswap Tscal Taxpy Tdot Tnrm2 Tasum itamax itamin Tgemv Ttrsv Tger Tgemm Ttrsm Copia de un vector Intercambio de los elementos de dos vectores Multiplicación de un vector por un escalar Actualización de un vector usando los datos de otro: y = α x + y Producto escalar de dos vectores Norma euclídea Suma del valor absoluto de todos los elementos de un vector Encuentra el índice del vector con el valor máximo Encuentra el índice del vector con el valor mínimo Producto matriz-vector Resolución de un sistema triangular de ecuaciones lineales Producto tensorial de dos vectores Producto de dos matrices Resolución de un bloque de sistemas triangulares de ecuaciones lineales
14 9/32 Introducción Unified Parallel C para Computación de Altas Prestaciones Computación Numérica en UPC Computación numérica en UPC Ninguna biblioteca numérica para lenguajes PGAS Alternativas del programador: Implementar las rutinas por si mismo Mayor esfuerzo Peor rendimiento Cambiar a un modelo de programación con bibliotecas numéricas Memoria distribuida -> MPI Memoria compartida -> OpenMP Consecuencia: Barrera a la productividad de los lenguajes PGAS
15 9/32 Introducción Unified Parallel C para Computación de Altas Prestaciones Computación Numérica en UPC Computación numérica en UPC Ninguna biblioteca numérica para lenguajes PGAS Alternativas del programador: Implementar las rutinas por si mismo Mayor esfuerzo Peor rendimiento Cambiar a un modelo de programación con bibliotecas numéricas Memoria distribuida -> MPI Memoria compartida -> OpenMP Consecuencia: Barrera a la productividad de los lenguajes PGAS
16 9/32 Introducción Unified Parallel C para Computación de Altas Prestaciones Computación Numérica en UPC Computación numérica en UPC Ninguna biblioteca numérica para lenguajes PGAS Alternativas del programador: Implementar las rutinas por si mismo Mayor esfuerzo Peor rendimiento Cambiar a un modelo de programación con bibliotecas numéricas Memoria distribuida -> MPI Memoria compartida -> OpenMP Consecuencia: Barrera a la productividad de los lenguajes PGAS
17 10/32 Introducción Funciones privadas Funciones compartidas 1 Introducción 2 Funciones privadas Funciones compartidas 3 4 5
18 11/32 Introducción Análisis de trabajos previos Funciones privadas Funciones compartidas Aproximación con memoria distribuida (Parallel -MPI- BLAS) Paradigma de Paso de Mensajes Sólo memoria privada Nuevas estructuras para representar matrices y vectores distribuidos Difíciles de entender Funciones para ayudar a trabajar con ellas Creación Inicialización de los datos Eliminación Nueva aproximación Uso de los arrays compartidos de UPC
19 11/32 Introducción Análisis de trabajos previos Funciones privadas Funciones compartidas Aproximación con memoria distribuida (Parallel -MPI- BLAS) Paradigma de Paso de Mensajes Sólo memoria privada Nuevas estructuras para representar matrices y vectores distribuidos Difíciles de entender Funciones para ayudar a trabajar con ellas Creación Inicialización de los datos Eliminación Nueva aproximación Uso de los arrays compartidos de UPC
20 11/32 Introducción Análisis de trabajos previos Funciones privadas Funciones compartidas Aproximación con memoria distribuida (Parallel -MPI- BLAS) Paradigma de Paso de Mensajes Sólo memoria privada Nuevas estructuras para representar matrices y vectores distribuidos Difíciles de entender Funciones para ayudar a trabajar con ellas Creación Inicialización de los datos Eliminación Nueva aproximación Uso de los arrays compartidos de UPC
21 12/32 Introducción Funciones privadas Funciones compartidas Dos funciones por cada rutina BLAS Funciones privadas Datos de entrada y salida en memoria privada Distribución de los datos interna a la función -> ni escogida ni conocida por el usuario Funciones compartidas Datos de entrada y salida en memoria compartida Distribución de datos elegida por el usuario
22 12/32 Introducción Funciones privadas Funciones compartidas Dos funciones por cada rutina BLAS Funciones privadas Datos de entrada y salida en memoria privada Distribución de los datos interna a la función -> ni escogida ni conocida por el usuario Funciones compartidas Datos de entrada y salida en memoria compartida Distribución de datos elegida por el usuario
23 12/32 Introducción Funciones privadas Funciones compartidas Dos funciones por cada rutina BLAS Funciones privadas Datos de entrada y salida en memoria privada Distribución de los datos interna a la función -> ni escogida ni conocida por el usuario Funciones compartidas Datos de entrada y salida en memoria compartida Distribución de datos elegida por el usuario
24 13/32 Introducción Funciones privadas Funciones compartidas upc_blas_[p]tnombreblas valor de p _ -> versión compartida p -> versión privada valor de T i -> integer l -> long f -> float d -> double 2 versiones *4 tipos de datos *14 rutinas = 112 funciones
25 14/32 Introducción Funciones privadas Funciones compartidas y = a x + y versión privada -> upc_blas_pdaxpy versión compartida ->upc_blas_daxpy
26 Funciones privadas Funciones compartidas int upc_blas_pdaxpy(const int size, const double a, const int thread_src, const double *x, const int thread_dst, double *y); Parameters size. Tamaño del vector a. Factor a multiplicar x, y. Punteros privados a las posiciones de la memoria privada donde se almacenan los vectores thread_src. [0,THREADS] Thread con los vectores de entrada x e y en su memoria privada Si THREADS -> Vectores replicados en todas las memorias privadas thread_dst. [0,THREADS] Thread con la memoria privada donde se escribirá el vector de salida Si THREADS -> Salida replicada en todas las memorias privadas -> BROADCAST 15/32
27 Funciones privadas Funciones compartidas int upc_blas_pdaxpy(const int size, const double a, const int thread_src, const double *x, const int thread_dst, double *y); Parameters size. Tamaño del vector a. Factor a multiplicar x, y. Punteros privados a las posiciones de la memoria privada donde se almacenan los vectores thread_src. [0,THREADS] Thread con los vectores de entrada x e y en su memoria privada Si THREADS -> Vectores replicados en todas las memorias privadas thread_dst. [0,THREADS] Thread con la memoria privada donde se escribirá el vector de salida Si THREADS -> Salida replicada en todas las memorias privadas -> BROADCAST 15/32
28 Funciones privadas Funciones compartidas int upc_blas_pdaxpy(const int size, const double a, const int thread_src, const double *x, const int thread_dst, double *y); Parameters size. Tamaño del vector a. Factor a multiplicar x, y. Punteros privados a las posiciones de la memoria privada donde se almacenan los vectores thread_src. [0,THREADS] Thread con los vectores de entrada x e y en su memoria privada Si THREADS -> Vectores replicados en todas las memorias privadas thread_dst. [0,THREADS] Thread con la memoria privada donde se escribirá el vector de salida Si THREADS -> Salida replicada en todas las memorias privadas -> BROADCAST 15/32
29 Funciones privadas Funciones compartidas int upc_blas_pdaxpy(const int size, const double a, const int thread_src, const double *x, const int thread_dst, double *y); Parameters size. Tamaño del vector a. Factor a multiplicar x, y. Punteros privados a las posiciones de la memoria privada donde se almacenan los vectores thread_src. [0,THREADS] Thread con los vectores de entrada x e y en su memoria privada Si THREADS -> Vectores replicados en todas las memorias privadas thread_dst. [0,THREADS] Thread con la memoria privada donde se escribirá el vector de salida Si THREADS -> Salida replicada en todas las memorias privadas -> BROADCAST 15/32
30 Funciones privadas Funciones compartidas int upc_blas_pdaxpy(const int size, const double a, const int thread_src, const double *x, const int thread_dst, double *y); Parameters size. Tamaño del vector a. Factor a multiplicar x, y. Punteros privados a las posiciones de la memoria privada donde se almacenan los vectores thread_src. [0,THREADS] Thread con los vectores de entrada x e y en su memoria privada Si THREADS -> Vectores replicados en todas las memorias privadas thread_dst. [0,THREADS] Thread con la memoria privada donde se escribirá el vector de salida Si THREADS -> Salida replicada en todas las memorias privadas -> BROADCAST 15/32
31 Funciones privadas Funciones compartidas int upc_blas_pdaxpy(const int size, const double a, const int thread_src, const double *x, const int thread_dst, double *y); Parameters size. Tamaño del vector a. Factor a multiplicar x, y. Punteros privados a las posiciones de la memoria privada donde se almacenan los vectores thread_src. [0,THREADS] Thread con los vectores de entrada x e y en su memoria privada Si THREADS -> Vectores replicados en todas las memorias privadas thread_dst. [0,THREADS] Thread con la memoria privada donde se escribirá el vector de salida Si THREADS -> Salida replicada en todas las memorias privadas -> BROADCAST 15/32
32 16/32 Introducción Funciones privadas Funciones compartidas int upc_blas_daxpy(const int block_size, const int size, const double a, shared const double *x, shared double *y); Parameters size. Tamaño de los vectores -> Igual que en privado a. Factor a multiplicar -> Igual que en privado x, y. Punteros privados a las posiciones de la memoria compartida donde se almacenan los vectores
33 16/32 Introducción Funciones privadas Funciones compartidas int upc_blas_daxpy(const int block_size, const int size, const double a, shared const double *x, shared double *y); Parameters size. Tamaño de los vectores -> Igual que en privado a. Factor a multiplicar -> Igual que en privado x, y. Punteros privados a las posiciones de la memoria compartida donde se almacenan los vectores
34 16/32 Introducción Funciones privadas Funciones compartidas int upc_blas_daxpy(const int block_size, const int size, const double a, shared const double *x, shared double *y); Parameters size. Tamaño de los vectores -> Igual que en privado a. Factor a multiplicar -> Igual que en privado x, y. Punteros privados a las posiciones de la memoria compartida donde se almacenan los vectores
35 17/32 Introducción Funciones privadas Funciones compartidas Significado de block_size para vectores In the range [1,size] Cantidad de elementos consecutivos afines al mismo thread En la práctica, block_size = block_factor del array compartido Determina la distribución del trabajo shared [block_size] y [size]
36 Funciones privadas Funciones compartidas Significado de block_size para las matrices distribuidas por filas Parámetro adicional dist_dimm = row_dist En el intervalo [1,rows] Cantidad de filas consecutivas afines al mismo thread Determina la distribución del trabajo shared [block_size*cols] y [rows*cols] 18/32
37 Funciones privadas Funciones compartidas Significado de block_size para matrices distribuidas por columnas Parámetro adicional dist_dimm = col_dist En el intervalo [1,cols] Cantidad de columnas consecutivas afines al mismo thread Determina la distribución del trabajo shared [block_size] y [rows*cols] 19/32
38 20/32 1 Introducción
39 21/32 Técnicas para obtener buena eficiencia Técnicas de optimización de UPC: Privatización de los accesos a memoria compartida
40 21/32 Técnicas para obtener buena eficiencia Técnicas de optimización de UPC: Privatización de los accesos a memoria compartida
41 22/32 Punteros privados a memoria privada Punteros de C estándar Almacenados en memoria privada Pueden acceder: Memoria privada Parte de la memoria compartida afín al thread Accesos muy rápidos Punteros privados a memoria compartida Almacenados en memoria privada Pueden acceder: Toda la memoria compartida Más pesados que los punteros de C -> Accesos más lentos
42 23/32 Técnicas para obtener buena eficiencia Técnicas de optimización de UPC: Privatización de los accesos a memoria compartida Agrupación de accesos a memoria compartida remota (upc_memget, upc_memput, upc_memcpy) Solapamiento de accesos remotos con computación Distribución correcta de la carga de trabajo y los datos entre los threads -> versión privada Llamadas internas a bibliotecas numéricas paralelas muy eficientes
43 23/32 Técnicas para obtener buena eficiencia Técnicas de optimización de UPC: Privatización de los accesos a memoria compartida Agrupación de accesos a memoria compartida remota (upc_memget, upc_memput, upc_memcpy) Solapamiento de accesos remotos con computación Distribución correcta de la carga de trabajo y los datos entre los threads -> versión privada Llamadas internas a bibliotecas numéricas paralelas muy eficientes
44 23/32 Técnicas para obtener buena eficiencia Técnicas de optimización de UPC: Privatización de los accesos a memoria compartida Agrupación de accesos a memoria compartida remota (upc_memget, upc_memput, upc_memcpy) Solapamiento de accesos remotos con computación Distribución correcta de la carga de trabajo y los datos entre los threads -> versión privada Llamadas internas a bibliotecas numéricas paralelas muy eficientes
45 23/32 Técnicas para obtener buena eficiencia Técnicas de optimización de UPC: Privatización de los accesos a memoria compartida Agrupación de accesos a memoria compartida remota (upc_memget, upc_memput, upc_memcpy) Solapamiento de accesos remotos con computación Distribución correcta de la carga de trabajo y los datos entre los threads -> versión privada Llamadas internas a bibliotecas numéricas paralelas muy eficientes
46 24/32 1 Introducción
47 25/32 Finis Terrae (CESGA) 142 nodos HP Integrity rx7640, cada uno: 16 núcleos Montvale Itanium2 (IA64) at 1.6 GHz 2 celdas, cada una 4 procesadores dual-core 1 módulo de memoria compartida 128 GB RAM Mellanox InfiniBand HCA (16 Gbps bandwidth) SW Configuration: Berkeley UPC (BUPC) 2.6 Intel Math Kernel Library (MKL) 9.1 Todas las funciones BLAS1, BLAS2 y BLAS3 secuenciales Otras rutinas: SparseBLAS, LAPACK, ScaLAPACK...
48 26/32 Configuración de los benchmarks Configuración de memoria híbrida Explotación de la localidad de los threads en el mismo nodo -> memoria compartida Aumenta la escalabilidad -> memoria distribuida 4 threads por nodo, 2 por celda Versión privada src_threads = THREADS dst_threads = 0
49 27/32 EFFICIENCY 1 efficiencies DOT PRODUCT (pddot) 16 50M 12 speedups 100M 150M THREADS SPEEDUP
50 28/32 MATRIX-VECTOR PRODUCT (pdgemv) 1 68 EFFICIENCY efficiencies speedups THREADS SPEEDUP
51 1EFFICIENCY Introducción 29/32 MATRIX-MATRIX PRODUCT (pdgemm) efficiencies speedups THREADS SPEEDUP
52 30/32 1 Introducción
53 31/32 Summary Primera biblioteca numérica desarrollada para UPC -> Novedad Permite almacenar los datos de entrada y/o salida en memoria privada o compartida -> Flexibilidad Usa funciones BLAS secuenciales -> Portabilidad Scalabilidad demostrada con test experimentales -> Eficiencia Trabajo futuro Desarrollo de una biblioteca de computación numérica dispersa para UPC
54 31/32 Summary Primera biblioteca numérica desarrollada para UPC -> Novedad Permite almacenar los datos de entrada y/o salida en memoria privada o compartida -> Flexibilidad Usa funciones BLAS secuenciales -> Portabilidad Scalabilidad demostrada con test experimentales -> Eficiencia Trabajo futuro Desarrollo de una biblioteca de computación numérica dispersa para UPC
55 Preguntas? 32/32 Contacto: Jorge González-Domínguez Grupo de Arquitectura de Computadores, Departamento de Electrónica y Sistemas Universidad de A Coruña
Multiplicación de Matrices en Sistemas cc-numa Multicore. Autor: Jesús Cámara Moreno Director: Domingo Giménez Cánovas
Multiplicación de Matrices en Sistemas cc-numa Multicore Autor: Jesús Cámara Moreno Director: Domingo Giménez Cánovas Índice de Contenido 1. Introducción 2. Línea de Investigación 3. Sistemas Empleados
Herramientas para el estudio de prestaciones en clusters de computación científica, aplicación en el Laboratorio de Computación Paralela
Introducción Herramientas Estudio Conclusiones Herramientas para el estudio de prestaciones en clusters de computación científica, aplicación en el Laboratorio de Computación Paralela Ingeniería en Informática
UPC (Unified Parallel C) es un lenguaje de programación
Biblioteca de Operaciones Colectivas para el Lenguaje de Programación Paralela UPC José Manuel Andión, Guillermo L. Taboada, Juan Touriño y Ramón Doallo 1 Resumen Este artículo presenta una biblioteca
Electromagnetismo y Supercomputación
Electromagnetismo y Supercomputación Luis Landesa, José Manuel Taboada Universidad de Extremadura, Computación de Elevadas Prestaciones Infraestructuras, casos de éxito y aplicaciones prácticas Badajoz/Cáceres
Lusitania. Pensando en Paralelo. César Gómez Martín
Lusitania Pensando en Paralelo César Gómez Martín cesar.gomez@cenits.es www.cenits.es Esquema Introducción a la programación paralela Por qué paralelizar? Tipos de computadoras paralelas Paradigmas de
Optimización de Rutinas Multinivel de Álgebra Lineal en Sistemas Multicore
Máster en Nuevas Tecnologías en Informática Facultad de Informática Universidad de Murcia Optimización de Rutinas Multinivel de Álgebra Lineal en Sistemas Multicore Autor: Jesús Cámara Moreno Directores:
Taller de Programación Paralela
Taller de Programación Paralela Departamento de Ingeniería Informática Universidad de Santiago de Chile April 17, 2008 Motivación Programar aplicaciones paralelas no es una tarea trivial. Paralelismo
Paralelismo. MPI Paso de mensajes. Francisco García Sánchez Departamento de Informática y Sistemas
Paralelismo MPI Paso de mensajes Francisco García Sánchez Departamento de Informática y Sistemas Contenido Introducción 1) Uso de MPI 2) Multiplicación de matrices 3) Ordenación por mezcla 4) Programación
COMPARACIÓN DE MODELOS DE SINCRONIZACIÓN EN PROGRAMACIÓN PARALELA SOBRE CLUSTER DE MULTICORES
COMPARACIÓN DE MODELOS DE SINCRONIZACIÓN EN PROGRAMACIÓN PARALELA SOBRE CLUSTER DE MULTICORES Autor: A.P.U. Enzo Rucci Director: Ing. Armando E. De Giusti Co-Director: Lic. Franco Chichizola Tesina de
Nociones básicas de computación paralela
Nociones básicas de computación paralela Javier Cuenca 1, Domingo Giménez 2 1 Departamento de Ingeniería y Tecnología de Computadores Universidad de Murcia 2 Departamento de Informática y Sistemas Universidad
CUDA (Compute Unified Device Architecture)
CUDA (Compute Unified Device Architecture) Alvaro Cuno 23/01/2010 1 CUDA Arquitectura de computación paralela de propósito general La programación para la arquitectura CUDA puede hacerse usando lenguaje
Arquitecturas de Altas Prestaciones y Supercomputación
Arquitecturas de Altas Prestaciones y Supercomputación Presentación del itinerario Julio de 2014 Arquitecturas de Altas Prestaciones y Supercomputación Julio de 2014 1 / 15 Agenda Introducción 1 Introducción
Linear Algebra PACKage (LAPACK) Avances en la Generación de Bibliotecas de Álgebra Lineal Universidad Politécnica de Valencia Marzo, 2006
Linear Algebra PACKage () Avances en la Generación de Bibliotecas de Álgebra Lineal Universidad Politécnica de Valencia Marzo, 2006 Estructura Qué es la biblioteca? Organización de Funcionalidad de Sistemas
1 Primitivas básicas de OpenMP
1 Primitivas básicas de OpenMP Consultar la página oficial de la plataforma OpenMP http://www.openmp.org/drupal/ Pragmas Es una directiva para el compilador que permite la definición de nuevas directivas
cuevogenet Paralelización en CUDA de la Dinámica Evolutiva de Redes Génicas Dirigido por: Fernando Díaz del Río José Luis Guisado Lizar
cuevogenet Paralelización en CUDA de la Dinámica Evolutiva de Redes Génicas Realizado por: Raúl García Calvo Dirigido por: Fernando Díaz del Río José Luis Guisado Lizar Objetivos Implementar un algoritmo
Cómputo paralelo con openmp y C
Cómputo paralelo con openmp y C Sergio Ivvan Valdez Peña Guanajuato, México. 13 de Marzo de 2012 Sergio Ivvan Valdez Peña Cómputo Guanajuato, paralelo conméxico. openmp y () C 13 de Marzo de 2012 1 / 27
CÓMPUTO DE ALTO RENDIMIENTO EN MEMORIA COMPARTIDA Y PROCESADORES GRÁFICOS
CÓMPUTO DE ALTO RENDIMIENTO EN MEMORIA COMPARTIDA Y PROCESADORES GRÁFICOS Leopoldo N. Gaxiola, Juan J. Tapia Centro de Investigación y Desarrollo de Tecnología Digital Instituto Politécnico Nacional Avenida
Programación en Entornos Paralelos: MPI
1-11 Marzo de 2017 FACET -UNT Programación en Entornos Paralelos: MPI Graciela Molina mgracielamolina@gmailcom TRADICIONALMENTE Procesamiento secuencial 2 TRADICIONALMENTE Procesamiento secuencial Si ya
Análisis y Modificación de Código Heredado para Cómputo de Alto Rendimiento con Modelos Numéricos del Clima
Análisis y Modificación de Código Heredado para Cómputo de Alto Rendimiento con Modelos Numéricos del Clima Fernando G. Tinetti*, Pedro G. Cajaraville #, Juan C. Labraga ##, Mónica A. López ##, Diego Rodrigues
Cómputo Paralelo en Redes Locales de Computadoras
Cómputo Paralelo en Redes Locales de Computadoras Departament d Informàtica Unitat d Arquitectura d Ordinadors i Sistemes Operatius Memoria presentada por Fernando G. Tinetti para optar al grado de Doctor
Sistemas Complejos en Máquinas Paralelas
Sistemas Complejos en Máquinas Paralelas Clase 1: OpenMP Francisco García Eijó Departamento de Computación - FCEyN UBA 15 de Mayo del 2012 Memoria compartida Las mas conocidas son las máquinas tipo Symmetric
Procesadores de lenguaje Tema 6 La tabla de símbolos
Procesadores de lenguaje Tema 6 La tabla de símbolos Departamento de Ciencias de la Computación Universidad de Alcalá Resumen La tabla de símbolos. Requerimientos de información. Diseño de la tabla de
DESARROLLO DE SOFTWARE MODULAR, ABIERTO Y COLABORATIVO PARA SIMULACIÓN DE MÁQUINAS Y MECANISMOS
UNIVERSIDADE DA CORUÑA Escola Politécnica Superior. Ferrol. INGENIERÍA INDUSTRIAL DESARROLLO DE SOFTWARE MODULAR, ABIERTO Y COLABORATIVO PARA SIMULACIÓN DE MÁQUINAS Y MECANISMOS Autor: Tutor: Miguel Álvarez
Servet: una suite de benchmarks para el soporte del autotuning en clusters de sistemas multinúcleo
1/41 Servet: una suite de benchmarks para el soporte del autotuning en clusters de sistemas multinúcleo Jorge González-Domínguez*, Guillermo L. Taboada, Basilio B. Fraguela, María J. Martín, Juan Touriño
Computación en procesadores gráficos
Programación con CUDA Ejercicio 8 José Antonio Martínez García Francisco M. Vázquez López Manuel Ujaldón Martínez Portada Ester Martín Garzón Universidad de Almería Arquitectura de las GPUs Contenidos
Fundamentos de programación JAVA
Pág. N. 1 Fundamentos de programación JAVA Familia: Editorial: Autor: Computación e informática Macro Ricardo Walter Marcelo Villalobos ISBN: 978-612-304-238-7 N. de páginas: 296 Edición: 2. a 2014 Medida:
LA Biblioteca Científica GNU (GNU Scientific Library,
Paralelización de la Biblioteca Científica de GNU para Sistemas Heterogéneos J. Aliaga, F. Almeida, J.M. Badía, S. Barrachina, V. Blanco, M. Castillo, U. Dorta, R. Mayo, E.S. Quintana, G. Quintana, C.
Es una API (Aplication Program Interface) que se usa para paralelismo basado en hilos múltiples en entornos de memoria compartida
Algo de OPENMP Memoria Compartida Threads O hilos, se definen como flujos de instrucciones independientes, que se ejecutan separadamente del programa principal. Con estos hilos se aprovecha mucho una máquina
PUNTEROS (Apuntadores)
PUNTEROS (Apuntadores) Unidad III INTRODUCCIÓN A PUNTEROS. CONCEPTOS BÁSICOS. DECLARACIÓN DE PUNTEROS. PUNTEROS Como una colección de posiciones de memoria consecutivas. En ella se almacenan los distintos
El operador contenido ( ) permite acceder al contenido de
3. Memoria Dinámica y Punteros Objetivos: Distinguir los conceptos de memoria estática y memoria dinámica Comprender el concepto de puntero como herramienta de programación Conocer cómo se definen y cómo
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
Modelos de computadores paralelos
Modelos de computadores paralelos Domingo Giménez Departamento de Informática y Sistemas Universidad de Murcia, Spain dis.um.es/~domingo Universidad de Murcia 1 Contenido Programación paralela Modelos
1. Escalabilidad de transacciones de un motor de búsqueda Web.
Enfoque Token 1. Escalabilidad de transacciones de un motor de búsqueda Web. 2. Simulador de aplicaciones sobre utilización de dispositivos móviles como unidades de procesamiento. Tabla ruteo Red 3G/4G
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
Universidad Autónoma de Sinaloa Facultad de Informática Culiacán Maestría en Ciencias de la Información
Universidad Autónoma de Sinaloa Facultad de Informática Culiacán Maestría en Ciencias de la Información Curso Propedéutico Introducción al Lenguaje C MC. Diego Alonso Gastélum Chavira Junio-2011 Historia
TEMA 1. INTRODUCCIÓN A LA PROGR. DISTRIBUIDA Y PARALELA
Relación de Ejercicios Programación Distribuida y Paralela. 4 o de Ingeniería Superior en Informática. Departamento de Lenguajes y Sistemas Informáticos TEMA 1. INTRODUCCIÓN A LA PROGR. DISTRIBUIDA Y PARALELA
Escalabilidad: El desempeño del software y hardware debe ser eficiente desde un grupo pequeño de procesadores a un grupo muy grande de procesadores.
Página 1 de 8 Introducción a BSP La motivación para el modelo de computación paralela BSP (The Bulk-Synchronous Parallel Model) surge de una comparación con lo que se observa en el mundo de la computación
Diseño de algoritmos paralelos
Diseño de algoritmos paralelos Curso 2011-2012 Esquema del capítulo Visión general de algunos algoritmos serie. Algoritmo paralelo vs. Formulación paralela Elementos de un Algoritmo paralelo Métodos de
CDI Arquitecturas que soportan la concurrencia. granularidad
granularidad Se suele distinguir concurrencia de grano fino es decir, se aprovecha de la ejecución de operaciones concurrentes a nivel del procesador (hardware) a grano grueso es decir, se aprovecha de
SISTEMAS PARALELOS Y DISTRIBUIDOS. 3º GIC. PRÁCTICA 9 Departamento de Arquitectura y Tecnología de Computadores Universidad de Sevilla
SISTEMAS PARALELOS Y DISTRIBUIDOS. 3º GIC. PRÁCTICA 9 Departamento de Arquitectura y Tecnología de Computadores Universidad de Sevilla PROGRAMACIÓN DE COMPUTADORES DE MEMORIA DISTRIBUIDA USANDO MPI. PREPARACIÓN
2.2 Nombres, Ligado y Ámbito
2.2 Nombres, Ligado y Ámbito Ligado estático y dinámico, reglas de ámbito y prueba de tipos. Conceptos Nombres e Identificadores Variables Tipos Ámbito Constantes Nombres Identificador que designa en el
MAGMA. Matrix Algebra on GPU and Multicore Architecture. Ginés David Guerrero Hernández
PLASMA GPU MAGMA Rendimiento Trabajo Futuro MAGMA Matrix Algebra on GPU and Multicore Architecture Ginés David Guerrero Hernández gines.guerrero@ditec.um.es Grupo de Arquitecturas y Computación Paralela
ANÁLISIS SEMÁNTICO LA TABLA DE SÍMBOLOS
Todos los derechos de propiedad intelectual de esta obra pertenecen en exclusiva a la Universidad Europea de Madrid, S.L.U. Queda terminantemente prohibida la reproducción, puesta a disposición del público
Comunicaciones Escalables en Memoria Compartida para Paso de Mensajes en Java
Comunicaciones Escalables en Memoria Compartida para Paso de Mensajes en Java Sabela Ramos*, Guillermo L. Taboada, Juan Touriño, Ramón Doallo Grupo de Arquitectura de Computadores, Universidade de A Coruña
Medición del rendimiento
Medición del rendimiento Medición del rendimiento El rendimiento de la CPU es el tiempo de ejecución. Ecuación del rendimiento de la CPU Tiempo CPU = Ciclos de reloj para el programa x Periodo del reloj
Interfaz de Paso de Mensajes MPI. Christian Chinchilla Brizuela
Interfaz de Paso de Mensajes MPI Christian Chinchilla Brizuela Agenda Definición Objetivo principal MPI Historia Ventajas Desventajas Estructura MPI Programa MPI Llamadas de MPI Funciones Principales MPI
Evolución del software y su situación actual
Evolución del software y su situación actual El software es el conjunto de programas que permite emplear la PC, es decir, es el medio de comunicación con la computadora, el control de sus funciones y su
Cálculo Estructural, Fluídos e Magnetismo Ansys 5.7
1 2 Temas SD SVG SC Cálculo Estructural, Fluídos e Magnetismo Ansys 5.7 X Cálculo Molecular Amber 8.0 X X X Gaussian 98 X X X Gaussian 03 X X X Dalton X X X CPMD X X X GAMESS X X X Molden X X NWCHEM X
UNIDAD I. Universidad del Zulia Costa Oriental del Lago. Conceptos Básicos
Costa Oriental del Lago UNIDAD I Conceptos Básicos Comandos internos y externos. Estructura básicas: entidad, atributo, base de datos, clave primaria y secundaria, registro y archivo de datos empresas
TEMA 1: EJECUCIÓN PARALELA: FUNDAMENTOS(I)
Grupo de Arquitectura de Computadores, Comunicaciones y Sistemas ARQUITECTURA DE COMPUTADORES II AUTORES: David Expósito Singh Florin Isaila Daniel Higuero Alonso-Mardones Javier García Blas Borja Bergua
Análisis de Paralelización con Memoria Compartida y Memoria Distribuida en Clusters de Nodos con Múltiples Núcleos
Análisis de Paralelización con Memoria Compartida y Memoria Distribuida en Clusters de Nodos con Múltiples Núcleos Fernando G. Tinetti 1 III-LIDI Facultad de Informática, UNLP 50 y 120, 1900, La Plata,
Códigos de Química Computacional en el CESGA (Gaussian, GAMESS, NWCHEM)
Códigos de Química Computacional en el CESGA (Gaussian, GAMESS, NWCHEM) Aurelio Rodríguez, Técnico de Aplicaciones aurelio@cesga.es HARDWARE Componentes básicos Rendimiento de disco y memoria Uso de memoria
Bloque II. Elementos del lenguaje de programación Java
Bloque II. Elementos del lenguaje de programación Java 1.Introducción a los lenguajes de programación 2. Estructura de un programa 3. Datos y expresiones simples 4. Instrucciones de control 5. Entrada/salida
Análisis de rendimiento de algoritmos paralelos
Análisis de rendimiento de algoritmos paralelos Joaquín Andrés López Molina josandlopmol@gmail.com Daniel Mauricio Rodríguez Alpizar danielmau231995@hotmail.com Estudiantes de Ingeniería en Computación
Primeros pasos con CUDA. Clase 1
Primeros pasos con CUDA Clase 1 Ejemplo: suma de vectores Comencemos con un ejemplo sencillo: suma de vectores. Sean A, B y C vectores de dimensión N, la suma se define como: C = A + B donde C i = A i
Algoritmos paralelos para la Multiplicación de Matrices
Introducción Paralelizar onclusiones Trabajo ibliografía lgoritmos paralelos para la Multiplicación de Matrices Universidad de Murcia - UM 18 de diciembre de 2008 Introducción Paralelizar onclusiones Trabajo
Lenguaje C, tercer bloque: Funciones
Lenguaje C, tercer bloque: Funciones José Otero 1 Departamento de informática Universidad de Oviedo 28 de noviembre de 2007 Índice 1 Tipo puntero Concepto de puntero Operador dirección Operador indirección
Prefacio 25 Organización de la Unidad Didáctica Cómo utilizar el libro Objetivos docentes... 27
ÍNDICE Prefacio 25 Organización de la Unidad Didáctica.................... 25 Cómo utilizar el libro............................. 26 Objetivos docentes.............................. 27 1 Fundamentos de
Computación de Propósito General en Unidades de Procesamiento Gráfico. Clase 7-ALN y GPUs GPGPU
Computación de Propósito General en Unidades de Procesamiento Gráfico () P. Ezzatti, M. Pedemontey E. Dufrechou Clase 7 ALN en GPUs 1 Contenido Conceptos básicos de ALN Problemas Tipo de datos y matrices
Programación. Test Autoevaluación Tema 3
Programación Test Autoevaluación Tema 3 Autores: M. Paz Sesmero Lorente Paula de Toledo Heras Fco. Javier Ordoñez Morales Juan Gómez Romero José A. Iglesias Martínez José Luis Mira Peidro SOLUCIONES 1.
Contenido. Prefacio Orígenes de la programación orientada a objetos... 1
Prefacio... xv 1. Orígenes de la programación orientada a objetos... 1 1.1 La crisis del software... 1 1.2 Evolución del software... 3 1.3 Introducción a la programación orientada a procedimientos... 4
Factores de Rendimiento en Entornos Multicore
Factores de Rendimiento en Entornos Multicore César Allande Álvarez callande@caos.uab.es Computer Architecture & Operating Systems Department (CAOS) Barcelona, Spain Director: Eduardo César Galobardes
CLUSTER FING: ARQUITECTURA Y APLICACIONES
CLUSTER FING: ARQUITECTURA Y APLICACIONES Gerardo Ares, Pablo Ezzatti Centro de Cálculo, Instituto de Computación FACULTAD DE INGENIERÍA, UNIVERSIDAD DE LA REPÚBLICA, URUGUAY CONTENIDO Introducción Conceptos
Taller de Programación Paralela
Taller de Programación Paralela Departamento de Ingeniería Informática Universidad de Santiago de Chile March 17, 2008 Qué es paralelismo? Una estrategia compuesta de elementos de hardware y software para
Ficha de Aprendizaje N 13
Ficha de Aprendizaje N 13 Curso: Lógica y lenguaje de programación Tema: Fundamentos de programación Duración: 2 horas pedagógicas Logros de aprendizaje Identifica los diferentes tipos de operadores que
Procesos y Threads Procesos y Threads. Rendimiento Rendimiento (paralelismo) (paralelismo) Productividad Productividad
Procesos y Threads Procesos y Threads Procesos Procesos Threads Threads Concurrencia Concurrencia Ventajas Ventajas Modelos Modelos Información Información adicional (PCB) adicional (PCB) Preparado Preparado
Modelos de Programación Paralela Prof. Gilberto Díaz
Universisdad de Los Andes Facultad de Ingeniería Escuela de Sistemas Modelos de Programación Paralela Prof. Gilberto Díaz gilberto@ula.ve Departamento de Computación, Escuela de Sistemas, Facultad de Ingeniería
UNIVERSIDAD DE GUADALAJARA
UNIVERSIDAD DE GUADALAJARA CENTRO UNIVERSITARIO DE LOS ALTOS DIVISIÓN DE ESTUDIOS EN FORMACIONES SOCIALES LICENCIATURA: INGENIERÍA EN COMPUTACIÓN UNIDAD DE APRENDIZAJE POR OBJETIVOS TALLER DE PROGRAMACIÓN
Práctica #0. Factoriales con Threads en Java. Pepper Pots (A ), Anthony Stark (A ) 18 de enero, 2017.
Práctica #0 Factoriales con Threads en Java Pepper Pots (A01166611), Anthony Stark (A01160611) 18 de enero, 2017. Tabla de contenido 1. Introducción.............................................................................
Introducción a los Sistemas Multiprocesadores
Introducción a los Sistemas Multiprocesadores Multiprocesadores estilo Von Neumann Modelos de Organización Modelos de Programación Clasificación de los Multiprocesadores Por qué Sistemas Multiprocesadores?
Introducción rápida a la programación (estructurada ) con C++
Introducción rápida a la programación (estructurada ) con C++ A B No A? Si B A Los Bloques pueden ser una línea de código o un modulo (función o subrutina) que pueden estar contenido en otro archivo de
CAR. http://acarus.uson.mx/cursos2013/car.htm
CAR http://acarus.uson.mx/cursos2013/car.htm Sistemas de CAR en la UNISON Responsable : María del Carmen Heras Sánchez Asesores Técnicos : Aracely Dzul Campos Daniel Mendoza Camacho Yessica Vidal Quintanar
Tile64 Many-Core. vs. Intel Xeon Multi-Core
Tile64 Many-Core vs. Intel Xeon Multi-Core Comparación del Rendimiento en Bioinformática Myriam Kurtz Francisco J. Esteban Pilar Hernández Juan Antonio Caballero Antonio Guevara Gabriel Dorado Sergio Gálvez
Programación en Intel Xeon Phi
Programación en Intel Xeon Phi David Corbalán Navarro Máster en Nuevas Tecnologías de la Informática Índice Introducción al paralelismo Niveles de paralelismo Paradigmas de programación paralela Manycores
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
Práctica 2: Estructuras/Uniones/Campos de bits
Facultad de Ciencias Exactas, Ingeniería y Agrimensura Departamento de Sistemas e Informática Escuela de Electrónica Informática Aplicada Práctica 2: Estructuras/Uniones/Campos de bits Contenido: Esta
Ejercicios de jerarquía de memoria
Ejercicios de jerarquía de memoria J. Daniel García Sánchez (coordinador) David Expósito Singh Javier García Blas Óscar Pérez Alonso J. Manuel Pérez Lobato Arquitectura de Computadores Grupo ARCOS Departamento
PROGRAMA DE ESTUDIO Área de Formación : Fecha de elaboración: 28 de mayo de 2010 Fecha de última actualización:
PROGRAMA DE ESTUDIO Programa Educativo: Área de Formación : Licenciatura en Sistemas Computacionales Integral profesional Horas teóricas: 2 Horas prácticas: 2 Total de Horas: 4 Cómputo paralelo Total de
Curso de Java Introducción a la Programación II
Curso de Java Introducción a la Programación II Jaime Fernández Martín Curso INEM 02830. Programación en Java Marzo 2010 Índice 1 Tipos Java 2 Decalaración de variables 3 Operadores aritméticos Índice
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
CAPÍTULO 3 ESTRUCTURAS DE DATOS ESTÁTICAS
CAPÍTULO 3 ESTRUCTURAS DE DATOS ESTÁTICAS Capítulo 3 Estructuras de datos estáticas 1/37 1. INTRODUCCIÓN Las estructuras de datos se utilizan, generalmente, para procesar una colección de valores que están
Intel lanza su procesador Caballero Medieval habilitado para Inteligencia Artificial
Intel lanza su procesador Caballero Medieval habilitado para Inteligencia Artificial Intel ha lanzado su procesador Xeon Phi en la Conferencia Internacional de Supercomputación de Alemania. El procesador
LABORATORIO #1 INTRODUCCIÓN AL LENGUAJE DE PROGRAMACIÓN C++
LABORATORIO #1 INTRODUCCIÓN AL LENGUAJE DE PROGRAMACIÓN C++ C++ es un lenguaje de programación diseñado por Bjarne Stroustrup a partir de 1979. La intención de su creación fue ampliar al exitoso lenguaje
Capítulo 10. Bases de datos distribuidas
Capítulo 10 Bases de datos distribuidas ÍNDICE CAPÍTULO 10 Conceptos de bases distribuidas Introducción Arquitectura de un DDBMS Fragmentación, replicación y distribución de datos Tipos de sistemas de
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:
DESARROLLO DE ALGORITMOS PARA MODELOS DE ECUACIONES SIMULTANEAS EN ALTAS PRESTACIONES. Jose Juan López Espín Universidad Miguel Hernández
DESARROLLO DE ALGORITMOS PARA MODELOS DE ECUACIONES SIMULTANEAS EN ALTAS PRESTACIONES Espín Universidad Miguel Hernández Introducción Motivación Los Modelos de Ecuaciones Simultáneas (M.E.S.) nacen como
Programación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C
Algoritmo y Estructura de Datos Ing. M. Laura López 1 Estructura de un programa en C 2 Estructura de un programa en C #include Archivos de cabecera # define Definición de constantes Declaraciones Globales
Fundamentos PHP. El término puntuación nos referimos a la sintaxis usada en PHP para la terminación de una línea de código (;)
Tags Fundamentos PHP La Sintaxis de PHP se deriva de muchos lenguajes de programación principalmente de C pero Perl también ha tenido mucha influencia en esta sintaxis Con las últimas incorporaciones agregadas,
Sesión 7. Cálculo Paralelo en Elmer
Sesión 7. Cálculo Paralelo en Elmer M. Meis y F. Varas Departamento de Matemática Aplicada II Universidad de Vigo Introducción a Elmer, sofware libre de simulación numérica multifísica A Coruña, 27 de
Definición de clase: Una clase es un prototipo que define las variables y los métodos de todos los objetos con características comunes.
Clases y Objetos Java es un lenguaje orientado a objetos que incorpora un gran número de clases predefinidas organizadas en paquetes. La programación en Java supone definir clases de forma jerárquica,
Definición de clase: Una clase es un prototipo que define las variables y los métodos de todos los objetos con características comunes.
Clases y Objetos Java es un lenguaje orientado a objetos que incorpora un gran número de clases predefinidas organizadas en paquetes. La programación en Java supone definir clases de forma jerárquica,
Algoritmos y estructuras de datos
Algoritmos y estructuras de datos Dr. Eduardo A. Rodríguez Tello Laboratorio de Tecnologías de Información Cinvestav Tamaulipas ertello@tamps.cinvestav.mx Cursos de inducción a la MCC Cinvestav Tamaulipas
Tema 2: Desarrollo de Algoritmos. E.E. de Algorítmica
Tema 2: Desarrollo de Algoritmos E.E. de Algorítmica Temas a tratar Identificadores Variables Constantes Tipos de Datos Separadores Operadores Aritméticos Unarios Relacionales y Condicionales Nivel de
Cómo implementar tus propias funciones en Lenguaje C?
Cómo implementar tus propias funciones en Lenguaje C? por Iván Cruz Cuando se realiza un programa, es importante siempre manejar una buena organización del código fuente, debido a que se puede desear incrementar
TIPOS DE DATOS ESTRUCTURADOS
TIPOS DE DATOS ESTRUCTURADOS Arreglos unidimensionales, bidimensionales y cadenas de caracteres ESTRUCTURAS DE INFORMACIÓN Una estructura de datos o de información es una colección de datos que pueden
Informática Ingeniería en Electrónica y Automática Industrial
V1.1 Informática Ingeniería en Electrónica y Automática Industrial Datos en lenguaje C Datos en lenguaje C Introducción Tipos de datos básicos y modificadores Tipos de datos enteros Tipos de datos reales
Informática Ingeniería en Electrónica y Automática Industrial
Informática Ingeniería en Electrónica y Automática Industrial Datos en lenguaje C V1.1 Datos en lenguaje C Introducción Tipos de datos básicos y modificadores Tipos de datos enteros Tipos de datos reales
Al borde de un ataque de Matlab sálvame C++ Francisco Javier García Blas Universidad Carlos III de Madrid Grupo ARCOS 2016
Al borde de un ataque de Matlab sálvame C++ Francisco Javier García Blas fjblas@inf.uc3m.es Universidad Carlos III de Madrid Grupo ARCOS 2016 Matlab 2 3 Introducción Qué es Matlab?, MATrix LABoratory Es
PROGRAMA: COMPUTACION I
UNIVERSIDAD NACIONAL EXPERIMENTAL DEL TACHIRA VICERECTORADO ACADÉMICO DECANATO DE DOCENCIA DEPARTAMENTO DE INGENIERÍA INFORMÁTICA 1 PROGRAMA: COMPUTACION I Código 0415102T Carrera: Ingeniería Informática
Ejecución serial: las tareas/instrucciones de un programa son ejecutadas de manera secuencial, una a la vez.
Paralelismo Conceptos generales Ejecución serial: las tareas/instrucciones de un programa son ejecutadas de manera secuencial, una a la vez. Ejecución paralela: varias tareas/instrucciones de un programa