You are on page 1of 44

6 de Mayo Bogot, Colombia

ni.com/colombia
01 8000 513680 o (1) 482.4888
Tcnicas de Programacin para
Obtener el Mximo Provecho de
LabVIEW
Felipe Rincn
Field Sales Engineer
National Instruments Andean &Caribbean
Agenda
Tcnicas de Programacin Multincleo
Patrones de Diseo Avanzados
Programacin Orientada a Objetos
Herramientas para Aplicaciones a Gran Escala
Arquitecturas Paralelas Aumentan Desempeo
Procesadores rpidos Procesadores Multincleo
Clock Speed (kHz) Transistor Count

Procesador Intel QX6700 Quad


CPU Speed

Core
4 procesadores (pare de Core 2)
Velocidad de reloj2.66 GHz

1970 1975 1980 1985 1990 1995 2000 2005 2010


Creando Aplicaciones Multitarea

Aplicaciones deben hacer uso de las tareas para


beneficiarse de los procesadores multincleo.
Programas Multitarea en LabVIEW
Multitarea automtico
LabVIEW automticamente asigna tareas basado
en el paralelismo
La mayora de los programas existentes corrern
ms rpido en un sistema Multincleo sin
alteracin

Multitarea manual
Se limita la seccin de cdigo a ejecutarse como
una tarea
Tcnicas para Paralelismo

Paralelismo de Tareas y
Multitareas Automtico
Paralelismo de Datos
Pipelining y balanceo de etapas
Paralelismo Tareas

1) Buscar tareas que pueden correr en paralelo


2) La arquitectura del cdigo refleja el
paralelismo
Eliminar dependencias de datos
LabVIEW automticamente identifica cdigo
paralelo y puede separarlo en mltiples tareas!
Ejemplo: Paralelismo de Tareas
Operaciones Paralelas

Tarea

Tarea

Tarea
Paralelismo de Datos

1) Buscar un set de datos grande que pueda ser


procesado en dos o ms pedazos independientes

2) Arquitectura de cdigo:
Separar los datos
Procesar los datos en paralelos
Combinar los resultados individuales para
obtener un resultado general
Ejemplo: Paralelismo de Datos
Set de Datos

CPU Ncleo Procesamiento Seales Resultados


Ejemplo: Paralelismo Datos
Set de Datos

CPU Ncleo Procesamiento Seal

CPU Ncleo Procesamiento Seal Combinar


Resultados
CPU Ncleo Procesamiento Seal

CPU Ncleo Procesamiento Seal


Pipelining
Motivacin: Muchos programas contienen
secuencias, algoritmos de mltiples pasos
Aplicando pipelining se puede incrementar la
cantidad de datos procesados
2 4 2 4
Acquire Filter Analyze Log Acquire Filter Analyze Log
1 3 1 3

time
t0 t3 t4 t7
Estrategia Pipelining
CPU Core Acquire

CPU Core Filter

CPU Core Analyze

CPU Core Log

t0 t1 t2 t3 time
Estrategia Pipelining
CPU Core Acquire Acquire

CPU Core Filter Filter

CPU Core Analyze Analyze

CPU Core Log Log

t0 t1 t2 t3 time
Estrategia Pipelining
CPU Core Acquire Acquire Acquire Acquire

CPU Core Filter Filter Filter Filter

CPU Core Analyze Analyze Analyze Analyze

CPU Core Log Log Log Log

t0 t1 t2 t3 time
Pipelining en LabVIEW
Pipelining
Secuencial

Nota: otras tcnicas existen para pipelining como utilizar


mltiples ciclos con buffers, y utilizar nodos de
retroalimentacin
Balanceo de Etapas
La ruta crtica es la etapa ms larga
Pipelining con etapas desbalanceadas no
necesariamente da una mejora en desempeo
Sin Pipelining (tiempo total= 4s)

Etapa 1 (3s) Etapa 2 (1s)

