Radio Observatorio de Jicamarca Instituto Geofísico del Perú

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Radio Observatorio de Jicamarca Instituto Geofísico del Perú"

Transcripción

1 Radio Observatorio de Jicamarca Instituto Geofísico del Perú SOLUCIÓN GPU PARA LA SIMULACIÓN Y ANÁLISIS DE TRAYECTORIAS DE PARTÍCULAS EN PLASMAS IONOSFÉRICOS DANIEL SUÁREZ MUÑOZ INVESTIGACIÓN, DESARROLLO E INNOVACIÓN SETIEMBRE 2011

2 RESUMEN Con el propósito de incluir los efectos de colisiones de Coulomb en los modelos espectrales de las señales de radar de dispersión incoherente, Milla & Kudeki[1] desarrollaron un procedimiento Monte Carlo para calcular el espectro de dispersión incoherente para diferentes configuraciones de plasma. Este procedimiento esta basado en la simulación de trayectorias de partículas cargadas en plasmas de oxígeno (O+), helio (He+) e hidrógeno (H+), una tarea que requiere una alta potencia de computo. En este informe se exponen las consideraciones de la simulación y su implementación usando la tecnología GPU (Graphic Processing Unit) que es una alternativa para realizar computo de alto desempeño. La GPU utilizada para este proyecto es la NVIDIA Tesla C1060 la cual cuenta con la arquitectura de computo paralelo CUDA (Compute Unified Distributed Architecture) con capacidad de procesamiento multihilo, donde cada hilo de procesamiento (thread) simula la trayectoria de una partícula (electrón oion)paraundeterminadosetdecondicionesinicialesyparámetrosdelplasma.elresultado de la simulación son series de tiempo en tres dimensiones de las velocidades y posiciones de la partícula, estos resultados son usados para la estimación del espectro de dispersión incoherente. La descripción del algoritmo propuesto y los resultados obtenidos son expuestos en este reporte. ii

3 ÍNDICE 1. Introducción Descripción del Proyecto Marco Teórico Movimiento de la Partícula Consideraciones de la Simulación Introducción GPGPU - CUDA GPGPU - Computo de Propósito General en GPU CUDA Arquitectura CUDA Modelo de Programación Recursos de Hardware GPU Simulación Monte Carlo de Trayectoria de Partículas Simulación Monte Carlo en CPU Simulación Monte Carlo en GPU Generación de Números Aleatorios Manejo de memoria y consideraciones de Optimización Resultados Generación de Aleatorios Simulación Monte Carlo Conclusiones Recomendaciones A. Requisitos de Software e Instalación A.1. Requisitos de Software A.2. Instalación de CUDA en Linux Ubuntu: A.2.1. CUDA - Guía de Instalación A.2.2. Archivo grub.conf A.2.3. Archivo bashrc y Makefile A.2.4. Listado de tarjetas gráficas que soporten CUDA B. Codificación del algoritmo C. Programa en Python para visualización de las Trayectorias e Histogramas de Velocidades D. Validación de Números Aleatorios Bibliografía iii

4 SOLUCIÓN GPU PARA LA SIMULACIÓN Y ANÁLISIS DE TRAYECTORIAS DE PARTÍCULAS EN PLASMAS IONOSFÉRICOS 1. Introducción Recientemente, Milla & Kudeki [1] han desarrollado un método para el cálculo del espectro de las señales de radar de dispersión incoherente el cual incluye los efectos de colisiones de Coulomb entre partículas que conforman un plasma. Este método fue implementado para el caso de plasmas de iones de oxigeno (O+), tipo de ión que predomina en las regiones alrededor y por debajo del pico de la región F de la ionósfera. Con el fin de extender el modelo para plasmas de helio (He+) e hidrógeno (H+) presentes en las capas altas de la ionosfera, es necesario realizar múltiples simulaciones de trayectorias de partículas (tanto de iones y de electrones) para distintas configuraciones de plasmas, y con los resultados elaborar una librería de funciones de autocorrelación de las trayectorias (ACFs). Debido a que la simulación requiere de una alta capacidad de computo en un inicio se desarrolló una solución por Milla & Kudeki [1] para correr las simulaciones en un entorno de cluster de computadoras, el Turing Cluster, mantenido y desarrollado por el Programa de Ingeniería y Ciencias Computacionales de la Universidad de Illinois. Debido a las restricciones y limitaciones del uso del cluster se decidió que es conveniente realizar la simulación usando una tecnología alternativa, en este caso, unidades de procesamiento gráfico GPUs, tecnología que en los últimos cinco años ha marcado una revolución en el computo científico y de alta performance. El uso de estas unidades es ahora más sencillo ya que actualmente se puede interactuar y derivar computo a estas unidades mediante lenguajes de programación estándar, como el C/C++. Además de su facilidad de interacción mediante el lenguaje de programación, también trae consigo una alta capacidad de computo, que es alcanzada a un bajo coste económico y energético. Este reporte describe la solución para la simulación de trayectorias de partículas empleando el método de Monte Carlo en un ambiente GPU, donde también se expone brevemente sobre la arquitectura CUDA, que es la más promocionada y usada en el mercado para computo científico. Este desarrollo abre una oportunidad de conocimiento y experiencia con la tecnología GPU, de la cual se espera un alto desempeño para distintas aplicaciones o necesidades de computo requeridas en el Radio Observatorio de Jicamarca. 2. Descripción del Proyecto El presente reporte es parte del primer proyecto desarrollado en el Radio Observatorio de Jicamarca usando la reciente tecnología de Procesadores Gráficos para satisfacer la alta demanda de computo requerida por las simulaciones de trayectorias y cálculo de funciones de autocorrelación. Este proyecto esta constituido de las siguientes etapas: I. Desarrollo de rutinas para simulación de trayectorias de partículas en un sistema GPU II. Optimización del cálculo de las trayectorias de partículas en GPU III. Desarrollo de rutinas para el análisis estadístico de las trayectorias de partículas en un sistema GPU IV. Cálculo de histogramas de velocidades y desplazamientos V. Desarrollo de una base de datos de las estadísticas de las simulaciones En este reporte se describen las Etapas I y II. Además se presenta el marco teórico, se hace una descripción de los procesadores gráficos: arquitectura, manejo de memoria, consideraciones de optimización y se presentan los resultados alcanzados usando esta tecnología. El énfasis en las primeras dos etapas del proyecto se centra en la simulación de trayectorias de partículas. Las etapas III y IV tienen énfasis en el análisis estadístico del resultado de las simulaciones realizadas en las etapas I y II. La V etapa de este proyecto tiene como fin implementar una base de datos con la estadística de las simulaciones, para este punto se debe haber alcanzado un desempeño óptimo de todas las etapas anteriores, donde se habrán conjugado múltiples unidades de procesamiento. 1

5 3. Marco Teórico Las simulaciones de trayectorias realizadas en un entorno GPU basan su implementación en un modelo que considera el efecto de las colisiones que sufren las partículas: electrones o iones en un ambiente de plasma ionizado donde también se considera el efecto del campo magnético. La simulación también requiere ciertas especificaciones o consideraciones a tener en cuenta para lograr un resultado valido, acorde al contexto de la simulación definida inicialmente por ciertos parámetros Movimiento de la Partícula v n+1 = v n + q m v n Bt β(v n )tv n + D (v n )tn 1ˆv + D (v n ) t 2 N 2ˆv 1 + D (v n ) t 2 N 3ˆv 2 (1) Donde: q: cargaeléctricadelapartícula,electrónoión m: masadelapartícula B: campomagnético ˆv: vectoresunitariosparalelosyperpendicularesa B β: coeficientedefricción D,D :coeficientesdedifusiónparalelosyperpendicularesa B N 1,N 2,N 3 :númerosaleatorioscondistribucióngaussiana r n+1 = r n + v n+1 + v n t (2) 2 Los efectos de las colisiones de Coulomb sobre el movimiento de la partícula son modelados usando la ecuación discreta de Langevin [1], indicada por las ecuaciones discretas (1) y (2), en esta formula recursiva los efectos de las colisiones son representados por fuerzas aleatorias de difusión con coeficientes tomados del modelo Fokker-Planck de Rosenbluth [2] Consideraciones de la Simulación Las trayectorias de una partícula son simuladas para un entorno que corresponde a la región-f de la ionósfera, donde se considera un plasma homogéneo con la presencia de un campo magnético B o,este plasma posee densidad de electrones N e,temperaturadeelectroneseionest e y T i.valoreshabitualesde B o,n e,t i y T e están definidos en la siguiente tabla. Parámetro Valor Densidad de Electrones N e m 3 Campo Magnético B o 25 µt Temperatura de Electrón T e 1000 K Temperatura de Ion T i 1000 K Composición de Ion O+ Cuadro 1: Parámetros típicos para región-f de la ionósfera En la Figura 1 se describen las tareas requeridas por la simulación. La entrada del proceso de simulación es un archivo de configuración en formato hdf5, bloques de procesamiento, longitud de onda Bragg, carácter S o L que define los ángulos de aspecto, etc. Con la lectura del archivo de configuración se obtienen los parámetros físicos del plasma, estos se encargan de definir un caso requerido por el usuario. En este archivo también se definen los parámetros de procesamiento, simulación, cálculo de histogramas de velocidades, etc. (ver Anexo B). Los parámetros contenidos en el archivo de configuración definen las condiciones del plasma. 2

