Programación en LabVIEW para Ambientes Multinúcleo



Documentos relacionados
Act 1: Revisión de Presaberes. Lectura No. 1. Título de la Lectura: El Computador

Sugar en Windows. Creación de una máquina virtual con la imagen de Sugar. Autor. Versión Fecha Setiembre Ubicación


LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN

CAPÍTULO 1 Instrumentación Virtual

No se requiere que los discos sean del mismo tamaño ya que el objetivo es solamente adjuntar discos.

UNIVERSIDAD AUTÓNOMA DEL CARIBE PROCEDIMIENTO PARA ADMINISTRACIÓN DE INVENTARIO DE EQUIPOS DE CÓMPUTO GESTIÓN INFORMÁTICA

CAPÍTULO 3: Resultados

Introducción a LabVIEW FPGA y CompactRIO

Introducción a las redes de computadores

NTRODUCCION. "Tipos de Computadoras" Tipos de Computadoras

Capítulo 1 Introducción a la Computación

Desarrollo de un cluster computacional para la compilación de. algoritmos en paralelo en el Observatorio Astronómico.

Tema N 2.- Tiempo de respuesta de un PLC

COMO CONFIGURAR UNA MAQUINA VIRTUAL EN VIRTUALBOX PARA ELASTIX

Conceptos Básicos de Software. Clase III

Seleccione el Sistema Adecuado para su Aplicación de Mediciones

Abstracciones del computador y la Tecnología

UNIVERSIDAD DE ORIENTE FACULTAD DE ICIENCIAS ECONOMICAS LAS REDES I. Licda. Consuelo Eleticia Sandoval

Universidad de Guadalajara Tópicos Selectos.

TALLER DE CONOCIMIENTOS APRENDICES JORGE LEONARDO MAZA CARLOS DAVID ZAMBRANO JOSE G. RODRIGUEZ PROFESOR RONALD MARTELO

Tema 6. Gestión de la memoria

capacitación de consultores conocimientos SAP habilidades proyectos de consultoría. desarrol o profesional ///

Novedades de Adobe Dreamweaver CS5

INTRODUCCIÓN. Que es un sistema operativo? - Es un programa. - Funciona como intermediario entre el usuario y los programas y el hardware

TEMA 1: VISIÓN GENERAL DE LOS SISTEMAS OPERATIVOS

Profesor(a): Ing. Miriam Cerón Brito

Electrónica Digital II

PRESENTACIÓN TÉCNICA Y REQUISITOS DOCUMENTO EXTERNO

Guía de uso del Cloud Datacenter de acens

MANUAL TÉCNICO DE IMPLEMENTACIÓN PROYECTO SOCIAL COMPUESCUELA. Elaborado por: Julián A. Hernández M.

CLUSTER FING: ARQUITECTURA Y APLICACIONES

4. Programación Paralela

Soluciones innovadoras para optimizar su infraestructura TI. Virtualización con el sistema operativo i, PowerVM y Power Systems de IBM

El Camino Más Rápido hacia Su Éxito Seminarios de National Instruments. Aprendizaje Práctico Nuevas Tecnologías Expertos Técnicos

Soporte y mantenimiento de base de datos y aplicativos

Virtualización. El valor de la Virtualización de Servidores en la PYME

GESTIÓN ACADÉMICA GUÍA DIDÁCTICA HACIA LA EXCELENCIA COMPROMISO DE TODOS! Nombres y Apellidos del Estudiante:

Trabajo TP6 Sistemas Legados

picojava TM Características

Generalidades Computacionales

INTELIGENTE Y VERSÁTIL

Instalación de Microsoft Virtual PC

Tarea: Instala el programa a Tube Catcher. Posteriormente desinstálalo siguiendo el proceso explicado anteriormente.

Introducción a sistemas RAID INTRODUCCION: Que es RAID? Ventajas de los discos RAID:

Copia de seguridad. Copias de seguridad cuando el origen de la información está en nuestro QNAP principal (QNAP Origen)

MANUAL DEL USUARIO SIVIGILA D.C. MODULO DE ASISTENCIA TÉCNICA (USUARIO SOLICITANTE)

INFORME TÉCNICO ADQUISICIÓN DE LICENCIA DE SOFTWARE PARA VIRTUALIZACION

