Programación Vectorial
|
|
|
- Fernando Salinas Correa
- hace 10 años
- Vistas:
Transcripción
1 Programación Vectorial Rafael Valdés Valdazo, Angel María Vilaboa Pérez Resumen. Este documento trata sobre los fundamentos básicos de la programación vectorial, sus características, las ventajas que representa frente a una programación escalar y como convertir un código escalar a uno vectorial. Para ello se desarrollan varios ejemplos sobre problemas conocidos donde se explican las numerosas ventajas. También se muestra un desarrollo práctico para el problema DAXPY ejecutado en una máquina de arquitectura DLX y otra DLXV, buscando mostrar una comparativa real entre la programación escalar y vectorial. Palabras Clave: Paralelismo explícito, paralelismo implícito, tiempo de arranque, vectorización, velocidad de iniciación. 1 Introducción La programación vectorial está unida al concepto de vector. Cabe destacar que dicho concepto se refiere a un conjunto de datos del mismo tipo almacenados en memoria normalmente en posiciones contiguas pero no tiene por qué ser así ya que imaginase una matriz de dos dimensiones que está almacenada en memoria por filas. Si consideramos que un vector es una fila sí que se cumple que los datos están almacenados de forma contigua en la memoria pero si se considera como vectores las columnas o incluso las diagonales se pierde esa contigüidad en memoria. Decimos que la programación vectorial está unida al concepto de vector e hicimos hincapié en ese concepto debido a que la principal diferencia entre la programación vectorial y escalar estriba en que en la vectorial, utilizada en procesadores vectoriales, puede decodificar instrucciones cuyos operandos sean vectores por lo que pueden realizar operaciones tanto aritméticas como lógicas sobre las componentes de dichos vectores en una única instrucción. En este contexto surge a su vez el proceso de vectorización que se basa en la conversión de un programa correspondiente a un procesador escalar a otro vectorial. A continuación se mostrará una parte del conjunto de operaciones vectoriales que se pueden realizar sobre operandos vectoriales (vectores) compuestos por un conjunto de n componentes (nos referiremos a dicho n como tamaño) donde cada componente es un escalar (por ejemplo entero, punto flotante ).
2 Fig. 1. Instrucciones Vectoriales. Cada una de estas instrucciones vectoriales (junto con el resto que no se reflejan por ser un número elevado de ellas y que no afectan a los conceptos que se tratan de desarrollar en este trabajo) es equivalente a la ejecución de un bucle completo de instrucciones ordinarias en el que en cada iteración del bucle trabajaría sobre cada una de las componentes del vector. Todo esto nos permite establecer un conjunto de ventajas que nos ofrece la vectorización frente a la programación escalar como son: 1. En las operaciones vectoriales cada resultado es independiente de los anteriores lo que nos permite efectuar los cálculos sin que existan conflictos debido a dependencias de datos. Dichos riesgos por dependencias de datos los ha resuelto el compilador o el programador que ha decidido que sea una operación vectorial. 2. Una única instrucción vectorial es equivalente a ejecutar un bucle completo lo que es requerido un ancho de banda a la hora de la lectura de esa instrucción comparándose con el que producirían el conjunto de instrucciones escalares a las que equivaldría lo que nos reduce el efecto del cuello de botella considerablemente. 3. Cuando es necesario acceder a memoria en las instrucciones vectoriales se hace mediante un patrón fijo (normalmente serán adyacentes) lo que facilita su lectura tanto como si se dispone de memoria entrelazada como si no ya que las posiciones de memoria adyacentes se cargarán en caché lo que nos produce un considerable ahorro de tiempo.
3 4. Al sustituirse un bucle completo por una instrucción vectorial cuyo comportamiento ya está predeterminado los riesgos de control que podrían surgir del salto del bucle son inexistentes. Debido a estas razones las operaciones vectoriales pueden ejecutarse de forma mucho más rápida que lo que tardaría la secuencia de instrucciones equivalentes sobre ese mismo conjunto de datos lo que hace que se tienda a diseñar y fabricar máquinas vectoriales que soporten estas instrucciones en aplicaciones donde con cierta frecuencia se ejecuten este tipo de operaciones. 2 Características de los lenguajes vectoriales Para evitar la pérdida del paralelismo de un algoritmo vectorizable es necesaria la existencia de lenguajes de alto nivel que estén adecuados a los componentes vectoriales. Estos lenguajes deben tener una serie de propiedades para expresar el paralelismode los algoritmos y así explotarlo con más eficiencia. Dichas propiedades son las siguientes: 1. Deben poseer un alto grado de flexibilidad para declarar diferentes clases de objetos con distintas estructuras y formas de almacenamiento, es decir, el lenguaje debe poder expresar las diferentes formas de almacenar las componentes de un mismo objeto, por ejemplo por filas, columnas o diagonales. 2. El lenguaje debe ser eficaz para la manipulación de matrices y vectores dispersos, es decir, con componentes nulas, ya que son muy habituales en problemas reales, y por ellos el lenguaje de programación debe suministrar los medios suficientes para almacenarlos sin ocupar excesiva memoria. 3. Deben disponer de operaciones vectoriales nativas que trabajen directamente sobre las estructuras de datos comentadas durante este documento sin necesidad de bucles. Generalmente será el compilador del lenguaje el que transforme esas operaciones de alto nivel en las instrucciones vectoriales de la máquina y deberá ser capaz de aplicar técnicas de seccionamiento para descomponer algunas instrucciones de alto nivel en otras más sencillas cuando el número de componentes del vector sea superior a la capacidad de los registros vectoriales. Todo lo expuesto anteriormente no significa que los lenguajes no permitan programación mediante bucles ya que puede haber muchas operaciones combinadas que solo puedan detallarse mediante bucles específicos ya que resulta evidente que los lenguajes vectoriales no pueden tener como operaciones nativas todas las posibles combinaciones de operaciones vectoriales ya que podrían ser infinitas aunque si poseen las más frecuentes.
4 2.1 Conversión de código escalar en código vectorial Existen dos formas de generar código vectorial: La programación manual o también llamada paralelismo explícito o la vectorización automática o también llamada Paralelismo implícito. En el paralelismo explícito se consigue el código vectorial usando lenguajes vectoriales. Actualmente existen pocos lenguajes vectoriales y no existe una normalización aceptada para estos lenguajes. En la otra opción, paralelismo implícito, se utilizan compiladores capaces de vectorizar un código escalar, es decir la programación se realiza en un lenguaje de programación secuencial y es el compilador el que se encarga de generar código paralelo para aquellas partes del programa que pueden ser vectorizadas. En medida que el compilador sea capaz de vectorizar más el código, el rendimiento mejorará en la misma medida. Ejemplos de lenguaje que soportaría el paralelismo implícito serían el HPF (High Performance Fortran) que es una extensión de Fortran 90 con constructores que soportan computación paralela, Id un lenguaje de programación paralelo de propósito general o MATLAB M-Code. Existen una serie de dificultades en la vectorización del código debidas a las instrucciones de control y especialmente en las condicionales, dependencia de datos y las indexiones indirectas, es decir componentes de vectores o matrices que son índice de otros vectores o matrices, que sólo se resuelven en ejecución. Por ello para los lenguajes de programación imperativo la complejidad del problema es casi prohibitivo y permite que los resultados sean positivos sólo para un selecto conjuntos de aplicaciones como por ejemplo, las aplicaciones que realizan operaciones intensivas en matrices. Las ventajas de la vectorización automática o parelelismo implícito serían que el programador que escribe el código no tiene por qué preocuparse por la división de tareas y solo se centra en el problema de que su programa está destinado a resolver por lo que facilita el diseño de programas paralelos, aumentando sustancialmente la productividad del programador. En cambio las desventajas que posee frente al paralelismo explícito serían que se reduce el control que el programador tiene sobre la ejecución paralela y a veces resultan menos óptimos (si un vector tuviese un número reducido de componentes como por ejemplo 3 sería ineficiente realizar esta práctica pero el compilador la realizaría transparentemente al programador). Como inconveniente del paralelismo explícito, según los creadores del lenguaje de programación Oz descubrieron investigando que con esta forma de vectorización la depuración de los programas es mucho más dificultosa. A continuación se va a mostrar los resultados obtenidos en unos experimentos que tratan de reflejar una comparativa de rendimiento entre 3 modelos de vectorización distintos 1. 1 Sisal: Un lenguaje paralelo implícito. Sr y C: Ambos lenguajes son explícitos (Sr imperativo).
5 Para ello se utilizará un procesador Silicon Graphics Iris 4D/340 con memoria compartida, cuatro procesadores de 33Mhz, 64Mbytes de memoria principal, 64Kbytes de caché de datos, 64Kbytes de caché de instrucciones y 256Kbytes de cache de datos secundaria. Los resultados obtenidos en un programa de multiplicación de matrices son los siguientes (las medidas están en segundos): Cabe destacar que el lenguaje de programación C guarda las matrices en el orden de las filas, por lo tanto el acceso a la columna de la matriz de los resultados requiere menos fallos en la caché. Los resultados obtenidos en un programa que realiza el método de iteración de Jacobi son los siguientes (las medidas también están en segundos): Fig. 2.Resultados para método de iteración Jacobi De esto se puede observar que SR, método explícito es la que peores resultados demuestra y sin embargo C, el otro método explícito, el que los presenta mejores. Esto quiere decir que el paralelismo implícito es mejor si el compilador crea un programa eficiente. Cabe destacar que tanto el programa en C como el Programa en Sr el programador utiliza sólo dos matrices, mientras que los programas de SISAL asignan y borran una matriz en cada iteración ya que el programador sabe que la matriz puede ser reutilizado en el siguiente iteración, sin embargo, esto no puede ser expresado en SISAL.
6 Sin embargo vamos a mostrar los resultados obtenidos con el problema de Cuadratura Adaptativa con dos programas diferentes para SR, Bag y Prune. Prune es un programa que limita el número de número de tareas que se insertan en la bolsa para mejorar el resultado 2. Fig. 3. Resultados para Prume Aquí se ve que Sr gana a SISAL cuando ejecuta el programa prune y sin embargo más lento cuando ejecuta el bag. Esto se debe a que el programador de prune fue más hábil a la hora de realizar su trabajo ya que tuvo en cuenta cuestiones de pivotage y otras cuestiones relacionadas con el problema, por lo que la eficiencia está relacionada con las capacidades del programador. 3 Comparativa Arquitectura Escalar y Arquitectura Vectorial A continuación se mostrará una comparativa en la ejecución del siguiente programa, llamado DAXPY: Y=A*X + Y (1) Donde A es un número flotante, y tanto X como Y son vectores de flotantes. Para ello se utilizará la arquitectura escalar vista en clase DLX y DLXV para la vectorial, junto con las herramientas correspondientes WinDLX y WinDLXV. Se debe tener en cuenta el cálculo de los tiempos vectoriales, ya que los escalares ya están vistos en clase y no se considera mencionarlos explícitamente. En un computador vectorial podemos distinguir dos tiempos en la ejecución de instrucciones en las unidades funcionales: 2 Fsc: compilador modificado de Sisal.
7 - Tiempo de arranque: El que transcurre desde el comienzo hasta obtener el resultado de la primera componente; depende de la latencia de la unidad funcional. - Velocidad de iniciación: El que transcurre entre la obtención de cada una del resto de componentes después del tiempo de arranque. En computadores totalmente segmentados, como es el caso del DLXV, su valor es 1 ciclo. Los tiempos de arranque de las unidades funcionales del DLXV se muestran en la siguiente tabla. Si dos operaciones consecutivas son dependientes se debe añadir al tiempo de arranque 4 ciclos. Operación Arranque Suma vectorial 6 Multiplicación vectorial 7 División vectorial 20 Carga vectorial 12 Table 1. Tiempos de arranque A continuación se muestra el código ensamblador para DLX:.data.align 2 x:.double 1.2,1.4,2.2,2.4,3.2,3.4 y:.double 2.1,4.1,2.2,4.2,2.3,4.3 a:.double 2.7.text.global main main: add r1,r0,x ;Guarda la dirección de comienzo de x en R1 add r2,r0,y ;Guarda la dirección de comienzo de y en R2 ld f0,a ; Carga la variable a en el registro F0 addi r4,r1,40 ;Almacena en R4 la última posición del ; vector inicio:
8 ld f2, 0(r1) ; Carga el contenido de x[i] en F2 multd f4, f2, f0 ; Multiplica a*x[i] y lo guarda en F4 ld f6, 0(r2) ; Carga y[j] en el registro F6 addd F6,F4,F6 ; Suma (a*x[i]) + y[j] y lo guarda en F6 sd 0(r2), F6 ; Almacena el contenido de F6 en y[j] addi r1, r1, 8 ; Incrementa en 8 el índice i addi r2,r2, 8 ; Incrementa en 8 el índice j sgt r3, r1, r4 ; R1>R4? -> Guarda el resultado en R3 beqz r3, inicio ; Si no se cumple que R1>R4 salta a ; inicio trap 0 ; Fin El código ensamblador para DLXV es:.data rx:.double 1.2,1.4,2.2,2.4,3.2,3.4 ry:.double 2.1,4.1,2.2,4.2,2.3,4.3 a:.double 2.7.text main: ld f0,a lv v1,rx multsv v2,f0,v1 lv v3,ry addv v4,v2,v3 sv ry,v4 Antes de pasar a la ejecución de los programas, se puede observar que para el código vectorial se necesita menos de la mitad de instrucciones que para la escalar 6 frente a 14), además en la escalar tendrá que afrontar la ejecución del programa a través de un bucle.
9 3.1 Resultados obtenidos en la ejecución del programa escalar Fig. 4. Traza de ejecución para el programa escalar Ciclos: 104 Stalls: 44 Tipo de Instrucciones Nº de instrucciones % Carga/Almacenamiento 19 (13/6) 32,20 Aritmético/lógicas 7 por iteración 66,11 Otras 1 1,69 Total Instrucciones: Table 2. Instrucciones ejecutadas para DLX Tipo de Salto Nº de saltos % Saltos Condicionales 6 10,17 Saltos Incondicionales 0 0,00 Total Saltos: 6 10,17 Table 3. Saltos para DLX
10 Tipo de detenciones Nº de detenciones % RAW/WAR 36 34,62 WAW 0 0,00 Riesgos estructurales 0 0,00 Riesgos de control 5 4,81 Trap stalls 3 2,88 Table 4. Detenciones para DLX 3.2 Resultados obtenidos en la ejecución del programa vectorial 3 Fig. 5. Traza de ejecución de programa vectorial 3 Nota: Para la realización en DLXV se ha activado el adelanto de resultados y la predicción de no tomar el tratamiento de los saltos.
11 Ciclos: 31 Instrucciones: 21 CPI: 1,476 Unidades Funcionales Escalares Unidad funcional Segmentación Latencia Suma/Resta FP Si 4 Multiplicación FP Si 7 División FP No 25 Table 5. Unidades funcionales escalares Unidades Funcionales Vectoriales Unidad functional Segmentación Latencia Suma/Resta FP Si 7 Multiplicación FP Si 8 División FP No 21 Carga/Almacenamiento Vectorial Si 13 Table 6. Unidades funcionales vectoriales 3.3 Conclusiones 1. La máquina vectorial (DLXV) necesita 31 ciclos para realizar la misma operación que DLX, que necesita 104 ciclos, por lo que el rendimiento de DLXV es claramente superior. 2. La frecuencia de interbloqueos de las etapas: En DLX cada ADDD debe esperar por un MULTD, y cada SD debe esperar por un ADDD. En DLXV, cada instrucción vectorial opera sobre todo los elementos del vector independientemente; sólo se requiere una detención por operación vectorial. Hablando en cifras 44 detenciones en total para DLX, algo más de un 40% del número total de instrucciones ejecutadas. 3. Además, se observa que para este problema concreto DLX necesita realizar unas instrucciones de salto, en concreto 6, las cuales afectan al rendimiento pero no son imprescindibles, es decir, se podría repetir el código las veces que fueran necesarias sin tener que ejecutar dichas instrucciones. Estas 6 instrucciones consumen un 10% de la ejecución total, lo cual es significativo.
12 4-Blibliografía -Introducción general, definiciones básicas, características, tiempo de arranque Nociones generales, juego de instrucciones, arquitectura DLXV - -Información muy general -Artículo A Comparison of Implicit and Explicit Parallel Programming de Vincent W. Freeh (Universidad de Arizona). -Ejemplos de comparación de programación paralela explicita e implicita. -Práctica 4 Procesadores Vectoriales Universidad de Alcalá. -Familiarización con arquitectura DLXV -Tema 4 Computadores Vectoriales DIESA.Arquitectura y Tecnología de computadores. -Multi-core Programming: Implicit Parallelism. Transparencias de Tuukka Haapasalo -Paralelismo explícito e implicito; definiciones, ventajas y desventajas...
PROGRAMACION VECTORIAL RAFAEL VALDÉS VALDAZO UO196581 ÁNGEL MARÍA VILABOA PÉREZ UO197092 BLOQUE PARALELAS 4º INFORMÁTICA UNIVERSIDAD DE OVIEDO
PROGRAMACION VECTORIAL RAFAEL VALDÉS VALDAZO UO196581 ÁNGEL MARÍA VILABOA PÉREZ UO197092 BLOQUE PARALELAS 4º INFORMÁTICA UNIVERSIDAD DE OVIEDO INTRODUCCIÓN Ligada al concepto de vector Decodifica instrucciones
Procesadores Vectoriales
Procesadores Vectoriales Curso 2011-2012 Por qué procesamiento vectorial? La segmentación tiene límites: Si se aumenta mucho el número de etapas, baja el ciclo de reloj, pero aumentan las dependencias.
Capítulo 5. Cliente-Servidor.
Capítulo 5. Cliente-Servidor. 5.1 Introducción En este capítulo hablaremos acerca de la arquitectura Cliente-Servidor, ya que para nuestra aplicación utilizamos ésta arquitectura al convertir en un servidor
18. Camino de datos y unidad de control
Oliverio J. Santana Jaria Sistemas Digitales Ingeniería Técnica en Informática de Sistemas Curso 2006 2007 18. Camino de datos y unidad de control Un La versatilidad una característica deseable los Los
No 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
ORDENADORES VECTORIALES
ORDENADORES VECTORIALES Un ordenador vectorial es una máquina diseñada específicamente para realizar de forma eficiente operaciones en las que se ven involucrados elementos de matrices, denominados vectores.
Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal)
Unidad I Sistemas numéricos 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal) Los computadores manipulan y almacenan los datos usando interruptores electrónicos que están ENCENDIDOS o APAGADOS.
Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA
Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA Documento de trabajo elaborado para la Red Temática DocenWeb: Red Temática de Docencia en Control mediante Web (DPI2002-11505-E)
Guí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
SEGURIDAD 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
Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología
Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología La metodología para el desarrollo de software es un modo sistemático de realizar, gestionar y administrar un proyecto
1 1 0 1 x 1 0 1 1 1 1 0 1 + 1 1 0 1 0 0 0 0 1 1 0 1 1 0 0 0 1 1 1 1
5.1.3 Multiplicación de números enteros. El algoritmo de la multiplicación tal y como se realizaría manualmente con operandos positivos de cuatro bits es el siguiente: 1 1 0 1 x 1 0 1 1 1 1 0 1 + 1 1 0
ARQUITECTURA 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
TABLA DE DECISION. Consideremos la siguiente tabla, expresada en forma genérica, como ejemplo y establezcamos la manera en que debe leerse.
TABLA DE DECISION La tabla de decisión es una herramienta que sintetiza procesos en los cuales se dan un conjunto de condiciones y un conjunto de acciones a tomar según el valor que toman las condiciones.
Centro Asociado Palma de Mallorca. Tutor: Antonio Rivero Cuesta
Centro Asociado Palma de Mallorca Exámenes Ingeniería Computadores II Tutor: Antonio Rivero Cuesta Exámenes TEMA 1 Centro Asociado Palma de Mallorca Tutor: Antonio Rivero Cuesta Un procesador sin segmentación
ARREGLOS DEFINICION GENERAL DE ARREGLO
ARREGLOS DEFINICION GENERAL DE ARREGLO Conjunto de cantidades o valores homogéneos, que por su naturaleza se comportan de idéntica forma y deben de ser tratados en forma similar. Se les debe de dar un
UNIDADES 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:
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
Base de datos en Excel
Base de datos en Excel Una base datos es un conjunto de información que ha sido organizado bajo un mismo contexto y se encuentra almacenada y lista para ser utilizada en cualquier momento. Las bases de
Capítulo 9. Archivos de sintaxis
Capítulo 9 Archivos de sintaxis El SPSS permite generar y editar archivos de texto con sintaxis SPSS, es decir, archivos de texto con instrucciones de programación en un lenguaje propio del SPSS. Esta
Capí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
Evaluación del rendimiento de procesadores Intel Nehalem. Modelos x7550, x5670 y x5570
Evaluación del rendimiento de procesadores Intel Nehalem. Modelos x7550, x5670 y x5570 Juan Carlos Fernández Rodríguez. Área de HPC. Centro Informático Científico de Andalucía (CICA) Junta de Andalucía
INTRODUCCION A LA PROGRAMACION DE PLC
INTRODUCCION A LA PROGRAMACION DE PLC Esta guía se utilizará para estudiar la estructura general de programación de um PLC Instrucciones y Programas Una instrucción u orden de trabajo consta de dos partes
Ecuaciones de primer grado con dos incógnitas
Ecuaciones de primer grado con dos incógnitas Si decimos: "las edades de mis padres suman 120 años", podemos expresar esta frase algebraicamente de la siguiente forma: Entonces, Denominamos x a la edad
Unidad 1. Fundamentos en Gestión de Riesgos
1.1 Gestión de Proyectos Unidad 1. Fundamentos en Gestión de Riesgos La gestión de proyectos es una disciplina con la cual se integran los procesos propios de la gerencia o administración de proyectos.
2 EL DOCUMENTO DE ESPECIFICACIONES
Ingeniería Informática Tecnología de la Programación TEMA 1 Documentación de programas. 1 LA DOCUMENTACIÓN DE PROGRAMAS En la ejecución de un proyecto informático o un programa software se deben de seguir
E 1 E 2 E 2 E 3 E 4 E 5 2E 4
Problemas resueltos de Espacios Vectoriales: 1- Para cada uno de los conjuntos de vectores que se dan a continuación estudia si son linealmente independientes, sistema generador o base: a) (2, 1, 1, 1),
4. 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
1.4.1.2. Resumen... 1.4.2. ÁREA DE FACTURACIÓN::INFORMES::Pedidos...27 1.4.2.1. Detalle... 1.4.2.2. Resumen... 1.4.3. ÁREA DE
MANUAL DE USUARIO DE ABANQ 1 Índice de contenido 1 ÁREA DE FACTURACIÓN......4 1.1 ÁREA DE FACTURACIÓN::PRINCIPAL...4 1.1.1. ÁREA DE FACTURACIÓN::PRINCIPAL::EMPRESA...4 1.1.1.1. ÁREA DE FACTURACIÓN::PRINCIPAL::EMPRESA::General...4
SISTEMAS DE NUMERACIÓN. Sistema decimal
SISTEMAS DE NUMERACIÓN Sistema decimal Desde antiguo el Hombre ha ideado sistemas para numerar objetos, algunos sistemas primitivos han llegado hasta nuestros días, tal es el caso de los "números romanos",
LiLa Portal Guía para profesores
Library of Labs Lecturer s Guide LiLa Portal Guía para profesores Se espera que los profesores se encarguen de gestionar el aprendizaje de los alumnos, por lo que su objetivo es seleccionar de la lista
Práctica 5. Curso 2014-2015
Prácticas de Seguridad Informática Práctica 5 Grado Ingeniería Informática Curso 2014-2015 Universidad de Zaragoza Escuela de Ingeniería y Arquitectura Departamento de Informática e Ingeniería de Sistemas
CAPÍTULO 3. HERRAMIENTA DE SOFTWARE DE PLANEACIÓN DE
CAPÍTULO 3. HERRAMIENTA DE SOFTWARE DE PLANEACIÓN DE INVENTARIO Y PROCESO Objetivos del capítulo Desarrollar una herramienta de software de planeación de inventario con los datos obtenidos del capítulo
Tecnología de la Información y la Comunicación. Base de datos. Consultas - 2007 -
Tecnología de la Información y la Comunicación Base de datos Consultas - 2007 - Profesores del área Informática: Guillermo Storti Gladys Ríos Gabriel Campodónico Consultas Se utilizan consultas para ver,
Una 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
SISTEMAS DE NUMERACIÓN. Sistema de numeración decimal: 5 10 2 2 10 1 8 10 0 =528 8 10 3 2 10 2 4 10 1 5 10 0 9 10 1 7 10 2 =8245,97
SISTEMAS DE NUMERACIÓN Un sistema de numeración es un conjunto de símbolos y reglas que permiten representar datos numéricos. La norma principal en un sistema de numeración posicional es que un mismo símbolo
Curso Excel Básico - Intermedio
Curso Excel Básico - Intermedio Clase 4 Relator: Miguel Rivera Adonis Introducción Base de Datos: Definición de Base de Datos Ordenar datos Formulario Filtros Trabajar con Sub-Totales Validación de Datos
Conclusiones. Particionado Consciente de los Datos
Capítulo 6 Conclusiones Una de las principales conclusiones que se extraen de esta tesis es que para que un algoritmo de ordenación sea el más rápido para cualquier conjunto de datos a ordenar, debe ser
BASES Y DIMENSIÓN. Propiedades de las bases. Ejemplos de bases.
BASES Y DIMENSIÓN Definición: Base. Se llama base de un espacio (o subespacio) vectorial a un sistema generador de dicho espacio o subespacio, que sea a la vez linealmente independiente. β Propiedades
Presentaciones. Con el estudio de esta Unidad pretendemos alcanzar los siguientes objetivos:
UNIDAD 8 Presentaciones Reunión. (ITE. Banco de imágenes) as presentaciones son documentos formados por una sucesión de páginas, llamadas diapositivas, que transmiten información estructurada de manera
CURSO: APACHE SPARK CAPÍTULO 2: INTRODUCCIÓN A APACHE SPARK. www.formacionhadoop.com
CURSO: APACHE SPARK CAPÍTULO 2: INTRODUCCIÓN A APACHE SPARK www.formacionhadoop.com Índice 1 Qué es Big Data? 2 Problemas con los sistemas tradicionales 3 Qué es Spark? 3.1 Procesamiento de datos distribuido
MACROS. Automatizar tareas a través del uso de las macros.
OBJETIVOS MACROS Definiciones Automatizar tareas a través del uso de las macros. Grabar Ejecutar Manipular macros. Tipos de Macros en Excel Introducción Las operaciones tradicionales que se pueden realizar
Tecnologías en la Educación Matemática. Expresiones. Datos. Expresiones Aritméticas. Expresiones Aritméticas 19/08/2014
Tecnologías en la Educación Matemática [email protected] Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR 1 Datos Los algoritmos combinan datos con acciones. Los datos de entrada
Diseño orientado al flujo de datos
Diseño orientado al flujo de datos Recordemos que el diseño es una actividad que consta de una serie de pasos, en los que partiendo de la especificación del sistema (de los propios requerimientos), obtenemos
Sistemas de numeración
Sistemas de numeración Un sistema de numeración es un conjunto de símbolos y reglas que permiten representar datos numéricos. Los sistemas de numeración actuales son sistemas posicionales, que se caracterizan
Media vs mediana vs moda Cual medida de tendencia central es mas adecuada? MEDIA conveniencias:
Iniciar con las interpretaciones de las medidas MEDIA VS MEDIANA VS MODA CUAL ES LA MEDIDA ADECUADA TAREA MEDIA PONDERADA Actividad de Medidas de Localización Problema 1. El problema de las tasas de delito.
Estructuras de Control - Diagrama de Flujo
RESOLUCIÓN DE PROBLEMAS Y ALGORITMOS Ingeniería en Computación Ingeniería en Informática UNIVERSIDAD NACIONAL DE SAN LUIS DEPARTAMENTO DE INFORMÁTICA AÑO 2015 Índice 1. Programación estructurada 2 1.1.
Guía para comparar presupuestos de Traducción
Guía para comparar presupuestos de Traducción 1 Introducción Estimado cliente: Probablemente, cuando tiene que realizar una traducción solicita presupuestos a varios proveedores. Y posiblemente, al recibirlos
ESTRUCTURA DE DATOS: ARREGLOS
ESTRUCTURA DE DATOS: ARREGLOS 1. Introduccion 2. Arreglos - Concepto - Caracteristicas 3. Arreglos Unidimensionales 4. Arreglos Bidimensionales 5. Ventajas del uso de arreglos 6. Ejemplo 1. Introducción
ESCUELA SUPERIOR DE INFORMATICA Prácticas de Estadística UNA SESIÓN EN SPSS
UNA SESIÓN EN SPSS INTRODUCCIÓN. SPSS (Statistical Product and Service Solutions) es un paquete estadístico orientado, en principio, al ámbito de aplicación de las Ciencias sociales, es uno de las herramientas
CAPITULO 2 - POR QUÉ NECESITAN LAS EMPRESAS UN CUADRO DE MANDO INTEGRAL?
CAPITULO 2 - POR QUÉ NECESITAN LAS EMPRESAS UN CUADRO DE MANDO INTEGRAL? Los indicadores financieros. Desde hace mucho tiempo se utiliza el sistema de mediciones financiero, desde la época de los egipcios
Espacios generados, dependencia lineal y bases
Espacios generados dependencia lineal y bases Departamento de Matemáticas CCIR/ITESM 14 de enero de 2011 Índice 14.1. Introducción............................................... 1 14.2. Espacio Generado............................................
App para realizar consultas al Sistema de Información Estadística de Castilla y León
App para realizar consultas al Sistema de Información Estadística de Castilla y León Jesús M. Rodríguez Rodríguez [email protected] Dirección General de Presupuestos y Estadística Consejería de Hacienda
Creación de Funciones de Conducción
Creación de Funciones de Conducción Requerimientos Para el desarrollo de esta actividad se requiere que: Contemos con un robot BoeBot armado con placa Arduino. Repetición En estos momentos habremos notado
COMPARACIÓN DE ÁREAS DE FIGURAS POR ESTUDIANTES DE PRIMERO DE MAGISTERIO
COMPARACIÓN DE ÁREAS DE FIGURAS POR ESTUDIANTES DE PRIMERO DE MAGISTERIO Sonia Aguilera Piqueras y Pablo Flores Martínez Departamento de Didáctica de la Matemática Universidad de Granada 1. Introducción
Tema 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
SCT3000 95. Software para la calibración de transductores de fuerza. Versión 3.5. Microtest S.A. [email protected]
SCT3000 95 Versión 3.5 Software para la calibración de transductores de fuerza. Microtest S.A. [email protected] Introducción El programa SCT3000 95, es un sistema diseñado para la calibración automática
El objetivo principal del presente curso es proporcionar a sus alumnos los conocimientos y las herramientas básicas para la gestión de proyectos.
Gestión de proyectos Duración: 45 horas Objetivos: El objetivo principal del presente curso es proporcionar a sus alumnos los conocimientos y las herramientas básicas para la gestión de proyectos. Contenidos:
Gestión de proyectos
Gestión de proyectos Horas: 45 El objetivo principal del presente curso es proporcionar a sus alumnos los conocimientos y las herramientas básicas para la gestión de proyectos. Gestión de proyectos El
Capítulo 4. Requisitos del modelo para la mejora de la calidad de código fuente
Capítulo 4. Requisitos del modelo para la mejora de la calidad de código fuente En este capítulo definimos los requisitos del modelo para un sistema centrado en la mejora de la calidad del código fuente.
MANUAL DE AYUDA HERRAMIENTA DE APROVISIONAMIENTO
MANUAL DE AYUDA HERRAMIENTA DE APROVISIONAMIENTO Fecha última revisión: Junio 2011 INDICE DE CONTENIDOS HERRAMIENTA DE APROVISIONAMIENTO... 3 1. QUÉ ES LA HERRAMIENTA DE APROVISIONAMIENTO... 3 HERRAMIENTA
Capítulo 2 Tratamiento Contable de los Impuestos. 2.1 Normas Internacionales de Contabilidad
Capítulo 2 Tratamiento Contable de los Impuestos 2.1 Normas Internacionales de Contabilidad Las Normas Internacionales de Contabilidad (NIC) o International Financial Reporting Standard (IFRS) son los
Tema 2. Diseño del repertorio de instrucciones
Soluciones a los problemas impares Tema 2. Diseño del repertorio de instrucciones Arquitectura de Computadores Curso 2009-2010 Tema 2: Hoja: 2 / 16 Tema 2: Hoja: 3 / 16 Base teórica Al diseñar un computador,
Por qué interesa suscribir un plan de pensiones?
1 Por qué interesa suscribir un plan de pensiones? 1.1. Cómo se impulsó su creación? 1.2. Será suficiente la pensión de la Seguridad Social? 1.3. Se obtienen ventajas fiscales y de ahorro a largo plazo?
GENERACIÓN DE CÓDIGO
GENERACIÓN DE CÓDIGO INTRODUCCION La generación de código es la fase más compleja de un compilador, puesto que no sólo depende de las características del lenguaje fuente sino también de contar con información
Cálculo Simbólico también es posible con GeoGebra
www.fisem.org/web/union ISSN: 1815-0640 Número 34. Junio de 2013 páginas 151-167 Coordinado por Agustín Carrillo de Albornoz Cálculo Simbólico también es posible con GeoGebra Antes de exponer las posibilidades
5: LA FUNCIÓN PRODUCTIVA DE LA EMPRESA
5: LA FUNCIÓN PRODUCTIVA DE LA EMPRESA 1. EL ÁREA DE PRODUCCIÓN DE LA EMPRESA: PRODUCIR: consiste en incrementar la utilidad de los bienes para satisfacer necesidades humanas. Ello implica realizar todas
EJERCICIOS RESUELTOS SOBRE ERRORES DE REDONDEO
EJERCICIOS RESUELTOS SOBRE ERRORES DE REDONDEO 1º) Considérese un número estrictamente positivo del sistema de números máquina F(s+1, m, M, 10). Supongamos que tal número es: z = 0.d 1 d...d s 10 e Responde
Tema 7: Programación con Matlab
Tema 7: Programación con Matlab 1. Introducción Matlab puede utilizarse como un lenguaje de programación que incluye todos los elementos necesarios. Añade la gran ventaja de poder incorporar a los programas
Seminario Electrónico de Soluciones Tecnológicas sobre Content Networking
Seminario Electrónico de Soluciones Tecnológicas sobre Content Networking 1 de 13 Seminario Electrónico de Soluciones Tecnológicas sobre Content Networking 3 Bienvenida. 4 Objetivos. 5 Soluciones comerciales
TEMA 3. EL PROCESO DE COMPILACIÓN, DEL CÓDIGO FUENTE AL CÓDIGO MÁQUINA
TEMA 3. EL PROCESO DE COMPILACIÓN, DEL CÓDIGO FUENTE AL CÓDIGO MÁQUINA Programa: Algoritmo (secuencia no ambigua, finita y ordenada de instrucciones para la resolución de un determinado problema) traducido
TEMA 2: Representación de la Información en las computadoras
TEMA 2: Representación de la Información en las computadoras Introducción Una computadora es una máquina que procesa información y ejecuta programas. Para que la computadora ejecute un programa, es necesario
Medias Móviles: Señales para invertir en la Bolsa
www.gacetafinanciera.com Medias Móviles: Señales para invertir en la Bolsa Juan P López..www.futuros.com Las medias móviles continúan siendo una herramienta básica en lo que se refiere a determinar tendencias
CAPÍTULO VI PREPARACIÓN DEL MODELO EN ALGOR. En este capítulo, se hablará acerca de los pasos a seguir para poder realizar el análisis de
CAPÍTULO VI PREPARACIÓN DEL MODELO EN ALGOR. En este capítulo, se hablará acerca de los pasos a seguir para poder realizar el análisis de cualquier modelo en el software Algor. La preparación de un modelo,
Tutorial Básico de vbscript
Tutorial Básico de vbscript Bueno, primero aclarar que este tutorial, pretende explicar de manera básica las distintas instrucciones aplicadas en visual basic script (vbs de aquí en más), para que así
Tema 5 Repertorios de instrucciones: Modos de direccionamiento y formato
Tema 5 Repertorios de instrucciones: Modos de direccionamiento y formato Bibliografía: William Stallings Organización y Arquitectura de computadores 5ta. Edition. Editorial Pearson Educación.- Objetivos:
MICROSOFT WORD 2007 AVANZADO. Unidad Didáctica Nº 1
MICROSOFT WORD 2007 AVANZADO Unidad Didáctica Nº 1 I Tablas A) Explicación conceptual y de uso de una tabla B) Creación de tablas C) Trabajo con tablas D) Formato de las tablas Ejercicio de Repaso Portal
Entre 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
Tema 2. Espacios Vectoriales. 2.1. Introducción
Tema 2 Espacios Vectoriales 2.1. Introducción Estamos habituados en diferentes cursos a trabajar con el concepto de vector. Concretamente sabemos que un vector es un segmento orientado caracterizado por
Seminario Electrónico de Soluciones Tecnológicas sobre VPNs de Extranets
Seminario Electrónico de Soluciones Tecnológicas sobre VPNs de Extranets 1 de 12 Seminario Electrónico de Soluciones Tecnológicas sobre VPNs de Extranets 3 Bienvenida. 4 Objetivos. 5 Interacciones de Negocios
Consultas 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
Introducción a Computación
Curso: Modelización y simulación matemática de sistemas Metodología para su implementación computacional Introducción a Computación Esteban E. Mocskos ([email protected]) Facultades de Ciencias Exactas
Agradecimiento: A Javier Lomelín Urrea por su dedicación y esmero en este proyecto. Manuel Fernando Guzmán Muñoz Presidente OMIJal
Karel para todos! 1 Estás interesado en aprender a programar en lenguaje de Karel? Te interesa la Olimpiada Mexicana de Informática? Esta es tu oportunidad de unirte al equipo OMI y ser parte de la mejor
1.1 EL ESTUDIO TÉCNICO
1.1 EL ESTUDIO TÉCNICO 1.1.1 Definición Un estudio técnico permite proponer y analizar las diferentes opciones tecnológicas para producir los bienes o servicios que se requieren, lo que además admite verificar
_ Antología de Física I. Unidad II Vectores. Elaboró: Ing. Víctor H. Alcalá-Octaviano
24 Unidad II Vectores 2.1 Magnitudes escalares y vectoriales Unidad II. VECTORES Para muchas magnitudes físicas basta con indicar su valor para que estén perfectamente definidas y estas son las denominadas
Transacciones y bloqueos en SQL-Server
Transacciones y bloqueos en SQL-Server (Información para el uso desde Axapta) Introducción En este documento vamos a intentar explicar cuatro conceptos básicos acerca de las transacciones y los bloqueos
by Tim Tran: https://picasaweb.google.com/lh/photo/sdo00o8wa-czfov3nd0eoa?full-exif=true
by Tim Tran: https://picasaweb.google.com/lh/photo/sdo00o8wa-czfov3nd0eoa?full-exif=true I. FUNDAMENTOS 3. Representación de la información Introducción a la Informática Curso de Acceso a la Universidad
Ingeniería del Software I Clase de Testing Funcional 2do. Cuatrimestre de 2007
Enunciado Se desea efectuar el testing funcional de un programa que ejecuta transferencias entre cuentas bancarias. El programa recibe como parámetros la cuenta de origen, la de cuenta de destino y el
Análisis de los datos
Universidad Complutense de Madrid CURSOS DE FORMACIÓN EN INFORMÁTICA Análisis de los datos Hojas de cálculo Tema 6 Análisis de los datos Una de las capacidades más interesantes de Excel es la actualización
LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN
LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN Tabla de Contenidos LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN... 1 Tabla de Contenidos... 1 General... 2 Uso de los Lineamientos Estándares...
Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere.
UNIVERSIDAD DE CARABOBO FACULTAD DE CIENCIA Y TECNOLOGÍA DIRECCION DE EXTENSION COORDINACION DE PASANTIAS Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere. Pasante:
LECCIÓN 8: CIRCUITOS Y ALGORITMOS DE MULTIPLICACIÓN DE ENTEROS
ESTRUCTURA DE COMPUTADORES Pag. 8.1 LECCIÓN 8: CIRCUITOS Y ALGORITMOS DE MULTIPLICACIÓN DE ENTEROS 1. Circuitos de multiplicación La operación de multiplicar es mas compleja que la suma y por tanto se
Correspondencias entre taxonomías XBRL y ontologías en OWL Unai Aguilera, Joseba Abaitua Universidad de Deusto, EmergiaTech
Correspondencias entre taxonomías XBRL y ontologías en OWL Unai Aguilera, Joseba Abaitua Universidad de Deusto, EmergiaTech Resumen Todo documento XBRL contiene cierta información semántica que se representa
PROPÓSITO... 2 DETERMINANTES PARA UNA BUENA EXPERIENCIA DE USO...
Tabla de Contenido PROPÓSITO... 2 DETERMINANTES PARA UNA BUENA EXPERIENCIA DE USO... 2 1. LA PRESENCIA DE INFORMACIÓN Y AYUDA ÚTIL PARA COMPLETAR LOS TRÁMITES EN LÍNEA.... 2 2. LA DISPONIBILIDAD DE DIVERSOS
INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA UNIDAD CULHUACÁN INTEGRANTES
INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA UNIDAD CULHUACÁN INTEGRANTES CÁRDENAS ESPINOSA CÉSAR OCTAVIO [email protected] Boleta: 2009350122 CASTILLO GUTIÉRREZ
CONCEPTOS DE LA FUERZA
CONCEPTOS DE LA FUERZA PAPEL DE LA FUERZA EN EL RENDIMIENTO DEPORTIVO La mejora de la fuerza es un factor importante en todas las actividades deportivas, y en algunos casos determinantes (en el arbitraje
Subespacios vectoriales en R n
Subespacios vectoriales en R n Víctor Domínguez Octubre 2011 1. Introducción Con estas notas resumimos los conceptos fundamentales del tema 3 que, en pocas palabras, se puede resumir en técnicas de manejo
- MANUAL DE USUARIO -
- MANUAL DE USUARIO - Aplicación: Kz Precio Hora Instagi Instagi Teléfono: 943424465-943466874 Email: [email protected] GUIA PROGRAMA CALCULO PRECIO HORA 1. Introducción 2. Datos de la empresa 2.1.Gastos
Mejores prácticas para el éxito de un sistema de información. Uno de los problemas de información dentro de las empresas es contar con datos
ANEXO VI. Mejores prácticas para el éxito de un sistema de información Uno de los problemas de información dentro de las empresas es contar con datos importantes del negocio y que éstos estén aislados