6 La generación de números aleatorios se requiere para fijar una velocidad inicial v x,y,z [0] con valor aleatorio gaussiano donde la posición r x,y,z [0] se fija en el origen, éstas son las condiciones iniciales de la simulación. Luego, se calculan los coeficientes de fricción y de difusión de acuerdo a los parámetros del plasma. Las posiciones y velocidades se determinan en tres dimensiones x, y, z donde la dirección z es paralela al campo magnético. Según la ecuación (1) para el cálculo de las velocidades se requiere de valores aleatorios que definen las fuerzas aleatorias de difusión, éstas deben ser calculadas para cada muestra, lo cual indica que se deben generar valores aleatorios para cada dimensión x, y, z. El resultado de la simulación son series de tiempo de las posiciones y velocidades de la partícula que son almacenados en secuencias de tamaño M, estossondatosdetipocomaflotanteendoble precisión. Figura 1: Diagrama de Bloques del proceso de simulación Alrededor de N (10 9 )muestrasdevelocidadesyposicionessonrequeridasporlasimulación[1], teniendo en cuenta que se calculan datos en coma flotante con doble precisión, se requiere de una memoria RAM de mas de 40GB. Para reducir el consumo de memoria se divide en secuencias L de tamaño M, donde N = L M, esoseindicaenlafigura2,elvalortípicodem es igual a 2 17 y L es igual Las velocidades calculadas son usadas para comprobar los resultados de la simulación. Se requiere que estas velocidades tengan una distribución gaussiana, con las que se realiza el cálculo de histogramas para observar el comportamiento de la simulación. Figura 2: Trayectoria de una partícula en la dirección z paralela al campo magnético B. 3

7 Las posiciones calculadas se emplearan para realizar el análisis estadístico a desarrollarse en la Etapa III, donde se calcula la función de autocorrelación de las posiciones cada partícula. Dado que esta etapa aún no está implementada se realizará la simulación de trayectoria de partículas para un número determinado de secuencias que no excedan la capacidad de memoria disponible en la unidad de procesamiento. 4. Introducción GPGPU - CUDA En los últimos años ha habido un creciente interés en las oportunidades de computo que las unidades de procesamiento gráfico ofrecen, las cuales no solo procesan gráficos mediante un lenguaje especializado con alto desempeño, sino que ahora existe la forma de realizar computo de propósito general en estas unidades, esto se conoce como GPGPU (General Purpose computation on Graphic Processing Unit) por sus siglas en ingles. NVIDIA es la empresa fabricante de GPUs que ha propuesto una arquitectura para facilitar el computo de propósito general en sus unidades de procesamiento gráfico, esta arquitectura se denomina CUDA. A continuación se realiza una descripción general de GPGPU y CUDA GPGPU - Computo de Propósito General en GPU Las GPU o unidades de procesamiento gráfico son de alto rendimiento con capacidad de múltiples procesadores y cálculo avanzado de gran cantidad de datos. Inicialmente se creo para procesar gráficos computacionales, la interacción con esta unidad se realizaba mediante librerías especializadas, por ejemplo OpenGl o DirectX, pero las GPUs modernas, como las de NVIDIA, permiten interacción con el desarrollador mediante lenguaje C, C++, OpenCL, Fortran, Java y Python; con esta ventaja de por medio es posible delegar a estas unidades computo científico o de propósito general, teniendo mejor control de los recursos involucrados, lectura/escritura arbitraria de la memoria, selección de bloques de procesamiento ymás. Para la operación de esta tecnología se requiere de un sistema de coprocesamiento heterogéneo, el que consta de una CPU (Unidad de Procesamiento Central) y al menos una GPU, donde la parte secuencial de la aplicación se ejecuta en la CPU y las partes de mayor desempeño computacional son delegadas a la GPU mediante los kernels, que son funciones ejecutadas en un ambiente GPU CUDA Por los años 2006 y 2007, NVIDIA revolucionó el mundo de las GPUs al introducir su arquitectura de cálculo paralelo masivo denominada CUDA, la cual consta de cientos de núcleos, con miles de hilos de procesamiento, con los que es posible manejar gran cantidad de datos en un instante de tiempo Arquitectura CUDA La Figura 3, muestra la arquitectura CUDA, donde el chip GPU esta organizado como una colección de Multiprocesadores (MP), los cuales están divididos en Stream Processors (SP), cada SP maneja uno ovariosthreads(hilosdeprocesamiento),asítambiénlosmpsmanejanunoovariosbloquesdeprocesamiento, cada bloque de procesamiento es un conjunto de threads que pueden ser organizados en una matriz hasta de tres dimensiones; así mismo, los bloques de procesamiento también pueden ser organizados en grids que son matrices hasta de dos dimensiones. CUDA se encarga de realizar este proceso de abstracción, con lo cual solo se requiere definir los grids, bloques y threads que se desean en la ejecución de una operación. Entonces, según la Figura 4, se tiene lo siguiente. Thread: Es solo la ejecución de una función (Kernel) con un índice determinado. Cada thread usa este índice para acceder a los elementos de memoria, entonces, con una colección de threads es posible acceder a todo el conjunto de datos en memoria para su procesamiento. El Thread Execution Manager (Administrador de Ejecución de Threads) es responsable de asignar los threads a cualquiera de los SP. Bloques: Es la agrupación de threads, estos se agrupan en matrices hasta de tres dimensiones, pueden ser ejecutados de forma concurrente o serial sin ningún orden en particular. Es posible coordinar los threads, tal que, usando la función syncthreads() un thread se detiene en un cierto punto del kernel hasta que todos los demás threads dentro de un bloque lleguen a este mismo punto. 4

8 Figura 3: Arquitectura CUDA Grid: Es un grupo de bloques, estos se agrupan en una matriz de hasta dos dimensiones. Para un acceso y manejo de los grid, bloques y threads, CUDA entrega las siguientes variables preasignadas: griddim: contienelasdimensionesdelgrid blockdim: contienelasdimensionesdelbloque blockidx: contieneelíndicedelbloquedentrodelgrid threadidx: contieneelíndicedelthreaddentrodelbloque Figura 4: Grid, bloques y threads 5

9 La Figura 5 muestra un ejemplo del uso de las variables pre-asignadas por CUDA usadas para identificar bloques y threads. En esta figura se observa un Grid, con tres bloques unidimensionales, estos son indicados con la variable blockidx.x, ladimensióndecadabloqueesigualacinco,indicadopor la variable blockdim.x, cada bloque tiene agrupados cinco threads donde cada thread tiene un identificador local dentro del bloque, el cual es indicado por threadidx.x. Los threads también poseen un identificador global los cuales son definidos mediante el uso compuesto de las variables como indica blockidx.x blockdim.x + threadidx.x, conestoesposibleaccederadistintoselementosenmemoria direccionados con estos identificadores. Figura 5: Identificadores en CUDA Dentro de la arquitectura también se cuenta con distintos tipos de memoria. global: Lamemoriaglobaleslademayorcapacidad,yesaccedidaportodoslosthreadsdetodos los bloques. shared: Lamemoriacompartidaesdemenorlatenciaquelamemoriaglobal,esaccedidaporlos threads de un mismo bloque, los threads de bloques diferentes no pueden acceder a esta memoria. constant: Lamemoriaconstanteseutilizaparadatosquenocambianenlaejecucióndelkernel,si se utiliza en lugar de la global se reduce el ancho de banda de la memoria requerida. texture:lamemoriadetexturaesotravariedaddememoriadesololecturaqueseusaparamejorarel rendimiento y reducir el trafico de memoria. Aunque fue diseñada originalmente para las aplicaciones gráficas, también puede ser utilizada en algunas aplicaciones de cálculo en la GPU Modelo de Programación El modelo de programación de CUDA divide los problemas en sub-problemas asignados a los grids, éstos luego son dividos en sub-tareas que son ejecutadas por los bloques. El programador escribe un código C para un programa en CUDA que invoca al kernel, este es ejecutado por miles de threads, que el programador organiza en una jerarquía, ver Figura 6. En la Figura 7 se describe un programa en CUDA que se compone de dos partes, una parte secuencial que es asignada al host (CPU) y otra parte que presenta alta demanda de paralelismo que se asigna al device (GPU). Entonces un programa en CUDA es la unificación de código fuente que abarca tanto al host y al device. En un ambiente Linux, el compilador NVCC de NVIDIA separa el lado del host y del device en el proceso de compilación. El código del host está escrito en lenguaje C estándar que es compilado por GCC/G++. El código para el device también está escrito en lenguaje C estándar, con palabras claves para identificar los kernels y sus estructuras de datos asociadas, esta sección de código es compilado por NVCC. 6

10 Figura 6: Jerarquía de memoria 4.3. Recursos de Hardware GPU Figura 7: Ejecución de un programa CUDA El Radio Observatorio de Jicamarca cuenta con tarjetas Tesla C1060, las características de estas tarjetas se presentan en el Cuadro 2. Estas características son tomadas en cuenta para considerar apropiadamente el número de threads, bloques, grids, la capacidad de computo y recursos en memoria que están disponibles para realizar la simulación de trayectoria de partículas. 7