UNIDAD 6: TAREAS DE MANTENIMIENTO Y PROYECTOS ESPECIALES

Instituto Universitario Politécnico. Santiago Mariño. Unidad I Revisión de conceptos de Sistemas. Operativos. Elaborado por: Ing. Víctor Valencia.

Guía para la instalación de discos duro SATA y Configuración RAID

INGENIERÍA DE SOFTWARE. Sesión 3: Tipos

Una computadora de cualquier forma que se vea tiene dos tipos de componentes: El Hardware y el Software.

Procesos. Bibliografía. Threads y procesos. Definiciones

Procesador Intel Core 2 Extreme de 4 núcleos Traducción de Textos Curso 2007/2008

SCT Software para la calibración de transductores de fuerza. Versión 3.5. Microtest S.A.

Curso S08 para Cavernícolas

Maquinas virtuales Conceptos Básicos

CLOUD ENIAC BACKUP. Sus datos son importantes?

1. Generalidades. M. en C. Mario Farias-Elinos

ACTIVIDADES TEMA 1. EL LENGUAJE DE LOS ORDENADORES. 4º E.S.O- SOLUCIONES.

Sistemas Operativos Windows 2000

Instalación del sistema operativo Microsoft Windows Server 2008 Standard Edition x86

El soporte del sistema operativo. Hace que un computador sea más fácil de usar. Permite que los recursos del computador se aprovechen mejor.

"Diseño, construcción e implementación de modelos matemáticos para el control automatizado de inventarios

Unidad 1. Fundamentos en Gestión de Riesgos

Los software mas comunes para poder tener una maquina virtual son:

Arquitecturas de computadoras

En el presente capítulo se describe la programación del instrumento virtual y cómo

COMPUTADORES MULTINUCLEO. Stallings W. Computer Organization and Architecture 8ed

Symantec Desktop and Laptop Option

Almacenamiento virtual de sitios web HOSTS VIRTUALES

Actividad 2: Configurar e Instalar un Sistema Operativo virtual

Marco Teórico MARCO TEÓRICO. AGNI GERMÁN ANDRACA GUTIERREZ

Alessandro Chacón Ernesto Level Ricardo Santana

Lectura 2: El Sistema Operativo y sus Funciones

Descripción. Este Software cumple los siguientes hitos:

Aspectos Básicos de Networking. Sesión 12: Configuración y verificación de su red

Por más insignificante que sea lo que debes hacer, esmérate en hacerlo lo mejor que puedas, como si fuera la cosa más importante

RAID. Redundant Array of Independent Disks. Rafael Jurado Moreno Fuente: Wikipedia

COLEGIO COMPUESTUDIO

IT Performance Management. Resumen Ejecutivo. IT Performance Management

MANUAL DE INSTALACIÓN

Es el conjunto de programas y procedimientos ejecutados en un computador, necesarios para hacer posible la realización de una tarea específica.

Hostaliawhitepapers. Las ventajas de los Servidores dedicados. Cardenal Gardoki, BILBAO (Vizcaya) Teléfono:

PROCEDIMIENTO PARA LA REALIZACION DE COPIAS DE SEGURIDAD (BACKUP)

Proyecto de Digitalización del Archivo Histórico de las Compañias

El Computador. Software

Windows Server Windows Server 2003

Fedora Como Desktop. How to (tutorial)

Unidad 1: Conceptos generales de Sistemas Operativos.

INSTITUTO TECNOLÓGICO DE COLIMA LIC. EN INFORMÁTICA

Transcripción:

Programación en LabVIEW para Ambientes Multinúcleo

Agenda Introducción al Multithreading en LabVIEW Técnicas de Programación en Paralelo Consideraciones de Tiempo Real Recursos

Evolución de la Instrumentación Instrumentación tradicional

Evolución de la Instrumentación Nace la Instrumentación Virtual

Evolución en la Programación Tecnología Express Basada en texto Desarrollo gráfico

Ambiente de Desarrollo Gráfico

Impacto en Ingenieros e Investigadores Las aplicaciones de investigadores e ingenieros se encuentran típicamente en sistemas dedicados.

Creando Aplicaciones Multihilo Investigadores e ingenieros deben utilizar hilos (o threads) para beneficiarse de procesadores multinúcleo.

