Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Agenda
Tcnicas de Programacin Multincleo Patrones de Diseo Avanzados Programacin Orientada a Objetos Herramientas para Aplicaciones a Gran Escala
Procesadores Multincleo
CPU Speed
1970
1975
1980
1985
1990
1995
2000
2005
2010
Aplicaciones deben hacer uso de las tareas para beneficiarse de los procesadores multincleo.
Multitarea manual
Se limita la seccin de cdigo a ejecutarse como una tarea
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!
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
CPU Ncleo
Procesamiento Seales
Resultados
CPU Ncleo
Combinar Resultados
CPU Ncleo
CPU Ncleo
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
1
Filter
Analyze
3
Log
Acquire
1
Filter
Analyze
3
Log
time t0 t3 t4 t7
Estrategia Pipelining
CPU Core
Acquire
CPU Core
Filter
CPU Core
Analyze
CPU Core t0 t1 t2 t3
Log
time
Estrategia Pipelining
CPU Core
Acquire Acquire
CPU Core
Filter
Filter
CPU Core
Analyze
Analyze
CPU Core t0 t1 t2 t3
Log
Log
time
Estrategia Pipelining
CPU Core
Acquire Acquire Acquire Acquire
CPU Core
Filter
Filter
Filter
Filter
CPU Core
Analyze
Analyze
Analyze
Analyze
CPU Core t0 t1 t2 t3
Log
Log
Log
Log
time
Pipelining en LabVIEW
Secuencial Pipelining
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)
Herramientas Bsicas
Ciclos Registros Corrimiento Estructura Casos Constantes Enum Estructura Eventos
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
Step Execution
Step Execution
Productor / Consumidor
Buffer Maestro
Punto clave un Daemon debe mantener una referencia abierta a s mismo para evitar que sea purgado
Proxy Estndar
Launcher Estndar
Clase Hija
Herencia
Clases y Objetos
Los Objetos son actores en su aplicacin
Referencias a partes individuales de datos
Caractersticas adicionales
Especificar el cono de la clase Especificar una plantilla de cono de VI Especificar el color del cable
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
Depurado y Pruebas
Complejidad Aplicacin
Avanzado
Validacin Funcional
Anlisis Dinmico
Simple
VI Analyzer Toolkit
Anlisis Esttico
Bajo Riesgo
Aplicacin Crtica
Alto Riesgo
Valores Entrada
Salida
VI Bajo Prueba
Resultados Esperados
Preguntas?