11 Especificación Descripción Chip Tesla T10 GPU Clock Processor 1296 MHz Global Memory 4GB Shared Memory/Block 16 Kb Constant Memory 64 Kb Texture Memory 256 bytes Register(32 bits)/block Memory Bandwidth 102 GB/s Memory I/O 512 bits GDDR3 Max. Threads/Block 512 Max. Dim. Block 512x512x64 Max. Dim. Grid 65535x65535x1 CUDA Driver Version 3.2 CUDA Runtime Version 3.2 CUDA Cores 240 Board Power W Cuadro 2: Características NVIDIA Tesla C1060 Ya que se requieren 10 4 secuencias de 2 17 muestras de la trayectoria de una partícula es conveniente realizar un previo análisis de los recursos a utilizar en la GPU. Estos recursos implican en primer lugar la cantidad de memoria disponible para el almacenamiento de las posiciones y velocidades de una partícula, esto esta dado por la siguiente ecuación donde, GM = variables dim Nsmp datat ype nt hread nblock (3) GM :cantidaddememoriaglobalrequeridaporlasimulación, variables: son 2 variables: posición y velocidad de la partícula, dim: indicalasdimensionesdecadavariable,enestecasoson3 dimensiones (x, y, z), Nsmp: númerototaldemuestrasdelasposicionesyvelocidadesdelaparticula,iguala2 17, datatype: tipodedatoencomaflotantededobleprecision,8 bytes, nthread: indicaelnumerothreads/bloque, nblock: indicaelnumerototaldebloques. Se debe elegir adecuadamente el número threads/bloque y el total de bloques a utilizar: 1. nthread, secuentaconunnumerode16384registrosde32bitsporcadabloque, estosregistros se asignan como memoria local para los threads de un bloque, ya que nuestros datos a calcular son de tipo coma flotante de doble precisión, el número total de registros disponibles sera de Entonces, si nthread igual a 512 > se tienen disponibles 16 registros por cada thread, si nthread igual a 256 > se tienen disponibles 32 registros por cada thread, si nthread igual a 128 > se tienen disponibles 64 registros por cada thread. 2. nblock, alelegirelnúmerodebloquesesnecesariotomarencuentalacantidaddememoriaglobal para almacenar las posiciones y velocidades de la partícula, entonces a partir de la ecuación (3) podemos determinar el valor de nblock, donde se sabe que la cantidad de memoria global disponible en la GPU es de 4 GB según el Cuadro 2. Entonces, si nthread igual a 512 > nblock = 1.27, si nthread igual a 256 > nblock = 2.54, si nthread igual a 128 > nblock = 5.08, Según los requerimientos de la simulación y las consideraciones de los puntos 1 y 2, se elige nthread = 128, nblock = 4; esto hace un total de 512 threads en operación, donde los threads evalúan posiciones y velocidades de la partícula independientes entre si. 8

12 5. Simulación Monte Carlo de Trayectoria de Partículas La simulación Monte Carlo es una técnica computacional estadística que mediante modelos matemáticos simula el comportamiento aleatorio de sistemas reales. Combina conceptos estadísticos con la capacidad que tienen los computadores para generar números pseudo aleatorios y automatizar cálculos. Este método requiere lo siguiente. 1. Crear un modelo matemático del sistema que se quiere analizar, en nuestro caso la ecuación simplificada de Langevin (1). 2. Identificar las variables cuyo comportamiento aleatorio determina el comportamiento del sistema; las fuerzas de difusión que afectan a la partícula son de naturaleza aleatoria. 3. Se lleva a cabo un experimento consistente en generar muestras aleatorias para determinar las salidas del sistema, en este caso las variables de salida son las posiciones y velocidades de la partícula. 4. Tras repetir n veces este experimento, dispondremos de n observaciones sobre el comportamiento del sistema. 5. Nuestro análisis será tanto mas preciso cuanto mayor sea el numero de n experimentos que llevemos acabo. Para entender lo importante de usar CUDA (Compute Unified Distributed Architecture) es necesario saber cual es el desempeño de la simulación en el ambiente de una CPU (unidad de procesamiento central), es por ello que esta sección inicia con una breve descripción del proceso de la simulación implementado en una CPU. Luego se expone el desarrollo de la simulación en un ambiente GPU con los recursos de hardware disponibles en el laboratorio de computo del Radio Observatorio de Jicamarca Simulación Monte Carlo en CPU Dado que no es posible contar con toda la cantidad total de memoria para almacenar todas las velocidades y posiciones de una partícula, éstas se calculan en bloques, es decir, solo un número determinado de secuencias de 2 17 son calculadas de acuerdo a la capacidad de memoria RAM, los resultados se podrían almacenar en disco, y la memoria RAM se reutiliza para el siguiente bloque de secuencias. Esta implementación se realizó para evaluar la potencia de computo de la GPU con respecto a la CPU. Si bien es cierto que la CPU puede poseer un clock de procesamiento mucho más veloz, no le es posible atender una gran cantidad de datos a la vez ya que su operación es secuencial, es decir se ejecuta una sola operación alavez. Para el caso de la simulación se requiere el uso de múltiples loops, un primer loop para el número de secuencias, un segundo loop para todos las muestras de posición y velocidad de la partícula, y un tercer loop para un bucle interno entre cada posición de la partícula que está determinado por las fuerzas de fricción y difusión que afectan la trayectoria de la partícula. Estos loops afectan el costo computacional del procesamiento Simulación Monte Carlo en GPU Generación de Números Aleatorios Según la ecuación de Langevin descrita en la ecuación (1), se requiere de números aleatorios con distribución gaussiana, media cero y varianza igual a uno para simular el efecto aleatorio de las fuerzas de difusión sobre la partícula. Para este requerimiento de generación de aleatorios se ha visto conveniente hacer uso de una técnica denominada Mersenne Twister que ha sido adaptada para procesadores gráficos - MTGP (Mersenne Twister for Graphic Processors) [? ]. Este método genera números pseudo-aleatorios en la memoria global de la GPU. Consta de generadores que utilizan la memoria compartida para almacenar sus estados internos, y también utiliza la memoria constante como una tabla de búsqueda para una transformación lineal. Los formatos de salida del generador son enteros de 32 bits, coma flotante de simple precisión, y enteros de 64 bits, coma flotante en doble precisión. Las ventajas de utilizar este método radican en la velocidad en que se generan los aleatorios y la alta periodicidad que poseen las secuencias generadas, para el caso implementado la periodicidad es Para utilizar este método es necesario seguir los siguientes pasos según el código disponible por descarga desde la web del autor [3]. 9

13 1. Compilación previa de los archivos mtgp64-fast.c, mtgp64-fast.h, lo cual genera un archivo ejecutable mtgp64-fast.o. Los archivos con la codificación en C serán adjuntados a este informe. 2. Asigna a memoria constante de la GPU los parámetros del generador definidos en mtgp64dc-param c para un periodo Calcula estados iniciales del generador de aleatorios para todos los bloques utilizados en la ejecución del kernel, estos son cargados a memoria global antes de la ejecución del kernel. 4. Durante la ejecución del kernel los estados del generador son transferidos desde la memoria global hacia la memoria compartida. 5. Se generan los números aleatorios deseados y solo el último estado del generador se escribe en la memoria global, así se reducen los accesos hacia la memoria global y para la siguiente ejecución del kernel se garantiza aleatorios distintos para todos los bloques. 6. Este método genera en paralelo una cantidad de números aleatorios igual a tres veces la cantidad de threads por bloque, ésto es parte de su algoritmo para garantizar aleatoriedad. Cabe mencionar que para la simulación se requiere que en cada iteración se calculen tres números aleatorios para las fuerzas de difusión en las dimensiones x, y, z, locualporcoincidenciaseajustamuybienal requerimiento de la simulación. Los aleatorios generados son almacenados en la memoria compartida, de esta forma, se reduce el uso de la memoria global y los accesos a este tipo de memoria. Sin embargo, la generación de aleatorios se produce con una distribución uniforme, en cambio la simulación requiere de aleatorios con distribución gaussiana, por tanto es necesario una conversión de la distribución, para esto se utilizó el método de Box-Muller [4]. La conversión se realiza con las siguientes consideraciones: 1. Se requieren de al menos dos números con distribución uniforme para obtener dos números con distribución gaussiana. Si se tienen 128 threads por bloque y debido a que MTGP genera aleatorios tres veces el número de threads por bloque, 384; los primeros 256 valores son utilizados directamente para el cálculo de la conversión, pero para los últimos 128 se requiere un tratamiento especial. 2. Los últimos 128 valores deben ser convertidos usando el criterio de reducciones, con este criterio se utiliza la mitad de threads por bloque para acceder a los datos y realizar el proceso de conversión según el requisito expuesto en el punto anterior Manejo de memoria y consideraciones de Optimización La memoria global es la que posee mayor capacidad de almacenamiento pero también es la de mayor latencia. Los parámetros del plasma se cargan inicialmente en la memoria global, estos datos son almacenados en forma de Estructuras de Arreglos que permiten un patrón de acceso a datos contiguos. Figura 8: Patrón de Acceso a Datos Contiguos La Figura 8 presenta un ejemplo de cómo están almacenados los parámetros del plasma. Como estos valores están almacenados en posiciones contiguas de memoria, los threads de un bloque han de acceder 10