Multihilo Automático en LabVIEW LabVIEW divide automáticamente cada aplicación en varios hilos de ejecución LabVIEW introdujo multihilo en 1998

Multihilo Automático en LabVIEW LabVIEW divide automáticamente cada aplicación en varios hilos de ejecución LabVIEW introdujo multihilo en 1998 hilo hilo hilo

Demostración: Paralelismo Accidental en LabVIEW

Nuevas Funciones Multihilo en LabVIEW 8.5 Adaptabilidad del número de hilos de ejecución del sistema dependiendo de los núcleos disponibles Calendarización de hilos mejorada para ciclos temporizados de LabVIEW Asignar un procesador específico a estructuras temporizadas Funciones de tiempo real: Soporte para objetivos de tiempo real con multiprocesamiento simétrico Real Time Execution Trace Toolkit 2.0

Caso de Estudio Eaton Corporation Eaton desarrolló un sistema de pruebas en vehículo portátil para transmisiones automotrices utilizando LabVIEW. Adquisición y análisis de 16 canales con un núcleo utilizando el driver multihilo NI DAQmx Ahora adquieren y analizan más de 80 canales en multinúcleo No hubo necesidad de reescribir nuestra aplicación para las nuevas plataformas de procesamiento multinúcleo. Scott Sirrine Ingeniero Líder en Diseño Eaton División Camiones

Soporte en Software para Sistemas Multihilo Stack de Software Herramienta de Desarrollo Librerías Controladores de dispositivos Sistema Operativo Soporte proporcionado en el sistema operativo de elección; la herramienta facilita la creación de hilos y optimización Capacidad de trabajar en ambientes multihilo, librerías reentrantes Controladores diseñados para desempeño óptimo multihilo. Sistema operativo soporta multihilo y multitarea y puede balancear la carga de tareas Ejemplo: Naturaleza multihilo de LabVIEW y estructuras que proporcionan optimización Ejemplo: Librerías BLAS Ejemplo: Controlador NI DAQmx Ejemplo: Soporte para Windows, Mac OS, Linux OS, y sistemas operativos de tiempo real

Ejecutará Más Rápida mi Aplicación de LabVIEW en un Sistema Multinúcleo? Consideraciones Claves El código es secuencial o paralelo? Cómo son utilizados los recursos compartidos en la aplicación? Conclusiones La mejora en velocidad de ejecución depende de la aplicación Muchas aplicaciones requerirán modificaciones pequeñas para aprovechar al máximo el procesador multinúcleo

Código Secuencial contra Código Paralelo Ejemplo Secuencial LabVIEW ejecutara VIs en orden, uno después de otro. Resultado: Un sistema multinúcleo no mejorará la velocidad de procesamiento sobre un sistema de un solo núcleo porque no existe paralelismo en el código

Código Secuencial contra Código Paralelo Ejemplo Paralelo Debido a que el código tiene ramas paralelas, LabVIEW tratará de compilar el código para su ejecución paralela RESULTADO: El código puede aprovechar los beneficios de sistemas multinúcleo, por ejemplo las mediciones de espectro y filtrado se ejecutaran en paralelo

Potenciales Cuellos de Botella: Recursos Compartidos 1. Dependencia de Datos Ejemplo: Datos almacenados en variables globales que necesitan ser utilizadas por diferentes VIs serían un recursos compartido 2. Disco Duro Ejemplo: Las computadoras pueden leer o escribir a disco duro un elemento a la vez (la entrada/salida de archivo no se puede realizar en paralelo) 3. VIs no reentrantes

VIs No Reentrantes VIs que son no reentrantes no se pueden llamar simultáneamente; una llamada se ejecuta y el otro espera a que el primero termine antes de ejecutarse. Para hacer un VI reentrante, seleccionar File»VI Properties, seleccionar la categoría de Execution, y seleccionar Reentrant execution.

Técnicas de Programación Paralela para Mejorar el Desempeño en Sistemas Multinúcleo Paralelismo de Tareas Paralelismo de Datos Pipelining

Paralelismo de Datos Se pueden acelerar las operaciones intensivas en procesamiento sobre conjuntos grandes de datos en sistemas multinúcleo CPU Core Conjunto de Datos CPU Core CPU Core Resultado CPU Core

