Streaming SIMD Extensions:
|
|
|
- María Concepción Romero Domínguez
- hace 7 años
- Vistas:
Transcripción
1 Streaming SIMD Extensions: Vectorización al alcance de todos Germán Ros Sánchez Universidad de Murcia Octubre 2009
2 SSE*: Streaming SIMD Extensions Es un conjunto de instrucciones SIMD que incorporan los procesadores modernos de Intel y AMD. Son muy útiles para conseguir pequeños speedup de entre 2x~4x. Tiene un ancho de 4 operaciones (128bits). El bajo nivel de abstracción que proponen (ASM/C) ha provocado que muchos programadores no las usen. Tienen una utilidad limitada: VECTORIZACIÓN.
3 Arquitectura oculta
4 Modelo de programación C/C++ Si bien es cierto que a nivel de ensamblador el modelo es austero, usando la abstracción ofrecida por xmmintrin.h podemos obtener un modelo de programación similar a otros de vectorización, tales como CUDA. El proceso es fácilmente resumible en tres fases: Agrupamiento de los datos a operar Realizar las operaciones pertinentes Compilar: gcc/g++ -o prog prog.c -msse
5 1. Tipos de datos y agrupamiento En SSE usamos aritmética de coma flotante A la hora de definir las matrices las cosas cambian un poco. Ahora hay que utilizar declspec(align(16)) float en lugar de Float. Ej: declspec(align(16)) float M[SIZE]; Cuando queremos usar matrices dinámicas debemos sustituir la función malloc por _mm_malloc. Ej: M = (float*) _mm_malloc(n*sizeof(float), 16);
6 1. Tipos de datos y agrupamiento (II) Estos cambios obedecen a la necesidad de que los datos estén correctamente alineados a 16Bytes. Una vez que nuestros datos estén definidos y alineados tenemos que agruparlos para que puedan ser usados por las funciones de SSE. El agrupamiento se hace a través del tipo de datos m128. Ej: m128* pm = ( m128*) M;
7 1. Tipos de datos y agrupamiento (III) Muchas veces puede resultar de utilidad hacer que nuestros tipos de datos sean conscientes de SSE para obtener el mejor de los rendimientos. Hay que tener cuidado con esto. Se debería hacer de forma transparente al resto del código del programa (encapsulado en alguna función). Ej: Estructura para un pixel en SSE typedef struct { float red[4]; float green[4]; float blue[4]; float alpha[4]; } CData32T4;
8 2. Realizando Operaciones Gestión de la memoria _aligned_malloc _aligned_free Operaciones aritméticas _mm_add_ps _mm_sub_ps _mm_mul_ps _mm_div_ps _mm_sqrt_ps...
9 2. Realizando Operaciones (II) Operaciones lógicas _mm_and_ps _mm_or_ps _mm_xor_ps _mm_andnot_ps Operaciones de conversión _mm_cvtss_si32 _mm_cvtps_pi32 _mm_cvttss_si64 _mm_cvtpi16_ps Y MUCHAS MÁS OPERACIONES EN xmmintrin.h!
10 Un ejemplo práctico
11 Suma de vectores secuencial float* m1; float* m2; float* m3; srand(time(null)); m1 = new float[m]; m2 = new float[m]; m3 = new float[m]; //Inicializacion for(int i=0;i<m;i++) { m1[i] = (rand()/(float)rand_max); m2[i] = (rand()/(float)rand_max); } //T veces for(int k=0;k<t;k++) { //suma for(int i=0;i<m;i++) m3[i] = m1[i] + m2[i]; } Declaración Inicialización Cálculo
12 Suma de vectores vectorizada (I) float* m1; float* m2; float* m3; Inicialización SSE srand(time(null)); m1 = (float*) _mm_malloc(m * sizeof(float), 16); m2 = (float*) _mm_malloc(m * sizeof(float), 16); m3 = (float*) _mm_malloc(m * sizeof(float), 16); //Inicializacion for(int i=0;i<m;i++) { m1[i] = (rand()/(float)rand_max); m2[i] = (rand()/(float)rand_max); }
13 Suma de vectores vectorizada (II) int m = M/4; //T veces for(int k=0;k<t;k++) { m128* psrc1 = ( m128*) m1; m128* psrc2 = ( m128*) m2; m128* pdest = ( m128*) m3; } //suma for(int i=0;i<m;i++) { *pdest = _mm_add_ps(*psrc1, *psrc2); psrc1++; psrc2++; pdest++; } Asignación a los tipos SSE Cálculo con SSE
14 Conclusiones
15 Ejemplos de rendimiento
16 Ventajas Ofrece la posibilidad de tener paralelismo de datos de manera sencilla y sin necesidad de adquirir un hardware caro. Es posible su combinación con otras técnicas como OpenMP, MPI, CUDA, etc. Inconvenientes El nivel de abstracción ofrecido no es tan alto como en OpenMP. No hay posibilidad de seguir escalando más allá de 4x o 5x. Estamos haciendo programas dependientes de la arquitectura. No contamos con primitivas de sincronización.
17 Úiltimamente... Se está ampliando su uso en el ámbito científico/académico, en áreas como la Visión por Computador, o el modelado 3D. Aunque no ofrecen grandes SpeedUps, su uso puede suponer la diferencia entre una ejecución en Tiempo Real o no. De ahí que últimamente se use en combinación de otras tecnologías como CUDA Pronto quedarán obsoletas con la salida de AVX: Advanced Vector Extensions (prevista para 2010)
18 Referencias Intel%20SSE4%20Programming%20Reference.pdf
19 Preguntas?
Arquitecturas vectoriales, SIMD y extensiones multimedia
Arquitecturas vectoriales, SIMD y extensiones multimedia William Stallings, Organización y Arquitectura de Computadores, 5ta. ed., Capítulo 16: Procesamiento Paralelo. Andrew S. Tanenbaum, Organización
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
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
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
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
ÍNDICE CAPÍTULO 1 FUNDAMENTOS DE LOS MICROCONTROLADORES
ÍNDICE CAPÍTULO 1 FUNDAMENTOS DE LOS MICROCONTROLADORES 1.1 Introducción 1.2 Fundamentos de los procesadores digitales secuenciales 1.2.1 Introducción 1.2.2 Arquitectura interna 1.2.2.1 Procesadores digitales
Los registros son la memoria principal de la computadora. Existen diversos registros de propósito general y otros de uso exclusivo.
Unidad IV: Generación de código objeto 4.1 Registro Los registros son la memoria principal de la computadora. Existen diversos registros de propósito general y otros de uso exclusivo. Algunos registros
INTRODUCCIÓN A LA POO EN C++
INTRODUCCIÓN A LA POO EN C++ ÍNDICE DEL TEMA 1.- Introducción 2.- Diferencias C/C++ 3.- Programación orientada a objetos 4.- Aspectos avanzados C++ 1 1. Introducción Lenguaje C Lenguaje de propósito general
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
Introducción general al Lenguaje C (2010/2011)
Luis Valencia Cabrera [email protected] (http://www.cs.us.es/~lvalencia) Ciencias de la Computacion e IA (http://www.cs.us.es/) Introducción general al Lenguaje C (2010/2011) Universidad de Sevilla Índice
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
TEMA III: OPERACIONES CON LOS DATOS
CUESTIONES A TRATAR: Cual es la función de la unidad operativa? Es necesaria? Qué tipos de circuitos implementan la unidad operativa? Unidad operativa frente a ALU Qué es una operación de múltiple precisión?
Datos Elementales y formato de un programa en Java
Datos Elementales y formato de un programa en Java PROGRAMACION I Grado en Matematicas Informática Programación I - 2015/2016 Datos, variables y mi primer programa 1 Introducción a la programación o Programa:
Modelo de von Neumann
Conceptos básicos Modelo de von Neumann También conocida como arquitectura de Princeton. Propuesta por John von Neumann en 1945. Partes de una computadora digital: Unidad de procesamiento (CPU unidad central
TEMA 2: PROGRAMACIÓN PARALELA (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
Arquitectura de Computadoras. Clase 2 Interrupciones
Arquitectura de Computadoras Clase 2 Interrupciones Interrupciones Mecanismo mediante el cual se puede interrumpir el procesamiento normal de la CPU. Ejecución secuencial de instrucciones de un programa
Paralelismo _Arquitectura de Computadoras IS603
Paralelismo _Arquitectura de Computadoras IS603 INTRODUCCION El objetivo de esta investigación, es conceptualizar las diferentes tipos de paralelismo referente al área de Arquitectura de Computadoras,
Unidad VIII Generación de código intermedio. M.C. Juan Carlos Olivares Rojas
Unidad VIII Generación de código intermedio M.C. Juan Carlos Olivares Rojas Agenda 8.1 Lenguaje máquina. 8.1.1 Características. 8.1.2 Direccionamiento. 8.2 Lenguaje ensamblador. 8.2.1 Características.
5.1. Filtro de Kalman
Capítulo 5. En el apartado 2.4 se ha visto el algoritmo que se quiere ejecutar en la IMU. Se estudia ahora cómo se implementa esto en el DSP, usando un programa en C y atendiendo a las particularidades
Febrero 2012. Departamento de Electrónica e Sistemas Universidade da Coruña. Introducción a las Extensiones Multimedia
a a Departamento de Electrónica e Sistemas Universidade da Coruña Febrero 2012 3 a Índice a 3 1 2 3 4 5 6 3 a Qué son extensiones multimedia? a Son nuevas instrucciones añadidas al repertorio de instrucciones
1.1 Tipos de Datos Primitivos. 1.2 Tipos de datos estructurados. 1.3 Definición de estructura de datos
1.1 Tipos de Datos Primitivos 1.2 Tipos de datos estructurados 1.2.1 Arreglos unidimensionales, bidimensionales y cadenas de caracteres 1.2.2 Registros o Estructuras (unión y estructura) 1.3 Definición
Programación I Unidad III. Tema: Tipos, estructuras y uniones
Programación I Unidad III Tema: Tipos, estructuras y uniones El especificador typedef La palabra reservada typedef representa un especificador de clase de almacenamiento, y se utiliza para definir nuevos
Punteros. Programación en C 1
Punteros Programación en C 1 Índice Variables y direcciones de memoria. Punteros definición, declaración e inicialización. Punteros declaración, asignación y dereferencia. Puntero nulo, tipo void. Aritmética
Tema 6: Memoria dinámica
: Programación 2 Curso 2013-2014 Índice 1 2 3 El tamaño es fijo y se conoce al implementar el programa Declaración de variables int i=0; char c; float vf[3]={1.0, 2.0, 3.0}; i c vf[0] vf[1] vf[2] 0 1.0
Alejandro Molina Zarca
Compute Unified Device Architecture (CUDA) Que es CUDA? Por qué CUDA? Dónde se usa CUDA? El Modelo CUDA Escalabilidad Modelo de programación Programación Heterogenea Memoria Compartida Alejandro Molina
1. Presentación del lenguaje C Creado en 1972 por D. Ritchie Lenguaje de propósito general Portátil o transportable (generalmente) Inicialmente de niv
Introducción al lenguaje C Informática Belarmino Pulido Junquera Índice 1. Presentación del lenguaje C 2. Estructura de un programa en C 3. Instrucciones del pre-procesador procesador 4. Tipos de datos
SISTEMAS OPERATIVOS: SISTEMAS DE FICHEROS. Ficheros
SISTEMAS OPERATIVOS: SISTEMAS DE FICHEROS Ficheros Objetivos 2 Conocer los conceptos de fichero y directorio así como sus características. Utilizar los servicios de gestión de Ficheros y directorios ofrecidos
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 ARQUITECTURA DE COMPUTADORAS
SISTEMAS PARALELOS Y DISTRIBUIDOS. 3º GRADO EN ING. INFORMÁTICA. ING. COMPUTADORES PRÁCTICA 8: INTRODUCCIÓN A OPENMP.
SISTEMAS PARALELOS Y DISTRIBUIDOS. 3º GRADO EN ING. INFORMÁTICA. ING. COMPUTADORES PRÁCTICA 8: INTRODUCCIÓN A OPENMP. 1. OBJETIVOS Y PREPARACIÓN. En la actualidad los multiprocesadores en un solo chip
Tipos de datos y Operadores Básicos
Módulo I: Conceptos Básicos Tema 1. Qué es un ordenador? Tema 2. Cómo se representan los datos en un ordenador? Tema 3. Qué es un lenguaje de programación? Tema 4. Cómo se hace un programa informático?
Tema 7. Mejora del rendimiento: introducción a la segmentación y a las arquitecturas paralelas
Tema 7. Mejora del rendimiento: introducción a la segmentación y a las arquitecturas paralelas Arquitectura de Computadores Curso 2009-2010 Transparencia: 2 / 21 Índice Introducción Taxonomía de Flynn
Introducción a Cómputo Paralelo con CUDA C/C++
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO Facultad de Ingeniería Introducción a Cómputo Paralelo con CUDA C/C++ Laboratorio de Intel y Cómputo de alto desempeño Elaboran: Revisión: Ing. Laura Sandoval Montaño
Capítulo 3. Introducción a la programación. Continuar
Capítulo 3 Introducción a la programación Continuar Introducción Java es un lenguaje que tiene muchas ventajas frente a otros lenguajes de programación: es open source (código abierto), esto permite ver
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
Sistema de memoria. Introducción
Sistema de memoria Introducción Memorias de acceso aleatorio: Apropiadas para la memorización a largo plazo de programas. Grandes y lentas. Organización: n: líneas de direcciones. m: tamaño de palabra.
PROGRAMACIÓN PARALELA. Modelos de programación paralela Paradigmas de programación paralela
PROGRAMACIÓN PARALELA Modelos de programación paralela Paradigmas de programación paralela Tipos de paralelismo Paso de mensajes Paralelismo de datos Memoria compartida Paradigmas de programación paralela
ESTRUCTURA DE DATOS. Memoria estática Memoria dinámica Tipo puntero Declaración de punteros Gestión de memoria dinámica Resumen ejemplo
ESTRUCTURA DE DATOS Memoria estática Memoria dinámica Tipo puntero Declaración de punteros Gestión de memoria dinámica Resumen ejemplo DATOS ESTÁTICOS Su tamaño y forma es constante durante la ejecución
Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.
LENGUAJE C CARACTERISTICAS DEL LENGUAJE 'C' El lenguaje 'C' se conoce como un lenguaje compilado. Existen dos tipos de lenguaje: interpretados y compilados. Los interpretados son aquellos que necesitan
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
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
TEMA 2: Organización de computadores
TEMA 2: Organización de computadores Procesadores Memorias Dispositivos de E/S 1 Computador Procesador, memoria, dispositivos de E/S CPU Unidad de control Unidad aritmética y lógica Registros Dispositivos
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
Repaso Lenguaje C Área de Servicios Programación (Ing. Elect. y Prof. Tec.), Programación I (TUG y TUR) y Electrónica programable (TUE)
Repaso Lenguaje C OBJETOS Variables Constantes Variable: objeto del ambiente cuyo contenido puede cambiar. Constante: objeto cuyo contenido no puede cambiar. Variables: - un nombre que la identifica. Deben
Introducción al lenguaje C
Introducción al lenguaje C Ampliación de Informática Belarmino Pulido Junquera Índice 1. Presentación del lenguaje C 2. Estructura de un programa en C 3. Tipos de datos escalares 4. Operadores básicos
Expresiones Aritméticas. Programación digital I Escuela de Sistemas Facultad de Ingeniería Gilberto Diaz
Expresiones Aritméticas Programación digital I Escuela de Sistemas Facultad de Ingeniería Gilberto Diaz Expresiones Aritméticas El computador puede realizar cálculos además de mostrar datos por pantalla.
IBM 360. Igor Perez Martín. Jesús Manuel Salvadó Cenera. Mario Junquera Gómez
IBM 360 Igor Perez Martín Jesús Manuel Salvadó Cenera Mario Junquera Gómez INTRODUCCIÓN El primero en usar microprogramación fue 360, el cual creó el concepto de arquitectura de familia. La familia del
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
TEMA 1 FUNDAMENTOS DEL DISEÑO DEL HARDWARE DIGITAL
TEMA 1 FUNDAMENTOS DEL DISEÑO DEL HARDWARE DIGITAL 1.1. Introducción 1.2. Lenguajes para la descripción de hardware 1.3. Ciclo de diseño de los circuitos digitales 1.4. Tecnologías de circuitos integrados
Programación en Lenguaje C
Lenguaje de programación C Programación en Lenguaje C Introducción El Lenguaje de programación C fue implantado por primera vez en los años 70 por Dennis Ritchie para una computadora DEC PDP-11 corriendo
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
El nivel ISA (II)! Conjunto de Instrucciones
El nivel ISA (II) Conjunto de Instrucciones EC-2721 Arquitectura del Computador I Que es un Conjunto de Instrucciones? Colección completa de instrucciones comprendida por un procesador Lenguaje de máquina
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
MODOS DE DIRECCIONAMIENTO
MODOS DE DIRECCIONAMIENTO A algunos estudiantes no les parece muy importante el tema de los modos de direccionamiento. Si el objetivo último y principal es procesar de alguna manera (sumar, restar, desplazar,
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 [email protected] Cursos de inducción a la MCC Cinvestav Tamaulipas
Programación de Videojuegos Tema 15 Tipos de Dato I. 15. Tipos de Dato I
15. Por ahora ya sabemos lo suficiente sobre el muestreo de textos por pantalla, aunque por supuesto a falta de practicar un poco. Vamos a cambiar un poco de temática y vamos a ver otros aspectos avanzados
Unidad IV Arreglos y estructuras. M.C. Juan Carlos Olivares Rojas
Unidad IV Arreglos y estructuras M.C. Juan Carlos Olivares Rojas 4.1 Concepto de arreglo Agenda 4.2 Manejo de cadenas 4.3 Concepto de estructuras 4.4 Concepto de unión 4.5 Empleo de apuntadores 4.1 Concepto
Sistemas. POSTREQUISITO: CATEGORÍA: Obligatorio SECCION: A HORAS POR SEMANA
UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA ESCUELA DE CIENCIAS Y SISTEMAS PROGRAMA DEL CURSO DE ARQUITECTURA DE COMPUTADORES Y ENSAMBLADORES 1 CODIGO: 778 CREDITOS: 5 ESCUELA: Ciencias
Expresiones y sentencias
Expresiones y sentencias Expresión Construcción (combinación de tokens) que se evalúa para devolver un valor. Sentencia Representación de una acción o una secuencia de acciones. En C, todas las sentencias
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
Conceptos y definiciones básicos en computación
UNIVERSIDAD MICHOACANA DE SAN NICOLÁS DE HIDALGO FACULTAD DE INGENIERIA ELECTRICA Laboratorio de Herramientas Computacionales Conceptos y definiciones básicos en computación M.I. Rosalía Mora Lab. Juárez
Fundamentos de la programación
Fundamentos de la programación 2A Grado en Ingeniería Informática Grado en Ingeniería del Software Grado en Ingeniería de Computadores Facultad de Informática Universidad Complutense int 214 float 216
Tutorías con Grupos Reducidos (TGR) Parte 1: Evaluación de prestaciones
Tutorías con Grupos Reducidos (TGR) Parte 1: Evaluación de prestaciones ESTRUCTURA DE COMPUTADORES Grupo de Arquitectura de Computadores (GAC) Dyer Rolán García (GAC) Evaluación de Prestaciones Curso 2011/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
Programación Estructurada. Sesión 2:El lenguaje de programación C
Programación Estructurada Sesión 2:El lenguaje de programación C Contextualización Una parte importante del lenguaje C son las palabras reservadas, son identificadores con un significado predefinido. Estas
Es un lenguaje estructurado, tiene una abundante cantidad de operadores y tipos de datos.
Lenguaje C Un poco de historia C es un lenguaje de propósito general, es decir, se pueden desarrollar aplicaciones de diversas áreas. Dentro de sus principales características podemos mencionar que: Es
Tema 2: Lenguaje máquina. La interfaz entre el hardware y el software
Tema 2: Lenguaje máquina La interfaz entre el hardware y el software 1 Índice Introducción. Formatos de Instrucción. Modos de Direccionamiento. Ortogonalidad y Regularidad. Frecuencia de Utilización de
Introducción a la Programación de Memoria Compartida.. con OpenMP
Introducción a la Programación de Memoria Compartida.. con OpenMP Carlos Jaime BARRIOS HERNANDEZ, PhD. Escuela de Ingeniería de Sistemas e Informática Universidad Industrial de Santander Las herramientas
Procesador: Pentium 4 SL6S9. Año 2001, 2.4 GHZ 512 KB L2 caché Hecho en Filipinas
Procesador: Pentium 4 SL6S9 Año 2001, 2.4 GHZ 512 KB L2 caché Hecho en Filipinas Diagrama del die Especificaciones Este procesador cuenta con un Front Side Bus de velocidad 400 MHz que conecta los componentes
Granularidad y latencia
Niveles de paralelismo y latencias de comunicación Niveles de paralelismo. Granularidad o tamaño de grano. Latencia de comunicación. Particionado de los programas. Empaquetado de granos. Planificación