14 a éstos sin mayor costo de direccionamiento. Cada thread accede a cada elemento de memoria y lo carga aunavariablelocal,apartirdeestavariablelocalserealizalalecturaparaelcómputodelasfuerzasde difusión sobre la partícula. Luego el cálculo de las velocidades y posiciones de la partícula se definen en un bucle interno entre cada muestra del experimento, en este bucle se almacenan los incrementos (delta) de velocidad y posición de la partícula. Los parámetros del plasma y la fuerza de difusión determinan la ejecución del bucle. Luego los datos, velocidad y posición de todas las partículas, son almacenadas en memoria global, en un principio se almacenaban de la forma indicada por la Figura 8, pero para efectos de la siguiente etapa (Etapa III) de procesamiento que requiere cálculo de FFT de toda la secuencia, se almacenan como lo indica la Figura 9. Si se direccionan los datos como lo indica la Figura 8, es necesario el cálculo de la Transpuesta para ordenar los datos de la forma adecuada, esto consume más recursos de memoria, con lo cual se hace ineficiente. Por tanto se decide implementar un direccionamiento tal que los datos se encuentren listos para su procesamiento en la siguiente etapa. Figura 9: Patrón de Acceso a Datos No Contiguos 6. Resultados El presente proyecto busca un alto desempeño para la simulación Monte Carlo de trayectorias de partículas, este desempeño será expresado como "speed-up", que es la relación entre el tiempo de un proceso secuencial y el tiempo de un proceso paralelizado, cuanto mayor sea el speed-up mayor será el desempeño alcanzado por el proceso paralelizable el cual ha sido implementado en la GPU. Primero se exponen las ventajas de desempeño al utilizar MTGP para generación de aleatorios, luego se muestra el desempeño alcanzado de la simulación usando la GPU Tesla C1060 de NVIDIA Generación de Aleatorios En la Figura 10 se muestra el desempeño alcanzado, speed-up, con el MTGP frente a una implementación secuencial usando la técnica de Ziggurat implementada en un procesador Intel i GHz con 12GB RAM. La figura indica el speed-up alcanzado para distintos tamaños de muestra (Nsmp) aleatorias, siendo que a mayor número de threads se tiende a un speed-up mayor. Los threads indicados por el eje x de la figura corresponden al número total de threads a utilizarse en la GPU, para el caso del cálculo en CPU, el número de threads corresponde al número de iteraciones necesarias para calcular Nsmp en un bucle de procesamiento. 11

15 Figura 10: Speed-up, MTGP/Box-Muller vs. Ziggurat 6.2. Simulación Monte Carlo El desempeño alcanzado por la simulación Monte Carlo en un ambiente GPU se muestra en la Figura 11, donde se logra un speed-up cercano a 16 veces, para 10 mil muestras por cada thread, siendo el número total de threads 8192, esto significa que se ha escogido un mayor número de bloques para reducir el número muestras por thread para ocupar un mayor número de multiprocesadores, una opción frente al requerimiento expuesto en la sección 4.3. La simulación en el lado del CPU fue realizada en un procesador Intel i GHz con 12GB RAM. La Figura 12 muestra las posiciones de una partícula, resultado de la simulación, para un caso determinado por el usuario mediante el archivo de configuración, este resultado es acorde a lo esperado. Figura 11: Speed-up Simulación Monte Carlo, GPU vs CPU 12

16 7. Conclusiones Figura 12: Trayectoria de una partícula, resultado de la simulación en GPU. CUDA es una arquitectura que facilita y hace posible computo de propósito general y de alto desempeño en la unidades de Procesamiento Gráfico. Es necesario conocer adecuadamente los recursos disponibles en cada dispositivo GPU y derivar los cálculos requeridos sobre unidades de memoria que sean las más adecuadas, siendo estas la memoria local y la memoria compartida, las de más rápido acceso para procesamiento, luego para almacenamiento o escritura de resultados se tiene la memoria global, la memoria constante se recomienda para lectura de variables o parámetros requeridos por el kernel. Se debe tener en cuenta el direccionamiento de los threads para acceder a los datos en memoria global, el uso adecuado de este direccionamiento facilita el uso de los datos, reduce el ancho de banda en el bus de datos, y evita cálculo intermedio para manejar los datos. La simulación Monte Carlo fue realizada con éxito logrando un mejor desempeño, hasta 16 veces mas rápido que un procesador tradicional. Aún no se ha aprovechado toda la potencia de CUDA, ya que los requerimientos del proyecto (condiciones de la simulación) limitan el número de multiprocesadores a ocuparse. Se espera que para las etapas que siguen se alcance un mejor desempeño. 8. Recomendaciones Se recomienda usar CUDA para aplicaciones de alto consumo de cómputo, con un estudio y/o análisis previo de paralelización de la aplicación deseada. En la actualidad ya se cuenta con la versión 4.0 de CUDA, se recomienda su revisión y actualización para el cálculo de la simulación. 13