Paralelismo de Datos Se pueden acelerar las operaciones intensivas en procesamiento sobre conjuntos grandes de datos en sistemas multinúcleo Conjunto de Datos CPU Core CPU Core CPU Core Resultado Combinado CPU Core

Demostración de Paralelismo de Datos

Ejemplo de Aplicación: Control de Alta Velocidad Instituto Max Planck (Munich, Alemania) Control de plasma en fusión nuclear tokamak con LabVIEW en sistema de ocho núcleos utilizando la técnica de paralelismo de datos. con LabVIEW, obtuvimos un aumento en procesamiento de 20 veces mas con una máquina de ocho núcleos sobre una de un solo núcleo Louis Giannone Lead Project Researc Max Planck Institute

Estrategia de Pipelining Muchas aplicaciones involucran algoritmos multipasos secuenciales Aplicar pipelining puede aumentar el desempeño Adquirir Filtrar Analizar Guardar Adquirir Filtrar Analizar Guardar tiempo t 0 t 3 t 4 t 7

Estrategia de Pipelining Núcleo CPU Adquirir Núcleo CPU Filtrar Núcleo CPU Analizar Núcleo CPU Guardar t 0 t 1 t 2 t 3 tiempo

Estrategia de Pipelining Núcleo CPU Adquirir Adquirir Núcleo CPU Filtrar Filtrar Núcleo CPU Analizar Analizar Núcleo CPU Guardar Guardar t 0 t 1 t 2 t 3 tiempo

Estrategia de Pipelining Núcleo CPU Adquirir Adquirir Adquirir Núcleo CPU Filtrar Filtrar Filtrar Núcleo CPU Analizar Analizar Analizar Núcleo CPU Guardar Guardar Guardar t 0 t 1 t 2 t 3 tiempo

Pipelining en LabVIEW Secuencial Pipelined? Nota: Los búfers también se pueden utilizar para apilar datos entre diferentes ciclos o

Demostración de Pipelining

Consideraciones Claves para Pipelining Considerar el número de núcleos en el procesador para determinar el número de etapas de pipeline Asegurarse de balancear las etapas, porque la etapa más larga limitará el aumento de desempeño Ejemplo: Pipeline desbalanceado

Recomendaciones para Balancear Etapas de Pipeline Utilice técnicas de comparación de LabVIEW Realice comparaciones básicas estampas de tiempo y el VI Profiler.

Ejemplo de Aplicación: Pruebas de Comunicaciones AmFax Ltd. (Reino Unido) Crea sistema de pruebas inalámbricas para teléfonos de la nueva generación, utilizando la técnica de pipelining de LabVIEW Con LabVIEW y el controlador embebido de doble núcleo, hemos logrado un ahorro de tiempo de 5 veces mejor que antes Mark Jewell BDM Wireless AmFax Ltd.

Sistemas Determinísticos de Tiempo Real LabVIEW 8.5 permite multiprocesamiento simétrico para sistemas de tiempo real

Asignando Tareas a Núcleos en Específico En LabVIEW 8.5, los usuarios pueden asignar código a un núcleo del procesador en específico utilizando el ciclo temporizado de LabVIEW.

Afinidad de Procesador con el Ciclo Temporizado Recomendado para desarrollo de tiempo real Puede utilizarse en Windows bajo uso especial (ejemplo: optimización de cache)

Real Time Execution Trace Toolkit 2.0 Evaluación por 30 días Compatibilidad con LabVIEW 7.1 o superior Nuevas funciones en la Versión 2.0 Mejora en desempeño Ordenamiento de actividad Nuevas banderas de depuración Soporte multinúcleo

Ejemplo de Aplicación: Control en Tiempo Real Sistema de Túnel de Viento para Vuelos Seguros en el Centro de Investigación Ames de la NASA Resultados de la Comparación Se ejecuto en un controlador NI PXI 8106 RT El ciclo de tiempo critico fue reducido de 43% de carga en CPU a 30% de carga en CPU en un CPU del PXI 8106 RT Se dejo libre a un núcleo para procesamiento de tareas no críticas Fuente de Imagen http://windtunnels.arc.nasa.gov

Recursos www.ni.com/multicore