Procesadores Gráficos: OpenCL para programadores de CUDA
|
|
- Tomás Sánchez Rodríguez
- hace 8 años
- Vistas:
Transcripción
1 Procesadores Gráficos: para programadores de CUDA Curso 2011/12 David Miraut Universidad Rey Juan Carlos April 24, 2013
2 Indice Estándar Modelo de de El lenguaje programa de Inicialización de 58 Estándar Modelo de de El lenguaje programa de Inicialización de Universidad Rey Juan Carlos
3 Interfaces de programación GPU A lo largo del tiempo han surgido muchas soluciones: GPGPU Vertex / pixel shaders Muy limitada por las características del cauce gráfico Brook Después Brook+ Despúes CAL/IL (Compute Abstraction Layer) / (Intermediate Language) CUDA Muy extendido Con un modelo de programación sencillo Todas ellas requieren de un conocimiento profundo de la arquitectura utilizada Los detalles que hacen posible un gran rendimiento minan la posibilidad de tener portabilidad entre arquitecturas 3 Estándar Modelo de de El lenguaje programa de Inicialización de
4 Nos movemos hacia un futuro masivamente paralelo Y esto parece la torre de Babel HMPP StarSS Unified Parallel C NEPAL Cilk ATI Stream Sequoia RapidMind IntelCt Close to Metal Microsoft accelerator Direct Compute CUDA Estándar Modelo de de El lenguaje programa de Inicialización de Universidad Rey Juan Carlos
5 Nuevo estándar de Khronos para la computación heterogénea la versión 1.0 salió en Dic Ha sido muy promocionado por Apple Tienen la marca registrada y Khronos tiene una licencia El chair del grupo de trabajo es Neil Trevett, vicepresidente de nvidia y Presidente del Khronos Group Abierto y libre de royalties Multi-fabricante y multiplataforma Hace uso de todas las entidades / unidades de proceso CPUs, GPUs, APUs y otras Us Facilita la computación heterogénea en sistemas manycore Escala desde soluciones empotradas a HPC Hay un profile especial para el desarrollo en teléfonos móviles, coches Estándar Modelo de de El lenguaje programa de Inicialización de Universidad Rey Juan Carlos
6 Punto de vista del HW de Un host y múltiples devices Cada device tiene varias unidades de cómputo Cada unidad de cómputo tiene varios elementos de proceso Ejemplo: nvidia Tesla C Unidades de Cómputo 8 elementos de proceso = 240 elementos de proceso 6 Estándar Modelo de de El lenguaje programa de Inicialización de
7 Estructura de la Capa de plataforma (se llama desde el host) Capa de abstracción para los recusos computacionales de distintas fuentes Permite hacer solicitud, selección e inicialización de los recursos computacionales Crea los contextos y colas de trabajo para la computación Runtime (se llama desde el host) Lanza kernels de computación Establece la configuración de la ejecución Gestiona la planificación, cómputo y uso de recursos de Language Sirve para escribir los kernels que se ejecutarán en los dispositivos de computación Basado en C con una interfaz de programación de "plataforma cruzada" Subconjunto de ISO C99 con extensiones del lenguaje Incluye un rico conjunto de funciones built-in, además de operadores estándar de C Puede ser compilado al vuelo (JIT/Online) u offline 58 7 Estándar Modelo de de El lenguaje programa de Inicialización de Universidad Rey Juan Carlos
8 Ejecución del kernel de vs. CUDA 8 Estándar Modelo de de El lenguaje programa de Inicialización de Grid = NDRange Block = Work-Group Thread = Work-Item
9 Ejecución del kernel de vs. CUDA 9 Estándar Modelo de de El lenguaje programa de Inicialización de Número total de work groups = G x G y Tamaño de cada work group = S x S y El ID global se puede calcular a partir del Work Group ID y el Local ID
10 Estándar 10 Modelo de de El lenguaje programa de Inicialización de
11 Modelo de de Private memory accesible sólo por el work-item en un elemento de proceso. Local memory accesible por cada work-item en un work-group Constant Memory accesible por cada work-group (sólo lectura) Global memory accesible por cada work-group, persistente El programador se encarga de las copias entre del host y la global 58 Estándar 10 Modelo de de El lenguaje programa de Inicialización de Universidad Rey Juan Carlos
12 Modelo de de Global = Global Memoria accesible a nivel de device ( de vídeo) Shared = Local Memoria accesible a nivel de work-group ( compartida) Local = Private Memoria accesible a nivel de work-item Estándar 11 Modelo de de El lenguaje programa de Inicialización de
13 Primer ejemplo de código en Estándar 12 Modelo de de El lenguaje programa de Inicialización de
14 Kernel Equivalente a la función de C ejecutada en el Device Punto de entrada, argumentos, no devuelve valores Programa Colección de kernels y funciones Es equivalente una librería cargada dinámicamente Cola de (Command Queue) Contiene las invocaciones del kernel y otros de (como la copia/mapeo/... de ) Se encola en orden Se ejecuta fuera de orden (opcionalmente, depende de la implementación) Evento Sincroniza la ejecución dentro de una cola y entre colas en un contexto 58 Estándar Modelo de de 13 El lenguaje programa de Inicialización de Universidad Rey Juan Carlos
15 NDRange Ejecución paralela con un modelo orientado a partición por datos Los kernels se ejecutan a través de 1, 2 ó 3 dimensiones de un espacio indexado en dos niveles llamado NDRange Los kernels se instancian como work-items (hebras de CUDA) y son agrupados en work-groups No hay sincronización entre work-groups, son independientes Las barreras de sincronizan work-items dentro de un work-group El programador elige el NDRange apropiado para el tamaño del problema Estándar Modelo de de 14 El lenguaje programa de Inicialización de
16 Ejemplo NDRange Procesamos una imagen de 256x256, 1 pixel por work-item Estándar Modelo de de 15 El lenguaje programa de Inicialización de
17 Ejemplo NDRange Procesamos una imagen de 256x256, 1 pixel por work-item Estándar Modelo de de 16 El lenguaje programa de Inicialización de
18 Ejemplo NDRange Procesamos una imagen de 256x256, 1 pixel por work-item Estándar Modelo de de 17 El lenguaje programa de Inicialización de
19 NDRange A cada work-item se le da el mismo argumento, pero tiene un identificador local distinto para cada uno dentro del grupo y un identificador global único Cada work-group tiene también un identificador único Los IDs y los tamaños se pueden obtener mediante funciones get_() El tamaño global es múltiplo del tamaño local Estándar Modelo de de 18 El lenguaje programa de Inicialización de
20 El lenguaje de Estándar Está basado en C99 con limitaciones y extensiones Limitaciones: no hay recursión, no hay cabeceras tipo C99, no hay campos de bits, no hay funciones a punteros, no hay arrays de tamaño variable, no hay stores accesibles con palabra de tamaño byte : tipos vector, work-items y work-groups, sincronización, funciones de acceso a imágenes, conversiones... Modelo de de El lenguaje 19 programa de Inicialización de
21 Memoria y sincronización La privada se comporta como una pila de almacenamiento para las hebras La local es compartida y accedida por todos items de un work-group Sincronización a través de barrier(clk_local_mem_fence CLK_GLOBAL_MEM_FENCE); Nos puede servir como en el caso de CUDA para asegurar que se han hecho todas las operaciones entre mem. local y global antes del procesado Estándar Modelo de de El lenguaje 20 programa de Inicialización de
22 Ejemplo Estándar Modelo de de El lenguaje 21 programa de Inicialización de
23 Ejemplo Estándar Los bucles (anidados) que recorren los elementos se convierten en el NDRange La parte interna del bucle se convierte en el kernel Modelo de de El lenguaje 22 programa de Inicialización de
24 Ejemplo Los bucles (anidados) que recorren los elementos se convierten en el NDRange La parte interna del bucle se convierte en el kernel Estándar Modelo de de El lenguaje 23 programa de Inicialización de -
25 : plataformas, devices y contextos Estándar Modelo de de La runtime library de puede dar soporte a varias plataformas (de diferentes fabricantes) Los devices son consultados desde la plataforma Los contextos se crean para uno o más devices El resto de objetos se crean en el contexto 24 El lenguaje programa de Inicialización de
26 : Memoria y programas Estándar Modelo de de Los espacios de (bufferes e imágenes) se crean y replican en todos los devices en el contexto Se inicializa y accede utilizando el puntero de host y las operaciones soportadas de map/unmap y read/write/copy Los programas se pueden crear a partir de fuentes o de binarios compilados para los devices 25 El lenguaje programa de Inicialización de
27 : colas,, eventos y sincronización Estándar Los se mandan a los devices a través de las colas de Casi todos los en la cola esperan por una lista de eventos y producen un evento a su vez Los eventos sólo se pueden utilizar en el contexto en el que son creados Eventos de flush, finish, espera... Eventos barrera, marker... Modelo de de 26 El lenguaje programa de Inicialización de
28 Estructura básica de un programa Programa en el host Crea objetos de asociados a contextos (1) Compila y crea los kernels (código objeto) (1) Envia los a la cola (1) Sincroniza los (1) Libera los recursos de (1) Se comunica y pregunta a los dispositivos de computación (2) Crea contextos (2) Kernel de computación (se ejecuta en el device) Código C con algunas restricciones y extensiones (3) (1) Capa de plataforma (2) Runtime (3) Lenguaje Estándar Modelo de de El lenguaje 27 programa de Inicialización de
29 Objetos de de Objetos tipo buffer Colección 1D de objetos (como los arrays de C) Tipos escalar y vectorial, y estructuras definidas por el usuario Se accede via punteros en el kernel Objetos tipo imagen Texturas 2D o 3D, frame-buffer, o imágenes Se accede únicamente a través de funciones built-in Objetos de muestreo Describen cómo se muestrea una imagen en el kernel modos de direccionamiento modos de filtrado Estándar Modelo de de El lenguaje 28 programa de Inicialización de
30 Highlights del lenguaje qualifiers tipo función kernel declara una función como kernel qualifiers relacionados con espacio de direccionamiento global, local, constant, private funciones de los Work-item get_work_dim() get_global_id(), get_local_id(), get_group_id(), get_local_size() Funciones de imagen Deben ser accedidas a través de las funciones built-in Las lecturas y escrituras se llevan a cabo a través de los objetos de muestreo desde el host ó en el device Funciones de sincronización Barreras Todos los Work Items dentro de un Work Group deben ejecutar la función de barrera antes de que ninguno de ellos pueda continuar 58 Estándar Modelo de de El lenguaje 29 programa de Inicialización de Universidad Rey Juan Carlos
31 Ejemplo de programa paso a paso 1. Enumerar las plataformas y dispositivos (devices) 2. Crear el contexto 3. Crear la cola de 4. Crear el programa 5. Reservar e inicializar la 6. Poner los argumentos y poner el kernel en la cola 7. Sincronizar 8. Leer los resultados 9. Limpiar Estándar Modelo de de El lenguaje 30 programa de Inicialización de
32 Enumerar las plataformas Estándar Los dispositivos pueden ser : CL_DEVICE_TYPE_CPU CL_DEVICE_TYPE_GPU CL_DEVICE_TYPE_ACCELERATOR Modelo de de El lenguaje 31 programa de Inicialización de
33 Creación del contexto de Estándar Modelo de de El lenguaje programa de 32 Inicialización de
34 Creación de la cola de Estándar Modelo de de El lenguaje programa de 33 Inicialización de
35 Creación del programa y el kernel Estándar Modelo de de El lenguaje programa de 34 Inicialización de
36 Creación del programa y el kernel Estándar Modelo de de El lenguaje programa de 35 Inicialización de
37 Reservar e inicializar Estándar Modelo de de El lenguaje programa de 36 Inicialización de
38 Reservar e inicializar Estándar Modelo de de El lenguaje programa de 37 Inicialización de
39 Otras formas de inicializar la Estándar Modelo de de El lenguaje programa de 38 Inicialización de
40 Estándar Modelo de de El lenguaje programa de Inicialización de 39
41 Estándar Modelo de de El lenguaje programa de Inicialización de 40
42 Estándar Modelo de de El lenguaje programa de Inicialización de 41
43 Estándar Modelo de de El lenguaje programa de Inicialización de 42
44 Estándar Modelo de de El lenguaje programa de Inicialización de 43
45 Estándar Modelo de de El lenguaje programa de Inicialización de 44
46 Estándar Modelo de de El lenguaje programa de Inicialización de 45
47 Suma de dos vectores (muy grandes) en coma flotante c[i] = a[i] + b[i] Equivalente al bucle de C Estándar Modelo de de El lenguaje programa de El ejemplo oclvectoradd del NVIDIA SDK da más detalles Aquí se ha quitado el código de gestión de errores, salida por consola y comparación con la ejecución en el host Inicialización de 46
48 Suma Vectores: Secuencia de ejecución Set Up Set work sizes for kernel execution Allocate and init host data buffers Create context for GPU device Query compute devices (in the context) Create command queue (in the context) Create buffers on the GPU device (in the context) Create and build a program (in the context) Create kernel Set kernel arguments Core sequence Copy (write) data from host to GPU Launch kernel in command-queue Copy (read) data from GPU to host... block Clean up Estándar Modelo de de El lenguaje programa de Inicialización de 47
49 Suma Vectores: Codigo del Kernel Estándar Modelo de de El lenguaje programa de Inicialización de 48
50 Suma Vectores: Host declaraciones Estándar Modelo de de El lenguaje programa de Inicialización de 49
51 Suma Vectores: Host setup Estándar Modelo de de El lenguaje programa de Inicialización de 50
52 Suma Vectores: Contexto, Device & Colas Estándar Modelo de de El lenguaje programa de Inicialización de 51
53 Suma Vectores: Creación de objetos de Estándar Modelo de de El lenguaje programa de Inicialización de 52
54 Suma Vectores: Programa & Kernel Estándar Modelo de de El lenguaje programa de Inicialización de 53
55 Suma Vectores: Core Sequence Estándar Modelo de de El lenguaje programa de Inicialización de 54
56 Suma Vectores: Cleanup Estándar Modelo de de El lenguaje programa de Inicialización de 55
57 Suma Vectores: Salida de consola Estándar Modelo de de El lenguaje programa de Inicialización de 56
58 Estándar Modelo de de Experimentar con el SDK La especificaión de es muy interesante aunque no todos los vendors la implementan al completo Los foros de Khronos y nvidia son especialmente útiles El lenguaje programa de Inicialización de 57
59 Estándar Modelo de de El lenguaje programa de Inicialización de 58
Modelo de aplicaciones CUDA
Modelo de aplicaciones CUDA Utilización de GPGPUs: las placas gráficas se utilizan en el contexto de una CPU: host (CPU) + uno o varios device o GPUs Procesadores masivamente paralelos equipados con muchas
Más detallesArquitecturas GPU v. 2013
v. 2013 Stream Processing Similar al concepto de SIMD. Data stream procesado por kernel functions (pipelined) (no control) (local memory, no cache OJO). Data-centric model: adecuado para DSP o GPU (image,
Más detalles4. Programación Paralela
4. Programación Paralela La necesidad que surge para resolver problemas que requieren tiempo elevado de cómputo origina lo que hoy se conoce como computación paralela. Mediante el uso concurrente de varios
Más detallesFUNDAMENTOS DE COMPUTACIÓN PARA CIENTÍFICOS. CNCA Abril 2013
FUNDAMENTOS DE COMPUTACIÓN PARA CIENTÍFICOS CNCA Abril 2013 6. COMPUTACIÓN DE ALTO RENDIMIENTO Ricardo Román DEFINICIÓN High Performance Computing - Computación de Alto Rendimiento Técnicas, investigación
Más detallesTema 1 Introducción. Arquitectura básica y Sistemas Operativos. Fundamentos de Informática
Tema 1 Introducción. Arquitectura básica y Sistemas Operativos Fundamentos de Informática Índice Descripción de un ordenador Concepto básico de Sistema Operativo Codificación de la información 2 1 Descripción
Más detallesProgramando con memoria unificada. Contenidos [15 diapositivas] Aportaciones de la memoria unificada. I. Descripción
Programando con memoria unificada IX Curso de Verano de la UMA Programación de GPUs con CUDA Contenidos [15 diapositivas] Málaga, del 15 al 24 de Julio, 2015 1. Descripción [5] 2. Ejemplos [8] 3. Observaciones
Más detallesKepler. 1. Presentación de la arquitectura. Índice de contenidos [25 diapositivas] Kepler, Johannes (1571-1630)
Índice de contenidos [25 diapositivas] Manuel Ujaldón Nvidia CUDA Fellow Dpto. Arquitectura de Computadores Universidad de Málaga 1. Presentación de la arquitectura [3] 2. Los cores y su organización [7]
Más detallesARQUITECTURA DE DISTRIBUCIÓN DE DATOS
4 ARQUITECTURA DE DISTRIBUCIÓN DE DATOS Contenido: Arquitectura de Distribución de Datos 4.1. Transparencia 4.1.1 Transparencia de Localización 4.1.2 Transparencia de Fragmentación 4.1.3 Transparencia
Más detallesContenido. Sistema de archivos. Operaciones sobre archivos. Métodos de acceso a archivos. Directorio. Sistema de archivos por capas.
Contenido Sistema de archivos Operaciones sobre archivos Métodos de acceso a archivos Directorio Sistema de archivos por capas Espacio libre Sistema de archivos Proporciona el mecanismo para el almacenamiento
Más detallesUNIVERSIDAD DR. JOSE MATIAS DELGADO
NOMBRE DE LA ASIGNATURA: PROGRAMACION DE COMPUTADORAS 1 a. Generalidades. Duración del Ciclo en Semanas: Número de Orden: 16 Código: PRC1 16 Ciclo Académico: Duración/Hora Clase: 50 III minutos Prerrequisito
Más detallesLABORATORIO DE RC: PRÁCTICA 4: IMPLEMENTACIÓN DE UN CLIENTE DE CORREO
UNIVERSIDADE DA CORUÑA Departamento de Tecnoloxías da Información e as Comunicacións LABORATORIO DE RC: PRÁCTICA 4: IMPLEMENTACIÓN DE UN CLIENTE DE CORREO PRÁCTICA 4: Implementación de un Cliente de Correo
Más detallesPROGRAMACIÓN PÁGINAS WEB CON PHP
PROGRAMACIÓN PÁGINAS WEB CON PHP Curso de desarrollo de aplicaciones web. Para ello se estudia la programación de la parte cliente con JavaScript y la programación de la parte servidor con la tecnología
Más detallesSOLUCION EXAMEN junio 2006
SOLUCION EXAMEN junio 2006 1. Explique razonadamente si las siguientes afirmaciones son verdaderas o falsas: I) (1 p) En UNIX únicamente se distinguen dos tipos de procesos: los procesos de usuario y los
Más detallesCapítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable
Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable 1. Introducción. El Sistema de Administración de Información de un Negocio Franquiciable (SAINF)
Más detallesIntroducción a la programación orientada a objetos
Introducción a la programación orientada a objetos 1. Introducción a la programación orientada a objetos 2. Las clases 3. El tipo Struct 4. Diferencias entre Class y Struct 5. Pilares de la Programación
Más detallesGPU IMPLEMENTATIONS OF SCHEDULING HEURISTICS FOR HETEROGENEOUS COMPUTING ENVIRONMENTS
GPU IMPLEMENTATIONS OF SCHEDULING HEURISTICS FOR HETEROGENEOUS COMPUTING ENVIRONMENTS MAURO CANABÉ SERGIO NESMACHNOW Centro de Cálculo, Facultad de Ingeniería Universidad de la República, Uruguay GPU IMPLEMENTATIONS
Más detallesCapítulo 5 Programación del algoritmo en LabVIEW
Programación del algoritmo en LabVIEW En este capítulo se describen las funciones que se emplearon para implementar el control PID wavenet en LabVIEW. El algoritmo wavenet fue implementado en LabVIEW para
Más detallesTema 4. Gestión de entrada/salida
Tema 4. Gestión de entrada/salida 1. Principios de la gestión de E/S. 1.Problemática de los dispositivos de E/S. 2.Objetivos generales del software de E/S. 3.Principios hardware de E/S. 1. E/S controlada
Más detallesBASES DE DATOS OFIMÁTICAS
BASES DE DATOS OFIMÁTICAS Qué es una Bases de Datos Ofimática?. En el entorno de trabajo de cualquier tipo de oficina ha sido habitual tener un archivo con gran parte de la información necesaria para el
Más detallesAdquisición de Datos usando Matlab
21 Adquisición de Datos usando Matlab Bruno Vargas Tamani Facultad de Ingeniería Electrónica y Eléctrica, Universidad Nacional Mayor de San Marcos, Lima, Perú RESUMEN: La interconexión a nivel de computadoras
Más detallesMicrosoft SQL Server Conceptos.
Microsoft Conceptos. Microsoft 2005 es una plataforma de base de datos a gran escala de procesamiento de transacciones en línea (OLTP) y de procesamiento analítico en línea (OLAP). La siguiente tabla muestra
Más detalles.NET y J2EE VALORACIÓN Y COMPARACIÓN DE LOS ELEMENTOS DE LAS DOS PLATAFORMAS. Definiciones...2 C# y Java...3 Similitudes...4 Ventajas...
.NET y J2EE VALORACIÓN Y COMPARACIÓN DE LOS ELEMENTOS DE LAS DOS PLATAFORMAS Definiciones...2 C# y Java.....3 Similitudes...4 Ventajas...4 Definiciones Sobre J2EE J2EE (Java 2 Platform Enterprise Edition)
Más detallesEntre los más conocidos editores con interfaz de desarrollo tenemos:
Herramientas de programación Para poder programar en ensamblador se precisa de algunas herramientas básicas, como un editor para introducir el código, un ensamblador para traducir el código a lenguaje
Más detallesJava Inicial (20 horas)
Java Inicial (20 horas) 1 Temario 1. Programación Orientada a Objetos 2. Introducción y Sintaxis Java 3. Sentencias Control Flujo 4. POO en Java 5. Relaciones entre Objetos 6. Polimorfismo, abstracción
Más detallesCreación y administración de grupos de dominio
Creación y administración de grupos de dominio Contenido Descripción general 1 a los grupos de Windows 2000 2 Tipos y ámbitos de los grupos 5 Grupos integrados y predefinidos en un dominio 7 Estrategia
Más detallesUNIDADES FUNCIONALES DEL ORDENADOR TEMA 3
UNIDADES FUNCIONALES DEL ORDENADOR TEMA 3 INTRODUCCIÓN El elemento hardware de un sistema básico de proceso de datos se puede estructurar en tres partes claramente diferenciadas en cuanto a sus funciones:
Más detallesSAP Business Workflow. PDF created with pdffactory trial version www.pdffactory.com
SAP Business Workflow Business April Workplace 10, 2006 Contenidos Definición de Business Workplace Detalles de la Worklist Detalles de un Workitem Logs Detalles Adicionales en el marco del proyecto PPP
Más detallesConfiguración del servicio de printers CUPS
Configuración del servicio de printers CUPS Common Unix Printing System (Sistema de impresión común de Unix, abreviado CUPS) es un sistema de impresión modular para sistemas operativos de tipo Unix que
Más detallesProcesos. Procesos. Concurrencia de procesos. Qué es un proceso? Estados de un proceso. Modelo de 2 estados. (C) 2008 Mario Medina 1
Procesos Procesos Mario Medina mariomedina@udec.cl El sistema operativo como administrador de procesos Controla la ejecución de procesos para optimizar criterios Asigna recursos a procesos Facilita sincronización
Más detallesLa utilización de las diferentes aplicaciones o servicios de Internet se lleva a cabo respondiendo al llamado modelo cliente-servidor.
Procesamiento del lado del servidor La Programación del lado del servidor es una tecnología que consiste en el procesamiento de una petición de un usuario mediante la interpretación de un script en el
Más detallesCAPITULO 8. Planeamiento, Arquitectura e Implementación
CAPITULO 8 Planeamiento, Arquitectura e Implementación 8.1 Replicación en SQL Server La replicación es un conjunto de tecnologías destinadas a la copia y distribución de datos y objetos de base de datos
Más detallesTutorial CUDA Univ. de Santiago. 6 y 7 de Agosto, 2013
Tutorial CUDA Univ. de Santiago. 6 y 7 de Agosto, 2013 La suma por reducción Este código realiza la suma de un vector de N elementos mediante un operador binario de reducción, es decir, en log 2 (N) pasos.
Más detallesGuía de uso del Cloud Datacenter de acens
guíasdeuso Guía de uso del Cloud Datacenter de Calle San Rafael, 14 28108 Alcobendas (Madrid) 902 90 10 20 www..com Introducción Un Data Center o centro de datos físico es un espacio utilizado para alojar
Más detallesIntroducción a los Sistemas Operativos
Introducción a los Sistemas Operativos 2º Ingeniero de Telecomunicación (Sonido e Imagen) Departamento de Ingeniería Telemática Universidad Carlos III de Madrid 2 Qué vamos a ver hoy? Qué es un sistema
Más detallesOracle 12c DISEÑO Y PROGRAMACIÓN
Oracle 12c Se estudia el servidor de bases de datos empresarial Oracle 12c, centrándose especialmente en el punto de vista de un diseñador o programador de bases de datos, pero explicando también cómo
Más detallesEstructura y Tecnología de Computadores (ITIG) Luis Rincón Córcoles Ángel Serrano Sánchez de León
Estructura y Tecnología de Computadores (ITIG) Luis Rincón Córcoles Ángel Serrano Sánchez de León Programa. Introducción. 2. Elementos de almacenamiento. 3. Elementos de proceso. 4. Elementos de interconexión.
Más detallesWindows Server 2003. Windows Server 2003
Windows Server 2003 Windows Server 2003 Es un sistema operativo de la familia Windows de la marca Microsoft para servidores que salió al mercado en el año 2003. Está basada en tecnología NT y su versión
Más detallesabacformacio@abacformacio.com 1
Cu Oracle 10gg Estudia el servidor de bases de datos Oracle 10g desde el punto de vista de un diseñador y programador de bases de datos, prestando atención a los objetos que puede crear, como tablas, consultas
Más detallespicojava TM Características
picojava TM Introducción El principal objetivo de Sun al introducir Java era poder intercambiar programas ejecutables Java entre computadoras de Internet y ejecutarlos sin modificación. Para poder transportar
Más detalles1. Manejo de memoria estática 2. Manejo de memoria dinámica
1. Manejo de memoria estática 2. Manejo de memoria dinámica *La administración de memoria de una computadora es una tarea fundamental debido a que la cantidad de memoria es limitada. *El sistema operativo
Más detallesCapitulo 5. Implementación del sistema MDM
Capitulo 5. Implementación del sistema MDM Una vez que se concluyeron las actividades de análisis y diseño se comenzó la implementación del sistema MDM (Manejador de Documentos de MoProSoft). En este capitulo
Más detallesCDI Exclusión mutua a nivel alto. conceptos
conceptos El concepto de usar estructuras de datos a nivel alto libera al programador de los detalles de su implementación. El programador puede asumir que las operaciones están implementadas correctamente
Más detallesModelo de Objetos Distribuidos
Remote Method Invocation Modelo de Objetos Distribuidos Un objeto remoto es un objeto cuyos métodos pueden ser invocados desde otra máquina virtual de java, potencialmente en un host diferente. Modelo
Más detallesGUIA PROGRAMACIÓN ORIENTADA A OBJETOS
GUIA PROGRAMACIÓN ORIENTADA A OBJETOS 1. Por qué la P.O.O? R= A medida que se van desarrollando los lenguajes, se va desarrollando también la posibilidad de resolver problemas más complejos. En la evolución
Más detallesCapítulo 4. Vectores y matrices. 4.1 Declaración de tablas. 4.2 Declaración estática de tablas
Capítulo 4 Vectores y matrices En FORTRAN se puede utilizar un tipo especial de variable que sirve, en particular, para almacenar vectores y matrices. De esta forma, se utiliza un sólo nombre para referirse
Más detallesLa Arquitectura de las Máquinas Virtuales.
La Arquitectura de las Máquinas Virtuales. La virtualización se ha convertido en una importante herramienta en el diseño de sistemas de computación, las máquinas virtuales (VMs) son usadas en varias subdiciplinas,
Más detalles(PHP y APACHE), y el programa de comunicación Skype, para controlar de manera
Capítulo 4. Llamada Telefónica En este capítulo se explicará la manera en que se configuraron las herramientas web (PHP y APACHE), y el programa de comunicación Skype, para controlar de manera dinámica
Más detallesGeneración de código para Hibernate desde modelos UML
Generación de código para Hibernate desde modelos UML Alejandro Nogueiro Mariscal Ingeniería Técnica en Informática de Sistemas, Universidad de Cádiz 24 de Septiembre 2012 1 / 35 Índice 1 Motivación y
Más detallesMonografía RECINTOS SEGUROS v4.2
Monografía RECINTOS SEGUROS v4.2 (6 Septiembre 2011) (Conservar esta página si se va a imprimir a doble cara) MONOGRAFÍA RECINTOS SEGUROS V4.2 Página 2 de 19 Departamento de Consultoría Documento Confidencial
Más detallesComputación de Propósito General en Unidades de Procesamiento Gráfico GPGPU
Computación de Propósito General en Unidades de Procesamiento Gráfico () E. Dufrechou, P. Ezzatti M. Pedemonte Práctico Programación con CUDA Práctica 0: Ejecución del ejemplo visto en teórico (suma de
Más detallesGeneral Parallel File System
General Parallel File System Introducción GPFS fue desarrollado por IBM, es un sistema que permite a los usuarios compartir el acceso a datos que están dispersos en múltiples nodos; permite interacción
Más detallesEjemplos básicos de webmathematica para profesores
Ejemplos básicos de webmathematica para profesores Cualquier cálculo hecho dentro Mathematica puede ser realizado usando webmathematica con dos limitaciones significativas. Primero, al usar webmathematica,
Más detallesCurso de PHP con MySQL Gratis
Curso de PHP con MySQL Gratis Introducción Este mini curso o mini tutorial de PHP le ayudará a realizar cualquier sistema para que pueda insertar uno o varios registros a una base de datos con MySQL, este
Más detallesikimap. Comparte cartografía.
ikimap. Comparte cartografía. Alejandro Lamas Pérez, Francisco Xavier Sotelo Rúa, Jorge Tourís Otero. Sixtema Área Central 25 J, 15.707 Santiago de Compostela {a.lamas, f.sotelo, j.touris}@sixtema.es Resumen
Más detallesCreación un instalador con Visual Studio.NET. Irene Sobrón. Ingeniero de Telecomunicaciones por la Escuela Técnica Superior de Bilbao
Creación un instalador con Visual Studio.NET Irene Sobrón Ingeniero de Telecomunicaciones por la Escuela Técnica Superior de Bilbao Diferencia entre Debug y Release Existen dos configuraciones para realizar
Más detallesTalleres CLCAR. CUDA para principiantes. Título. Mónica Liliana Hernández Ariza, SC3UIS-CRC NVIDIA Research Center monicalilianahernandez8@gmail.
a CUDA para principiantes Mónica Liliana Hernández Ariza, SC3UIS-CRC NVIDIA Research Center monicalilianahernandez8@gmail.com Tener un primer encuentro práctico con la programación en CUDA para personas
Más detallesUNIVERSIDAD TECNICA DEL NORTE
UNIVERSIDAD TECNICA DEL NORTE FACULTAD DE INGENIERIA EN CIENCIAS APLICADAS ESCUELA DE INGENIERIA EN SISTEMAS COMPUTACIONALES MANUEL DE USUARIO TEMA: SISTEMA INFORMÁTICO PARA LA PROMOCIÓN Y PUBLICIDAD DE
Más detallesTema 2: Implementación del núcleo de un Sistema Operativo
Tema 2: Implementación del núcleo de un Sistema Operativo 1. Sistema Operativo Unix 2. Sistema Operativo Windows (a partir de NT) Dpto. Lenguajes y Sistemas Informáticos. Universidad de Granada 1 1. Sistema
Más detallesPS.Vending Almacén Pocket PC
Versión 1.0 Enero 2013 Autor: Pedro Naranjo Rodríguez www.psvending.es Contenido Qué es PS.Vending Almacén Pocket PC?... 3 Funciona PS.Vending Almacén Pocket PC independiente de PS.Vending?... 3 Requisitos...
Más detallesIncidencias: Todas las incidencias que ocurrirán durante el apadrinamiento de un niño se deben registrar para poder buscar soluciones.
Apadrinamiento ONG Estudio preliminar: Se desea diseñar una aplicación para la gestión de los apadrinamientos de una asociación ONG. Para ello el sistema proporcionara una interfaz al usuario para poder
Más detallesPráctica 7. Pruebas. Introducir conceptos básicos de pruebas unitarias en sistemas orientados a objetos.
Objetivos Introducir conceptos básicos de pruebas unitarias en sistemas orientados a objetos. Material Necesario - Pruebas de caja negra con Junit. www.junit.org Viene integrado en Eclipse, pero al crear
Más detallesGuía de instalación de la carpeta Datos de IslaWin
Guía de instalación de la carpeta Datos de IslaWin Para IslaWin Gestión CS, Classic o Pyme a partir de la revisión 7.00 (Revisión: 10/11/2011) Contenido Introducción... 3 Acerca de este documento... 3
Más detallesPROGRAMACIÓ DIDÁCTICA: Secuanciación, Temporalización y Unidades Didácticas
Departamento de Informática PROGRAMACIÓN DIDÁCTICA Curso 11-12 1 CONSEJERÍA DE EDUCACIÓN I.E.S. NERVIÓN Departamento de Informática CICLO FORMATIVO: TÉCNICO SUPERIOR EN DESARROLLO DE APLICACIONES MULTIPLATAFORMA.
Más detallesINGENIERÍA DE SOFTWARE. Sesión 3: Tipos
INGENIERÍA DE SOFTWARE Sesión 3: Tipos Contextualización Actualmente existe una gran variedad en los software que se pueden clasificar en varias categorías, como pueden ser, por tipo de licencia, tipo
Más detalles7. Manejo de Archivos en C.
7. Manejo de Archivos en C. Los datos que hemos tratado hasta el momento han residido en la memoria principal. Sin embargo, las grandes cantidades de datos se almacenan normalmente en un dispositivo de
Más detallesUna computadora de cualquier forma que se vea tiene dos tipos de componentes: El Hardware y el Software.
ARQUITECTURA DE LAS COMPUTADORAS QUE ES UNA COMPUTADORA (UN ORDENADOR)? Existen numerosas definiciones de una computadora, entre ellas las siguientes: 1) Una computadora es un dispositivo capaz de realizar
Más detallesCAPITULO 9. Diseño de una Base de Datos Relacional Distribuida
9.1 Operaciones CAPITULO 9 Diseño de una Base de Datos Relacional Distribuida Las consultas distribuidas obtienen acceso a datos de varios orígenes de datos homogéneos o heterogéneos. Estos orígenes de
Más detallesPráctica 8 - DMA y Almacenamiento Masivo
Práctica 8 - DMA y Almacenamiento Masivo Organización del Computador 1 Segundo Cuatrimestre 2011 Ejercicio 1 El siguiente protocolo de handshaking permite a un amo (por ejemplo: CPU) ordenar la realización
Más detallesGestion de archivos. Problemas al almacenar datos sólo en la memoria:
Gestion de archivos Problemas al almacenar datos sólo en la memoria: 1. El tamaño está limitado por el tamaño de la memoria qué pasa con aplicaciones que necesiten acceder a gran cantidad de información?
Más detallesSistemas Operativos. Curso 2016 Procesos
Sistemas Operativos Curso 2016 Procesos Agenda Proceso. Definición de proceso. Contador de programa. Memoria de los procesos. Estados de los procesos. Transiciones entre los estados. Bloque descriptor
Más detallesProgramación Orientada a Objetos con Java
Programación Orientada a Objetos con Java M.C. Jorge Eduardo Ibarra Esquer jorgeeie@uabc.mx Sobrecarga de métodos Java permite la definición de dos o más métodos que tengan el mismo nombre, dentro de la
Más detallesPART II: Moviendo al jugador
UNITY PART II: Moviendo al jugador El movimiento se lo vamos a dar a través de un programa Definición de programa: Un programa es una secuencia de instrucciones, escritas para realizar una tarea específica
Más detallesAjustes del Curso en egela (Moodle 2.5)
Ajustes del Curso en egela (Moodle 2.5) Manual para el profesorado Versión 2 (12/05/2015) El presente manual ha sido desarrollado por el Campus Virtual de la Universidad del País Vasco / Euskal Herriko
Más detallesIntroduccion al Lenguaje C. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia
Introduccion al Lenguaje C Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia Introducción C es un lenguaje de programación creado en 1972 por
Más detallesUnidad I. Introducción a la programación de Dispositivos Móviles (Continuación )
Clase:003 1 Unidad I Introducción a la programación de Dispositivos Móviles (Continuación ) 2 Entornos de Desarrollo Virtualizaciones. Agenda IDE s. Y Lenguajes de Programación. 3 Virtualización Que es
Más detallesOracle vs Oracle por Rodolfo Yglesias Setiembre 2008
Oracle vs Oracle por Rodolfo Yglesias Setiembre 2008 Introducción Aunque la estrategia de adquisiciones que Oracle ha seguido en los últimos años siempre ha buscado complementar y fortalecer nuestra oferta
Más detallesElementos requeridos para crearlos (ejemplo: el compilador)
Generalidades A lo largo del ciclo de vida del proceso de software, los productos de software evolucionan. Desde la concepción del producto y la captura de requisitos inicial hasta la puesta en producción
Más detallesNo se requiere que los discos sean del mismo tamaño ya que el objetivo es solamente adjuntar discos.
RAIDS MODO LINEAL Es un tipo de raid que muestra lógicamente un disco pero se compone de 2 o más discos. Solamente llena el disco 0 y cuando este está lleno sigue con el disco 1 y así sucesivamente. Este
Más detallesWindows Server 2012: Infraestructura de Escritorio Virtual
Windows Server 2012: Infraestructura de Escritorio Virtual Módulo 1: Application Virtualization Módulo del Manual Autores: James Hamilton-Adams, Content Master Publicado: 5 de Octubre 2012 La información
Más detallesUna variable de clase escalar tiene un nivel de indirección igual a 1. Por ejemplo, las variables i, b y x definidas como se muestra a continuación.
Descripción de la semántica de ALFA En esta descripción sólo se mencionarán los aspectos en los que el lenguaje de programación ALFA pueda diferir de otros lenguajes de programación de alto nivel. Se sobreentienden
Más detallesWindows Server 2012: Identidad y Acceso. Módulo 2: Descripción General de Windows Server 2012 Remote Desktop Services.
Windows Server 2012: Identidad y Acceso Módulo 2: Descripción General de Windows Server 2012 Remote Desktop Services. Manual del Módulo Autor: Andrew J Warren, Content Master Publicado: Septiembre 10 de
Más detallesGuía de Laboratorio Base de Datos I.
Guía de Laboratorio Base de Datos I. UNIVERSIDAD DON BOSCO FACULTAD DE INGENIERIA 1- Gestión del SQL Server Management Studio y creación de bases de datos. Objetivos: Identificar el entorno de trabajo
Más detallesAplicaciones Móviles. Sesión 12: Acceso a datos
Aplicaciones Móviles Sesión 12: Acceso a datos Contextualización Los datos son actualmente elementos muy importantes, pues éstos definen características de uso de elementos en la informática, dan identidad
Más detallesCONFIGURACIÓN DEL ADAPTADOR DE RED EN LINUX
CONFIGURACIÓN DEL ADAPTADOR DE RED EN LINUX 16/09/2005 Índice de Contenidos 1 INTRODUCCIÓN... 1-1 2 DISTRIBUCIONES LINUX... 2-1 3 CONFIGURACIÓN DE RED EN LINUX... 3-1 3.1 FEDORA CORE 3... 3-1 3.1.1 Configuración
Más detallesProgramación páginas web. Servidor (PHP)
Programación páginas web. Servidor (PHP) Curso de desarrollo de aplicaciones web. Para ello se estudia la programación de la parte servidor con la tecnología PHP y el servidor de bases de datos MySQL.
Más detallesEntorno de Ejecución del Procesador Intel Pentium
Arquitectura de Ordenadores Arquitectura del Procesador Intel Pentium Abelardo Pardo abel@it.uc3m.es Universidad Carlos III de Madrid Departamento de Ingeniería Telemática Entorno de Ejecución del Procesador
Más detallesSEGURIDAD Y PROTECCION DE FICHEROS
SEGURIDAD Y PROTECCION DE FICHEROS INTEGRIDAD DEL SISTEMA DE ARCHIVOS ATAQUES AL SISTEMA PRINCIPIOS DE DISEÑO DE SISTEMAS SEGUROS IDENTIFICACIÓN DE USUARIOS MECANISMOS DE PROTECCIÓN Y CONTROL INTEGRIDAD
Más detallesWorkflows? Sí, cuántos quiere?
Workflows? Sí, cuántos quiere? 12.11.2006 Servicios Profesionales Danysoft Son notables los beneficios que una organización puede obtener gracias al soporte de procesos de negocios que requieran la intervención
Más detallesIntroducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual
Introducción Algunas de las personas que trabajan con SGBD relacionales parecen preguntarse porqué deberían preocuparse del diseño de las bases de datos que utilizan. Después de todo, la mayoría de los
Más detallesConcurrencia. Primitivas IPC con bloqueo
Concurrencia Primitivas IPC con bloqueo Primitivas de IPC con bloqueo La solución de Peterson es correcta, pero tiene el defecto de requerir espera ocupada: Cuando un proceso quiere entrar en su región
Más detallesModulo I. Introducción a la Programación Web. 1.1 Servidor Web.
Modulo I. Introducción a la Programación Web. 1.1 Servidor Web. Antes de analizar lo que es un servidor Web y llevara a cabo su instalación, es muy importante identificar diferentes elementos involucrados
Más detallesCAPITULO IV CONCLUSIONES Y RECOMENDACIONES
CAPITULO IV CONCLUSIONES Y RECOMENDACIONES VERIFICACIÓN DE OBJETIVOS El objetivo general del proyecto ha sido cumplido satisfactoriamente en la Unidad de Sistemas de PETROECUADOR, realizando el análisis
Más detallesTema 2: Arquitectura del repertorio de instrucciones. Visión del computador que tiene el programador en bajo nivel.
Tema 2: Arquitectura del repertorio de instrucciones Visión del computador que tiene el programador en bajo nivel. Lo que el programador en lenguaje ensamblador debe conocer para escribir programas: (1)
Más detallesUnidad 1: Conceptos generales de Sistemas Operativos.
Unidad 1: Conceptos generales de Sistemas Operativos. Tema 2: Estructura de los sistemas de computación. 2.1 Funcionamiento de los sistemas de computación. 2.2 Ejecución de instrucciones e interrupciones
Más detallesINDICE Parte I: Qué es Visual Foxpro Capitulo 1: Características del Producto
INDICE Agradecimientos 5 Sobre el Autor 6 Introducción 7 Índice 9 Parte I: Qué es Visual Foxpro Capitulo 1: Características del Producto 19 El Administrador de proyectos 21 Creación de un proyecto 27 Personalización
Más detallesComponentes de Integración entre Plataformas Información Detallada
Componentes de Integración entre Plataformas Información Detallada Active Directory Integration Integración con el Directorio Activo Active Directory es el servicio de directorio para Windows 2000 Server.
Más detallesCómo acceder a Google Drive? Tiene más funcionalidades una cuenta de Google?
Manual de Qué es Google Drive? Qué es Google Drive? Google Drive es un servicio web que le permite almacenar, modificar, compartir y acceder a sus archivos y documentos independientemente de dónde se encuentre
Más detallesConsultas con combinaciones
UNIDAD 1.- PARTE 2 MANIPULACIÓN AVANZADA DE DATOS CON SQL. BASES DE DATOS PARA APLICACIONES Xochitl Clemente Parra Armando Méndez Morales Consultas con combinaciones Usando combinaciones (joins), se pueden
Más detallesport@firmas V.2.3.1 Manual de Portafirmas V.2.3.1
Manual de Portafirmas V.2.3.1 1 1.- Introducción 2.- Acceso 3.- Interfaz 4.- Bandejas de peticiones 5.- Etiquetas 6.- Búsquedas 7.- Petición de firma 8.- Redactar petición 9.- Firma 10.- Devolución de
Más detallesUniversidad Autónoma de Baja California Facultad de Ingeniería Mexicali
Sumadores En este documento se describe el funcionamiento del circuito integrado 7483, el cual implementa un sumador binario de 4 bits. Adicionalmente, se muestra la manera de conectarlo con otros dispositivos
Más detalles