17 A. Requisitos de Software e Instalación A.1. A.2. A.2.1. A.2.2. Notas: Requisitos de Software CUDA Driver, CUDA SDK, CUDA Toolkit; disponibles en la web MTGP disponible en la pagina web del autor El código ha sido desarrollado para la versión 3.2 de CUDA. Librerías HDF5 v El sistema operativo empleado para este desarrollo es Linux Ubuntu v Instalación de CUDA en Linux Ubuntu: CUDA - Guía de Instalación Tener instalado el paquete que contiene las librerías de OpenGL (glut-devel): sudo aptitude install freeglut-devel.x86_64 ghc-glut-devel.x86_64. Verificar que este el kernel headers instalado. sudo aptitude install kernel-headers. Editar el archivo /etc/grub.conf, esto se describe en la sección A.2.2. Editar el archivo /etc/modprobe.d/blacklist.conf, el contenido del archivo debe incluir blacklist nouveau. En caso de que no exista el archivo debe ser creado. Ir a una consola vga: ctrl+altf2, [/etc/inittab level 3]. Correr en una consola como root: (matar el X server y cambias a modo VGA console) - init 3 Empezar la instalación del driver y del toolkit como usuario root :./NVIDIA-Linux-x86_ run./cudatoolkit_3.2.16_linux_64_ubuntu.run Luego instalar el gpucomputingsdk: -./gpucomputingsdk_3.2.16_linux.run. Al instalar el gpucomputingsdk en $HOME, éste creará una carpeta NVIDIA_GPU_Computing_SDK, que es donde se encuentran los ejemplos. Finalmente agregar al.bashrc de tu usuario las lineas del $PATH y $LD_LIBRARY_PATH, esto se describe en la sección A.2.3. El paso final es correr el make que se encuentra dentro de la carpeta del SDK ($HOME/NVIDIA_GPU_Computing_S revisar sección A.2.3. Archivo grub.conf Para Ubuntu v.10.04/kernel Linux fc13.x86_64/GNOME /Procesador Intel(R) Core(TM) i7 CPU GHz kernel /vmlinuz fc13.x86_64 ro root=/dev/mapper/vg_daniel-lv_root rd_lvm_lv=vg_daniel/ lv_root rd_lvm_lv=vg_daniel/lv_swap rd_no_luks rd_no_md rd_no_dm LANG=en_US.UTF- 8rdblacklist=nouveaunouveau.modeset=0 1. Inicialmente se edita el archivo como se muestra en el párrafo anterior, pero luego desde el BOOT, no aparece la opción de rdblacklist, se agregó, pero en este caso no funcionó. 2. Luego desde el BOOT, edité directamente el kernel y le agregué: rdblacklist=nouveau nouveau.modeset=0. ESTO SI FUNCIONA. 3. Por fin se deshabilitó el nouveau. 4. Satisfactoriamente se realizó la instalación del driver de CUDA y del CUDA-toolkit. 14

18 A.2.3. #.bashrc Archivo bashrc y Makefile # Source global definitions if [ -f /etc/bashrc ]; then. /etc/bashrc fi # User specific aliases and functions export export PATH=/usr/local/cuda/bin:$PATH LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda/lib:/usr/local/lib :$LD_LIBRARY_PATH Luego, en la carpeta $HOME/NVIDIA_GPU_Computing_SDK/C/ se ejecuta: make, en mi caso se mostraba el siguiente mensaje Error: La solución: A.2.4. /usr/bin/ld: cannot find -lxmu Instalar la librería Xmu: sudo aptitude install libxmu libxmu-devel. Ejecutar make y listo. Listado de tarjetas gráficas que soporten CUDA B. Codificación del algoritmo Los códigos de la aplicación se adjuntan a este informe en una carpeta "MonteCarlo_Simulation". Donde se ha definido una estructura de folders estándar para el desarrollo de software en el Radio Observatorio de Jicamarca. C. Programa en Python para visualización de las Trayectorias e Histogramas de Velocidades Adjunto en la carpeta "MonteCarlo_Simulation" se tiene el folder "test" donde se tiene código python para la visualización de las trayectorias e histogramas de velocidades. D. Validación de Números Aleatorios MTGP calcula por defecto números aleatorios con distribución uniforme, se le hizo una modificación tal que estos números son convertidos a una distribución gaussiana usando la técnica de Box-Muller. Acontinuaciónsemuestralafuncióndedensidaddeprobabilidadparaesteprocesodegeneraciónde aleatorios donde se han calculado 50 millones de aleatorios. 15

19 Figura 13: Densidad de Probabilidad MTGP/Box-Muller. Bibliografía [1] Marco A. Milla and Erhan Kudeki. Incoherent scatter spectral theories-part ii: Modeling the spectrum for modes propagating perpendicular to magnetic field. IEEE Transactions on Geoscience and remote sensing, 49(1): , doi: /TGRS [2] M. N. Rosenbluth, W. M. MacDonald, and D. L. Judd. Fokker-planck equation for an inverse-square force. Physical Review, 107(1):1 6,1957.doi: /PhysRev [3] Mutsuo Saito. A variant of mersenne twister for graphic processors. arxiv: v2 [cs.ms], [4] G. E. P. Box and Mervin E. Muller. A note on the generation of random normal deviates. The Annals of Mathematical Statistics, 29(2): ,1958.doi: /aoms/

Primeros pasos con CUDA. Clase 1

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

Más detalles

Modelo de aplicaciones CUDA

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 detalles

Intel lanza su procesador Caballero Medieval habilitado para Inteligencia Artificial

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

Más detalles

Tema II: Metodología para la construcción de programas. Profesora: Nelly García Mora

Tema II: Metodología para la construcción de programas. Profesora: Nelly García Mora Tema II: Metodología para la construcción de programas Profesora: Nelly García Mora 1. Metodologías de Programación Metodología de programación: es un conjunto o sistema de métodos, principios y reglas,

Más detalles

TÉCNICO SUPERIOR UNIVERSITARIO EN TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS.

TÉCNICO SUPERIOR UNIVERSITARIO EN TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS. TÉCNICO SUPERIOR UNIVERSITARIO EN TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS. HOJA DE ASIGNATURA CON DESGLOSE DE UNIDADES TEMÁTICAS 1. Nombre de la asignatura Ingeniería de

Más detalles

Tema 2 Introducción a la Programación en C.

Tema 2 Introducción a la Programación en C. Tema 2 Introducción a la Programación en C. Contenidos 1. Conceptos Básicos 1.1 Definiciones. 1.2 El Proceso de Desarrollo de Software. 2. Lenguajes de Programación. 2.1 Definición y Tipos de Lenguajes

Más detalles

FUNDAMENTOS DE COMPUTACIÓN PARA CIENTÍFICOS. CNCA Abril 2013

FUNDAMENTOS 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 detalles

Montaje y Reparación de Sistemas Microinformáticos

Montaje y Reparación de Sistemas Microinformáticos Montaje y Reparación de Sistemas s Es uno de los componentes más imprescindible del equipo informático. Al igual que el resto de tarjetas de expansión, la tarjeta gráfica se conecta al bus PCIe. Algunas

Más detalles

Computación de Propósito General en Unidades de Procesamiento Gráfico GPGPU. Clase 0 Lanzamiento del Curso. Motivación

Computación de Propósito General en Unidades de Procesamiento Gráfico GPGPU. Clase 0 Lanzamiento del Curso. Motivación Computación de Propósito General en Unidades de Procesamiento Gráfico () Pablo Ezzatti, Martín Pedemonte Clase 0 Lanzamiento del Curso Contenido Evolución histórica en Fing Infraestructura disponible en

Más detalles

Fundamentos de Ingeniería de Software [Etapas II]

Fundamentos de Ingeniería de Software [Etapas II] Fundamentos de Ingeniería de Software [Etapas II] M. en C. Sergio Luis Pérez Pérez UAM CUAJIMALPA, MÉXICO, D. F. Trimestre 13-I Sergio Luis Pérez (UAM CUAJIMALPA) Curso de fundamentos de ing. de software

Más detalles

Introducción a Linux Jornadas Noviembre 2009 GUL UC3M Tania Pérez

Introducción a Linux Jornadas Noviembre 2009 GUL UC3M Tania Pérez Introducción a Linux Jornadas Noviembre 2009 GUL UC3M Tania Pérez Qué es Linux? Linux es un sistema operativo diseñado por cientos de programadores de todo el planeta. Principal responsable del proyecto

Más detalles

CAPITULO 1 INTRODUCCION AL PROYECTO

CAPITULO 1 INTRODUCCION AL PROYECTO CAPITULO 1 INTRODUCCION AL PROYECTO 1 INTRODUCCION AL PROYECTO 1.1 Marco Teórico Los procesadores digitales de señales ganaron popularidad en los años sesentas con la introducción de la tecnología de estado

Más detalles

Sistemas de información Administrativa II

Sistemas de información Administrativa II Sistemas de información Administrativa II UNIDAD 1 MSI. José Luis Llamas Cárdenas Ciclo de Vida Proceso de todo sistema de información Sistemas de Información El sistema informativo esta comprendido por

Más detalles

Qué es un programa informático?

Qué es un programa informático? Qué es un programa informático? Un programa informático es una serie de comandos ejecutados por el equipo. Sin embargo, el equipo sólo es capaz de procesar elementos binarios, es decir, una serie de 0s

Más detalles

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria 1.2. Jerarquía de niveles de un computador Qué es un computador? Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria Es un sistema tan complejo

Más detalles

Organización del Computador I. Introducción e Historia

Organización del Computador I. Introducción e Historia Organización del Computador I Introducción e Historia Introducción Qué es una computadora? Stallings: Máquina digital electrónica programable para el tratamiento automático de la información, capaz de

Más detalles

4.1 CONGRUENCIA ENTRE LOS OBJETIVOS DEL PLAN DE ESTUDIOS Y EL PERFIL DE EGRESO CON LAS LGAC:

4.1 CONGRUENCIA ENTRE LOS OBJETIVOS DEL PLAN DE ESTUDIOS Y EL PERFIL DE EGRESO CON LAS LGAC: 4.1 CONGRUENCIA ENTRE LOS OBJETIVOS DEL PLAN DE ESTUDIOS Y EL PERFIL DE EGRESO CON LAS LGAC: A continuación se muestran los objetivos así como los mapas funcionales según la línea de acentuación y la línea

Más detalles

Arquitecturas GPU v. 2013

Arquitecturas 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 detalles

Organización lógica Identificación de bloque

Organización lógica Identificación de bloque Cómo se encuentra un bloque si está en el nivel superior? La dirección se descompone en varios campos: Etiqueta (tag): se utiliza para comparar la dirección requerida por la CPU con aquellos bloques que

Más detalles

ESTRUCTURA BÁSICA DE UN ORDENADOR

ESTRUCTURA BÁSICA DE UN ORDENADOR ESTRUCTURA BÁSICA DE UN ORDENADOR QUÉ ES UN ORDENADOR? Un ordenador es una máquina... QUÉ ES UN ORDENADOR? Un ordenador es una máquina... QUÉ ES UN ORDENADOR? Un ordenador es una máquina... Qué son los

Más detalles

Guía práctica de estudio 03: Algoritmos

Guía práctica de estudio 03: Algoritmos Guía práctica de estudio 03: Algoritmos Elaborado por: M.C. Edgar E. García Cano Ing. Jorge A. Solano Gálvez Revisado por: Ing. Laura Sandoval Montaño Guía práctica de estudio 03: Algoritmos Objetivo:

Más detalles

Soluciones a los problemas impares. Tema 5. Memorias. Estructura de Computadores. I. T. Informática de Gestión / Sistemas

Soluciones a los problemas impares. Tema 5. Memorias. Estructura de Computadores. I. T. Informática de Gestión / Sistemas Tema 5. Soluciones a los problemas impares Estructura de Computadores I. T. Informática de Gestión / Sistemas Curso 28-29 Tema 5 Hoja: 2 / 36 Tema 5 Hoja: 3 / 36 Base teórica La memoria es el lugar en

Más detalles

FUNDAMENTOS DE COMPUTACION INVESTIGACION PROCESADORES DIANA CARRIÓN DEL VALLE DOCENTE: JOHANNA NAVARRO ESPINOSA TRIMESTRE II

FUNDAMENTOS DE COMPUTACION INVESTIGACION PROCESADORES DIANA CARRIÓN DEL VALLE DOCENTE: JOHANNA NAVARRO ESPINOSA TRIMESTRE II FUNDAMENTOS DE COMPUTACION INVESTIGACION PROCESADORES DIANA CARRIÓN DEL VALLE DOCENTE: JOHANNA NAVARRO ESPINOSA TRIMESTRE II 2013 Características principales de la arquitectura del procesador AMD Phenom

Más detalles

ESCUELA DE INFORMÁTICA

ESCUELA DE INFORMÁTICA TÉCNICO EN SISTEMAS LABORAL SUBMODULO TEMA 1 (Visual Basic for Application) Microsoft VBA (Visual Basic for Applications) es el lenguaje de macros de Microsoft Visual Basic que se utiliza para programar

Más detalles

Tutoría 2. Banco de memoria de 8 y 16 bits (8086)

Tutoría 2. Banco de memoria de 8 y 16 bits (8086) Tutoría 2. Banco de memoria de 8 y 16 bits (8086) RESUMEN Cuando el procesador opera en modo mínimo, éste genera las señales de control para la memoria y los dispositivos de E/S. [1, pág. 292]. Para utilizar

Más detalles

Tema V Generación de Código

Tema V Generación de Código Tema V Generación de Código Una vez que se ha realizado la partición HW/SW y conocemos las operaciones que se van a implementar por hardware y software, debemos abordar el proceso de estas implementaciones.

Más detalles

Nombre de la asignatura: Arquitectura de Computadoras. Créditos: Aportación al perfil

Nombre de la asignatura: Arquitectura de Computadoras. Créditos: Aportación al perfil Nombre de la asignatura: Arquitectura de Computadoras Créditos: Aportación al perfil Seleccionar y utilizar de manera óptima técnicas y herramientas computacionales actuales y emergentes. Identificar,

Más detalles

Tema 6 Organización y gestión de la memoria

Tema 6 Organización y gestión de la memoria Departamento de Tecnologías de la Información Tema 6 Organización y gestión de la memoria Ciencias de la Computación e Inteligencia Artificial Índice 6.1 Organización de la memoria en tiempo de ejecución

Más detalles

Se inicia con las especificaciones del módulo fotovoltaico.

Se inicia con las especificaciones del módulo fotovoltaico. Con base en las especificaciones técnicas del inversor SB 3000U y de un módulo fotovoltaico de 175 watts, indicar los valores los parámetros característicos requeridos para el dimensionamiento del sistema.

Más detalles

3 SISTEMAS DE PROCESAMIENTO DIGITAL DE SEÑALES. ha desarrollado durante los últimos 30 años gracias a los avances tecnológicos de

3 SISTEMAS DE PROCESAMIENTO DIGITAL DE SEÑALES. ha desarrollado durante los últimos 30 años gracias a los avances tecnológicos de 3 SISTEMAS DE PROCESAMIENTO DIGITAL DE SEÑALES 3.1 Introducción al procesamiento digital de señales Una alternativa para el procesado analógico de señales es el procesado digital. Esta área se ha desarrollado

Más detalles

Herramientas para el estudio de prestaciones en clusters de computación científica, aplicación en el Laboratorio de Computación Paralela

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

Más detalles

INGENIERÍA PROFESIONAL EN INOCUIDAD ALIMENTARIA EN COMPETENCIAS PROFESIONALES ASIGNATURA DE ROBÓTICA

INGENIERÍA PROFESIONAL EN INOCUIDAD ALIMENTARIA EN COMPETENCIAS PROFESIONALES ASIGNATURA DE ROBÓTICA INGENIERÍA PROFESIONAL EN INOCUIDAD ALIMENTARIA EN COMPETENCIAS PROFESIONALES ASIGNATURA DE ROBÓTICA UNIDADES DE APRENDIZAJE 1. Competencias Automatizar procesos de producción mediante la implementación

Más detalles

CAR. Responsable : María del Carmen Heras Sánchez. Asesores Técnicos : Daniel Mendoza Camacho Yessica Vidal Quintanar.

CAR. Responsable : María del Carmen Heras Sánchez. Asesores Técnicos : Daniel Mendoza Camacho Yessica Vidal Quintanar. CAR Responsable : María del Carmen Heras Sánchez Asesores Técnicos : Daniel Mendoza Camacho Yessica Vidal Quintanar http://acarus2.uson.mx Infraestructura de Hardware Software Conexiones remotas http://acarus2.uson.mx

Más detalles

Diseño de compiladores. Organización de memoria. Organización de memoria. Organización de memoria. Zona de código 04/05/2014 ORGANIZACIÓN DE MEMORIA

Diseño de compiladores. Organización de memoria. Organización de memoria. Organización de memoria. Zona de código 04/05/2014 ORGANIZACIÓN DE MEMORIA Diseño de compiladores Gestión de la memoria / Generación de código ORGANIZACIÓN DE MEMORIA Organización de memoria Depende del tipo de lenguaje (declarativos, imperativos), del compilador y del sistema

Más detalles

ARQUITECTURA BÁSICA DEL ORDENADOR: Hardware y Software. IES Miguel de Cervantes de Sevilla

ARQUITECTURA BÁSICA DEL ORDENADOR: Hardware y Software. IES Miguel de Cervantes de Sevilla ARQUITECTURA BÁSICA DEL ORDENADOR: Hardware y Software. IES Miguel de Cervantes de Sevilla Índice de contenido 1.- Qué es un ordenador?...3 2.-Hardware básico de un ordenador:...3 3.-Software...4 3.1.-Software

Más detalles

Tema II: Metodología para la construcción de programas

Tema II: Metodología para la construcción de programas Tema II: Metodología para la construcción de programas Semestre: A-2012 Profesora: Nelly García Mora Agenda 1. Definición 2. Análisis E P S 3. Construcción de Algoritmos 4. Diagramas de Flujo 5. Codificación

Más detalles

Estructuras de control

Estructuras de control Estructuras de control Introducción Los algoritmos vistos hasta el momento han consistido en simples secuencias de instrucciones; sin embargo, existen tareas más complejas que no pueden ser resueltas empleando

Más detalles

SISTEMAS OPERATIVOS Arquitectura de computadores

SISTEMAS OPERATIVOS Arquitectura de computadores SISTEMAS OPERATIVOS Arquitectura de computadores Erwin Meza Vega emezav@unicauca.edu.co Esta presentación tiene por objetivo mostrar los conceptos generales de la arquitectura de los computadores, necesarios

Más detalles

Computadora y Sistema Operativo

Computadora y Sistema Operativo Computadora y Sistema Operativo Según la RAE (Real Academia de la lengua española), una computadora es una máquina electrónica, analógica o digital, dotada de una memoria de gran capacidad y de métodos

Más detalles

Aseguramiento de Calidad en el Desarrollo de Software Libre

Aseguramiento de Calidad en el Desarrollo de Software Libre Aseguramiento de Calidad en el Desarrollo de Software Libre Marzo, 2014 N. Baez, V. Bravo y J. Alvarez Contenido de la Presentación Segunda versión de la Metodología de Desarrollo de Software Libre. Segunda

Más detalles

Organización del Sistema de Memoria. 1. Tipos de memoria 2. Jerarquía de memoria 3. El principio de localidad 4. Organización de la memoria

Organización del Sistema de Memoria. 1. Tipos de memoria 2. Jerarquía de memoria 3. El principio de localidad 4. Organización de la memoria Organización del Sistema de Memoria 1. Tipos de memoria 2. Jerarquía de memoria 3. El principio de localidad 4. Organización de la memoria 1. Tipos de memoria La memoria se puede clasificar de acuerdo

Más detalles

Requerimientos de Software

Requerimientos de Software Requerimientos de Software Ingeniería de Requerimientos Se define como el proceso de establecer los servicios que el consumidor requiere de un sistema y las restricciones sobre las cuales de funcionar

Más detalles

SIG. CIAF Centro de Investigación y Desarrollo en Información Geográfica. Fundamentos de Sistemas de Información Geográfica C U R S O.

SIG. CIAF Centro de Investigación y Desarrollo en Información Geográfica. Fundamentos de Sistemas de Información Geográfica C U R S O. Grupo SIG C U R S O Fundamentos de Sistemas de Información Geográfica UNIDAD 1 Generalidades de los Sistemas de Información Geográfica Tema 3 Ciclo de vida y componentes de los SIG CIAF Centro de Investigación

Más detalles

Diseño arquitectónico 1ª edición (2002)

Diseño arquitectónico 1ª edición (2002) Unidades temáticas de Ingeniería del Software Diseño arquitectónico 1ª edición (2002) Facultad de Informática objetivo Los sistemas grandes se descomponen en subsistemas que suministran un conjunto relacionado

Más detalles

Gestión de la tabla de calificaciones:

Gestión de la tabla de calificaciones: Gestión de la tabla de calificaciones Gestión de la tabla de calificaciones: Vista Configuración Autor Aula Virtual URJC online 1 Tabla de contenidos La tabla de calificaciones... 3 Pestaña Vista... 3

Más detalles

Memoria Cache. Departamento de Arquitectura de Computadores

Memoria Cache. Departamento de Arquitectura de Computadores Memoria Cache Departamento de Arquitectura de Computadores Índice Introducción. Conceptos básicos Características de los sistemas de memoria Jerarquías de memoria Memoria Principal Características físicas

Más detalles

NUEVAS TECNOLOGÍAS APLICADAS A LA EDUCACIÓN. MICROSOFT OFFICE: WORD, POWERPOINT Y EXCEL.

NUEVAS TECNOLOGÍAS APLICADAS A LA EDUCACIÓN. MICROSOFT OFFICE: WORD, POWERPOINT Y EXCEL. NUEVAS TECNOLOGÍAS APLICADAS A LA EDUCACIÓN. MICROSOFT OFFICE: WORD, POWERPOINT Y EXCEL. Autora: Celia Marcos Pascual 1. Información 2. Microsoft Word 3. Microsoft Excel 4. Microsoft PowerPoint Agenda

Más detalles

ADMINISTRACIÓN DE SERVIDORES BAJO WINDOWS 2012 MS20410: Instalando y Configurando Windows Server 2012

ADMINISTRACIÓN DE SERVIDORES BAJO WINDOWS 2012 MS20410: Instalando y Configurando Windows Server 2012 ADMINISTRACIÓN DE SERVIDORES BAJO WINDOWS 2012 MS20410: Instalando y Configurando Windows Server 2012 Módulo 1: Instalación y gestión de Windows Server 2012 Este módulo introduce a los estudiantes a las

Más detalles

Reconocimiento visual de ademanes usando MS Kinect Captura de video. Dr. Héctor Avilés Escuela de Invierno de Robótica 2015

Reconocimiento visual de ademanes usando MS Kinect Captura de video. Dr. Héctor Avilés Escuela de Invierno de Robótica 2015 Reconocimiento visual de ademanes usando MS Kinect Captura de video Dr. Héctor Avilés Escuela de Invierno de Robótica 2015 Sistema propuesto Análisis visual Extracción de la silueta...... Ejecución del

Más detalles

Nombre de la asignatura: Algoritmos y Lenguajes de programación.

Nombre de la asignatura: Algoritmos y Lenguajes de programación. Nombre de la asignatura: Algoritmos y Lenguajes de programación. Créditos: 2-4- 6 Aportación al perfil Dominar la lógica necesaria para aprender lenguajes de programación de alto nivel para poder resolver

Más detalles

Ejercicios del tema 4. El procesador

Ejercicios del tema 4. El procesador jercicios del tema 4. l procesador jercicio 1. Considere un procesador de 32 bits con una frecuencia de reloj de 500 MHz con la estructura del mostrado en el jercicio 3. La memoria se direcciona por bytes

Más detalles

Colección de Tesis Digitales Universidad de las Américas Puebla. Romero Martínez, Modesto

Colección de Tesis Digitales Universidad de las Américas Puebla. Romero Martínez, Modesto 1 Colección de Tesis Digitales Universidad de las Américas Puebla Romero Martínez, Modesto El procesamiento de consultas en un sistema multibase de datos es la pieza mas importante para la operación del

Más detalles

SMV. Superintendencia del Mercado de Valores

SMV. Superintendencia del Mercado de Valores DECENIO DE LAS PERSONAS CON DIAPACIDAD EN EL PERÚ - AÑO DE LA PROMOCIÓN DE LA INDUSTRIA RESPONSABLE Y DEL COMPROMISO CLIMÁTICO INFORME TÉCNICO PREVIO DE EVALUACIÓN DE SOFTWARE N 009-2014-/09 SOFTWARE PARA

Más detalles

Ombú / Wbs (Web based Systems)

Ombú / Wbs (Web based Systems) Ombú / Wbs (Web based Systems) Prueba de Stress Empresa Argentina Organización y Gestión SRL San Jose 83 Piso 8 (C1076AAA) Buenos Aires Argentina Tel.: (5411) 4383-4600 email: arg@oyg.com.ar INDICE 1.

Más detalles

La plataforma Arduino y su programación en entornos gráficos

La plataforma Arduino y su programación en entornos gráficos La plataforma Arduino y su programación en entornos gráficos Luisa Fernanda García Vargas Flor Ángela Bravo Sánchez Agenda 1 Control de un robot 2 Qué es Arduino? 3 4 El uso de Arduino en robótica Programación

Más detalles

Guía práctica de estudio 03: Algoritmos

Guía práctica de estudio 03: Algoritmos Guía práctica de estudio 03: Algoritmos Elaborado por: M.C. Edgar E. García Cano Ing. Jorge A. Solano Gálvez Revisado por: Ing. Laura Sandoval Montaño Guía práctica de estudio 03: Algoritmos Objetivo:

Más detalles

GUÍA RÁPIDA CONFIGURACIÓN PLUGIN Y DRIVER KRONOS NET

GUÍA RÁPIDA CONFIGURACIÓN PLUGIN Y DRIVER KRONOS NET GUÍA RÁPIDA CONFIGURACIÓN PLUGIN Y DRIVER KRONOS NET TÍTULO GUÍA CONFIGURACIÓN PLUGIN Y DRIVER VERSIÓN 1.00 FECHA 2015 07 23 ESTADO POR REVISAR COD CONTROL GUÍA CONFIGURACIÓN PLUGIN Y DRIVER Los drivers

Más detalles

Principios de Computadoras II

Principios de Computadoras II Departamento de Ingeniería Electrónica y Computadoras Ing. Ricardo Coppo rcoppo@uns.edu.ar Qué es un Objeto? Un objeto es una instancia de una clase Las clases actuán como modelos que permiten la creación

Más detalles

Administración Informática. Unidad I. Tipos de sistemas y su clasificación A) Sistemas de información.