Con Pipelining (tiempo total= 3s): aumento velocidad = 1.33X (no ideal para pipelining)

Etapa 1 (3s)

Etapa 2 (1s)
Qu Son los Patrones de Diseo?
Una platilla o arquitectura para cdigo de
LabVIEW
Ampliamente aceptado y bien conocido
Fcilmente reconocible
Herramientas Bsicas
Ciclos
Registros Corrimiento
Estructura Casos
Constantes Enum
Estructura Eventos
Variable Global Funcional
1. La Variable Global Funcional es un SubVI No-Reentrante
2. Se puede hacer acciones sobre los datos
3. La constante Enum selecciona la accin
4. Guarda el resultado en un registro de corrimiento sin
inicializar
5. El ciclo se ejecuta una sola vez
Mquina de Estados
Se tiene un caso por cada estado El cdigo de transicin determina el
siguiente caso segn los resultados

Primer Estado

Ejecucin de
Estado
Los registros de corrimiento
acarrean el estado

Cdigo de
Transicin
Primer Estado Siguiente Estado
Opciones de Cdigo de Transicin

Step
Execution

Step Execution

Step
Execution
Productor / Consumidor
Mquina Estados Buffer &
Productor/Consumidor con Eventos
1. Eventos son capturados por el
productor
2. Productor pone los datos en el
buffer
3. La mquina de estados en el
consumidor ejecuta las
acciones sobre los datos
4. SubVIs paralelos se comunican
usando referencias a los
buffers
Buffer
Maestro
Ciclo Productor
Basado en Eventos
Estado y Datos
Entran al Buffer
Mquina Estados
Consumidor
Buffers Adicionales
(Q1 y Q2)
Estados Producen
para los Buffers
Adicionales
SubVIs Consumen
datos de Q1 y Q2
Programacin Orientada a Objetos
Un enfoque para el desarrollo de aplicaciones
Apropiado para aplicaciones de gran escala con un
equipo de desarrolladores
Promueve reutilizar el cdigo
Reduce el mantenimiento de cdigo
Simplifica extender aplicaciones
Programacin Orientada a Objetos
Clase Padre
Clases y Objetos

Encapsulacin

Clase Hija
Herencia

Para desarrollo de aplicaciones a gran escala


Clases y Objetos
Los Objetos son actores en su aplicacin
Referencias a partes individuales de datos
La Clase define los datos y comportamiento de
los Objetos
Los objetos en su aplicacin son instancias de una
Clase
Creando Clases en LabVIEW
Crear una clase en el Proyecto
Especificar los datos con el .ctl
para la clase
Definir la clase en efecto define
un nuevo tipo de dato
Caractersticas adicionales
Especificar el cono de la clase
Especificar una plantilla de cono
de VI
Especificar el color del cable
Creando Mtodos para las Clases
Mtodos
Acciones o peticiones
Desempeadas por los objetos
Generalmente verbos
Crear un VI
Especificar alcance
Pblico
Privado
Protegido
Herencia
Define subclases
Crea una relacin de
perteneca
Ejemplo: Telfono con Cmara
es un Telfono Celular
Reutiliza funcionalidad comn
Especializacin
Extender o sobrescribir
funcionalidad para necesidades
especficas
Encapsulacin

Tratar cada objeto como una caja


negra
Interfaz bien definida de datos y
mtodos
Debe utilizar esta interfaz en la
aplicacin
Todos los datos son privados
Mtodos pueden ser pblicos,
privados o protegidos
Composicin de la Clase
Definir una clase crea un nuevo tipo de dato
Una clase puede estar hecha de otra clase
Aplicaciones de LabVIEW Usando Clases

Llaman mtodos y objetos


Reduce la rescritura de cdigo mediante la
herencia y envo dinmico
PREGUNTAS?

Felipe Rincn
Field Sales Engineer
National Instruments Andean & Caribbean

felipe.rincn@ni.com
01 800 010 0793
Academic Days 2011

You might also like