Administración Informática. Unidad I. Tipos de sistemas y su clasificación A) Sistemas de información. UNIVERSIDAD NACIONALDE INGENIERÁ UNI NORTE SEDE REGIONAL EN ETELI Ing. Mario Pastrana Moreno. Unidad I. Tipos de sistemas y su clasificación 10-09-2010 Administración Informática A) Sistemas de información.

Más detalles

Sist s em e a m s s O per e ativos o. s Unidad V Entrada Sali l d i a.

Sist s em e a m s s O per e ativos o. s Unidad V Entrada Sali l d i a. Sistemas Operativos. Unidad V Entrada Salida. Programación de Entrada y Salida Introducción. Comunicación de los procesos con el mundo externo : Mecanismo de E/S de información. Aspectos que diferencian

Más detalles

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 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

Más detalles

TÉCNICO SUPERIOR UNIVERSITARIO EN MECATRÓNICA ÁREA AUTOMATIZACIÓN EN COMPETENCIAS PROFESIONALES ASIGNATURA DE LENGUAJE DE PROGRAMACIÓN

TÉCNICO SUPERIOR UNIVERSITARIO EN MECATRÓNICA ÁREA AUTOMATIZACIÓN EN COMPETENCIAS PROFESIONALES ASIGNATURA DE LENGUAJE DE PROGRAMACIÓN TÉCNICO SUPERIOR UNIVERSITARIO EN MECATRÓNICA ÁREA AUTOMATIZACIÓN EN COMPETENCIAS PROFESIONALES ASIGNATURA DE LENGUAJE DE PROGRAMACIÓN 1. Competencias Implementar sistemas de medición y control bajo los

Más detalles

4. NÚMEROS PSEUDOALEATORIOS.

4. NÚMEROS PSEUDOALEATORIOS. 4. NÚMEROS PSEUDOALEATORIOS. En los experimentos de simulación es necesario generar valores para las variables aleatorias representadas estas por medio de distribuciones de probabilidad. Para poder generar

Más detalles

Lusitania. Pensando en Paralelo. César Gómez Martín

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

Más detalles

TEMA II: ALMACENAMIENTO DE LA INFORMACIÓN

TEMA II: ALMACENAMIENTO DE LA INFORMACIÓN CUESTIONES A TRATAR: Existe un tipo único tipo de memoria en un determinado computador? Todas las memorias de un computador tienen la misma función?. Qué es la memoria interna de un computador? Por qué

Más detalles

Linear Algebra PACKage (LAPACK) Avances en la Generación de Bibliotecas de Álgebra Lineal Universidad Politécnica de Valencia Marzo, 2006

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

Más detalles

Kepler. 1. Presentación de la arquitectura. Índice de contenidos [25 diapositivas] Kepler, Johannes (1571-1630)

Kepler. 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 detalles

Informática Electrónica Manejadores de Dispositivos (Device Drivers)

Informática Electrónica Manejadores de Dispositivos (Device Drivers) Informática Electrónica Manejadores de Dispositivos (Device Drivers) DSI-EIE-FCEIA 2015 Que es un DD? Es una pieza de software que interactúa con (entre) el sistema operativo y con uno o mas dispositivos

Más detalles

Arquitectura de computadoras

Arquitectura de computadoras Arquitectura de computadoras Técnicas Digitales III Ing. Gustavo Nudelman 2013 Que entendemos por arquitectura Un sistema con una CPU, memoria y dispositivos de entrada y salida puede considerarse un sistema

Más detalles

Bloque 1. Contenidos comunes. (Total: 3 sesiones)

Bloque 1. Contenidos comunes. (Total: 3 sesiones) 4º E.S.O. OPCIÓN A 1.1.1 Contenidos 1.1.1.1 Bloque 1. Contenidos comunes. (Total: 3 sesiones) Planificación y utilización de procesos de razonamiento y estrategias de resolución de problemas, tales como

Más detalles

Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo

Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo TEMA 2: CONCEPTOS BÁSICOS DE ALGORÍTMICA 1. Definición de Algoritmo 1.1. Propiedades de los Algoritmos 2. Qué es un Programa? 2.1. Cómo se construye un Programa 3. Definición y uso de herramientas para

Más detalles

Unidad I: Organización del Computador. Ing. Marglorie Colina

Unidad I: Organización del Computador. Ing. Marglorie Colina Unidad I: Organización del Computador Ing. Marglorie Colina Arquitectura del Computador Atributos de un sistema que son visibles a un programador (Conjunto de Instrucciones, Cantidad de bits para representar

Más detalles

SISTEMA DE ADMINISTRACION DE RIESGO OPERATIVO

SISTEMA DE ADMINISTRACION DE RIESGO OPERATIVO 1. INTRODUCCIÓN Las organizaciones no pueden eliminar completamente los riesgos de negocios; esto es un hecho inherente a la realidad de las empresas. La Alta Dirección de la organización decide qué nivel

Más detalles

ESTÁNDAR DE COMPETENCIA. Mantenimiento a equipo de cómputo y software

ESTÁNDAR DE COMPETENCIA. Mantenimiento a equipo de cómputo y software I.- Datos Generales Código Título Mantenimiento a equipo de cómputo y software Propósito del Estándar de Competencia Servir como referente para la evaluación y certificación de las personas que realicen

Más detalles

Capítulo III: MARCO METODOLÓGICO

Capítulo III: MARCO METODOLÓGICO Capítulo III: MARCO METODOLÓGICO Tipo de Investigación El presente trabajo de investigación, tuvo como propósito el desarrollo de una aplicación experimental que permitió evaluar la operatividad y funcionalidad

Más detalles

MANUAL DE USO PROGRAMA SENSIBAR

MANUAL DE USO PROGRAMA SENSIBAR MANUAL DE USO PROGRAMA SENSIBAR ANALSIS DE SENSIBILIDAD Y SIMULACION DE MONTECARLO JOSE FUENTES VALDES FACEA - UNIVERSIDAD DE CONCEPCION Facultad de Economía Universidad de Concepción 1 SensiBar. ANALSIS

Más detalles

AUTOMATIZACION. Reconocer la arquitectura y características de un PLC Diferenciar los tipos de entradas y salidas MARCO TEORICO. Estructura Interna

AUTOMATIZACION. Reconocer la arquitectura y características de un PLC Diferenciar los tipos de entradas y salidas MARCO TEORICO. Estructura Interna AUTOMATIZACION GUIA DE TRABAJO 3 DOCENTE: VICTOR HUGO BERNAL UNIDAD No. 3 OBJETIVO GENERAL Realizar una introducción a los controladores lógicos programables OBJETIVOS ESPECIFICOS: Reconocer la arquitectura

Más detalles

Fundamentos de las TIC

Fundamentos de las TIC Fundamentos de las TIC Sistemas Informáticos Conceptos básicos El término Informática proviene de la unión de dos palabras: INFORmación y automática. La Informática es, por tanto, la ciencia que estudia

Más detalles

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 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

Más detalles

Objetos de aprendizaje: Computadora

Objetos de aprendizaje: Computadora MOMENTO I. BLOQUE 1. Opera las funciones básicas del sistema operativo y garantiza la seguridad de la información Objetos de aprendizaje: Computadora Lectura 1: La Computadora La computadora es una máquina

Más detalles

Visión Horizon. PSI Group

Visión Horizon. PSI Group PSI Group Este documento describe los objetivos principales del proyecto, funcionalidades y restricciones en forma concisa; es un resumen del proyecto apto para la toma de decisiones, ofrece una descripción

Más detalles

Tema: Microprocesadores

Tema: Microprocesadores Universidad Nacional de Ingeniería Arquitectura de Maquinas I Unidad I: Introducción a los Microprocesadores y Microcontroladores. Tema: Microprocesadores Arq. de Computadora I Ing. Carlos Ortega H. 1

Más detalles

Información de la práctica

Información de la práctica P-SLM-00 PRÁCTICA DE LABORATORIO NÚM 0 Página 1 de 10 Rev. nº 1.0 Fecha 28/10/2010 SOFTWARE DE SIMULACIÓN BASADO EN RAYLEIGH-SOMMERFELD Equation Chapter 1 Section 1 Información de la práctica Título: Asignatura:

Más detalles

13. Utilizar la fórmula del término general y de la suma de n términos consecutivos

13. Utilizar la fórmula del término general y de la suma de n términos consecutivos Contenidos mínimos 3º ESO. 1. Contenidos. Bloque I: Aritmética y álgebra. 1. Utilizar las reglas de jerarquía de paréntesis y operaciones, para efectuar cálculos con números racionales, expresados en forma

Más detalles

SISTEMA DE INFORMACIÓN ESTADISTICO DE LAS TECNOLOGIAS DE LA INFORMACIÓN Y LA COMUNICACIÓN. GUIA PARA LA UTILIZACIÓN DEL SISTEMA.

SISTEMA DE INFORMACIÓN ESTADISTICO DE LAS TECNOLOGIAS DE LA INFORMACIÓN Y LA COMUNICACIÓN. GUIA PARA LA UTILIZACIÓN DEL SISTEMA. SISTEMA DE INFORMACIÓN ESTADISTICO DE LAS TECNOLOGIAS DE LA INFORMACIÓN Y LA COMUNICACIÓN. GUIA PARA LA UTILIZACIÓN DEL SISTEMA. Guía para la utilización del Sistema. El Sistema de Información Estadístico

Más detalles

Tutor: Ing. Eddie Galarza. Autores: Edison Xavier Sánchez Quevedo Edison Saúl Gallardo Calvopiña

Tutor: Ing. Eddie Galarza. Autores: Edison Xavier Sánchez Quevedo Edison Saúl Gallardo Calvopiña DISEÑO Y CONSTRUCCIÓN DE UN SISTEMA DE AUTENTIFICACIÓN CON RECONOCIMIENTO FACIAL MEDIANTE PROCESAMIENTO DE IMÁGENES CON LA UTILIZACIÓN DE SOFTWARE LIBRE Y TECNOLOGÍA RASPBERRY PI Autores: Edison Xavier

Más detalles

Area Académica: Sistemas Computacionales. Tema: Elementos de diseño de memoria caché

Area Académica: Sistemas Computacionales. Tema: Elementos de diseño de memoria caché Area Académica: Sistemas Computacionales Tema: Elementos de diseño de memoria caché Profesor: Raúl Hernández Palacios Periodo: 2011 Keywords: Memory, cache memory. Tema: Elementos de diseño de memoria

Más detalles

Cuando el lenguaje si importa

Cuando el lenguaje si importa Cuando el lenguaje si importa de software financiero J. Daniel Garcia Grupo ARCOS Universidad Carlos III de Madrid 11 de mayo de 2016 cbed J. Daniel Garcia ARCOS@UC3M (josedaniel.garcia@uc3m.es) Twitter

Más detalles

Introducción a los Sistemas Operativos

Introducción a los Sistemas Operativos Introducción a los Sistemas Operativos Pedro Corcuera Dpto. Matemática Aplicada y Ciencias de la Computación Universidad de Cantabria corcuerp@unican.es 1 Índice General Conceptos sobre ordenadores Concepto

Más detalles

ADMINISTRACION DE LA MEMORIA. En memoria 1 solo proceso Desventajas:

ADMINISTRACION DE LA MEMORIA. En memoria 1 solo proceso Desventajas: ADMINISTRACION DE LA MEMORIA Función del Administrador de Memoria Registra qué parte de memoria está libre y ocupada Asigna y libera espacio en memoria a los procesos Administra el intercambio entre la

Más detalles

ESTÁNDAR DE COMPETENCIA

ESTÁNDAR DE COMPETENCIA I.- Datos Generales Código EC0835 Título Ejecución de software con codificación de comandos y datos orientada a objetos Propósito del Estándar de Competencia Servir como referente para la evaluación y

Más detalles

INDICE Prologo Capitulo 1. Algoritmos y programas Capitulo 2. La resolución de los problemas con computadoras y las herramientas de programación

INDICE Prologo Capitulo 1. Algoritmos y programas Capitulo 2. La resolución de los problemas con computadoras y las herramientas de programación INDICE Prologo XI Capitulo 1. Algoritmos y programas 1.1. Configuraciones de una computadora 1 1.2. Lenguajes de programación 2 1.3. Resolución de problemas 1.3.1. Fase de resolución del problema 3 1.3.1.1.

Más detalles

UNIVERSIDAD CENTRAL DE VENEZUELA FACULTAD DE INGENIERÍA ESCUELA DE INGENIERÍA CIVIL DEPARTAMENTO DE INGENIERÍA ESTRUCTURAL

UNIVERSIDAD CENTRAL DE VENEZUELA FACULTAD DE INGENIERÍA ESCUELA DE INGENIERÍA CIVIL DEPARTAMENTO DE INGENIERÍA ESTRUCTURAL 117 TIPO DE 5 FUNDAMENTACIÓN El desarrollo de toda actividad productiva y/o cualquier proyecto requiere como insumo indispensable disponer, manejar y procesar información relevante para los fines que se

Más detalles

Sistemas Operativos. Curso 2016 Sistema de Archivos

Sistemas Operativos. Curso 2016 Sistema de Archivos Sistemas Operativos Curso 2016 Sistema de Archivos Agenda Interfaz. Archivos. Directorios. Seguridad en archivos. Implementación. Definiciones. Sistema de archivos virtual. Estructura de los directorios.

Más detalles

Proyecto Multimedia. Elio Sancristóbal Ruiz

Proyecto Multimedia. Elio Sancristóbal Ruiz Proyecto Multimedia Elio Sancristóbal Ruiz Índice Áreas que participan en un proyecto multimedia. Área de redacción Área de producción Área técnica Área artística Máster en Ingeniería de la Web 2 Área

Más detalles

Sesión VI: Desarrollo de aplicaciones en el entorno MATLAB

Sesión VI: Desarrollo de aplicaciones en el entorno MATLAB 1 Sesión VI: Desarrollo de aplicaciones en el entorno MATLAB LPI: Control y Procesamiento Digital de Señales Por: Ricardo Alzate Castaño UNIVERSIDAD NACIONAL DE COLOMBIA Sede Manizales Segundo Semestre

Más detalles

Threads, SMP y Microkernels. Proceso

Threads, SMP y Microkernels. Proceso Threads, SMP y Microkernels Proceso Propiedad de los recursos a un proceso se le asigna un espacio de dirección virtual para guardar su imagen Calendarización/ejecución sigue una ruta de ejecución la cual

Más detalles

Arquitectura de Computadores II Clase #7

Arquitectura de Computadores II Clase #7 Arquitectura de Computadores II Clase #7 Facultad de Ingeniería Universidad de la República Instituto de Computación Curso 2010 Veremos Memoria virtual 1 Recordemos: Jerarquía de Memoria Registros Instr.

Más detalles

1.4.1 Inicio de la computadora por primera vez Hay problemas Causas, síntomas y soluciones a posibles averías...

1.4.1 Inicio de la computadora por primera vez Hay problemas Causas, síntomas y soluciones a posibles averías... Índice INTRODUCCIÓN...11 CAPÍTULO 1. EXPLOTACIÓN DE SISTEMAS MICROINFORMÁTICOS...13 1.1 La arquitectura de los ordenadores...14 1.1.1 La máquina de Turing...14 1.1.2 La arquitectura Harvard...15 1.1.3

Más detalles

FUNDAMENTOS DE INFORMÁTICA

FUNDAMENTOS DE INFORMÁTICA FUNDAMENTOS DE INFORMÁTICA Tema 1 Introducción a la Programación en Visual Basic Departamento de Ingeniería de Sistemas y Automática Universidad de Vigo undamentos de Informática. Departamento de Ingeniería

Más detalles