Leistungs- und Geschwindigkeitssteigerung. Dipl.-Ing. Sebastian F. Kleinau Applikationsingenieur

Ähnliche Dokumente
Visual Basic Express Debugging

Internet Explorer Version 6

Preisvergleich ProfitBricks - Amazon Web Services M3 Instanz

Grundlagen von Python

LabView7Express Gerätesteuerung über LAN in einer Client-Serverkonfiguration. 1. Steuerung eines VI über LAN

LabVIEW Power Programming. Amadeo Vergés

R002: CAP-Oberfläche statt VARIANTS im inforcom R7.1

Update und Konfiguraton mit dem ANTLOG Konfigurations-Assistenten

iphone-kontakte zu Exchange übertragen

Computeria Solothurn

Tipps und Tricks rund um LabVIEW. Tobias Daub Applications Engineer National Instruments Germany

Benutzerhandbuch MedHQ-App

Kleines Handbuch zur Fotogalerie der Pixel AG

PowerWeiss Synchronisation

Anleitung auf SEITE 2

«Integration in WebSite» HTML-/Javascript-Code-Beispiele

Installation der Konfigurationsdateien für alle Windows-Versionen bis einschließlich Microsoft Windows 7

2. Installation unter Windows 8.1 mit Internetexplorer 11.0

Dieses Dokument soll dem Administrator helfen, die ENiQ-Software als Client auf dem Zielrechner zu installieren und zu konfigurieren.

Lokale Installation von DotNetNuke 4 ohne IIS

Übergreifend projektieren in einem Steuerungsprojekt: CODESYS Visualization

Tutorial Windows XP SP2 verteilen

Qt-Projekte mit Visual Studio 2005

Kommunikations-Management

Java Entwicklung für Embedded Devices Best & Worst Practices!

Bilder zum Upload verkleinern

GE Capital Equipment Financing. GE Capital Leasing-Tool Schulungsunterlagen

Ihr CMS für die eigene Facebook Page - 1

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Einführung in PHP. (mit Aufgaben)

Online-Prüfungs-ABC. ABC Vertriebsberatung GmbH Bahnhofstraße Neckargemünd

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

Hilfe zur Verwendung digitaler Formulare

disk2vhd Wie sichere ich meine Daten von Windows XP? Vorwort 1 Sichern der Festplatte 2

Tipps und Tricks zu Netop Vision und Vision Pro

Shellfire PPTP Setup Windows 7

Verbinden von Workflows und fachlichen Prozessmodellen im Rahmen eines SharePoint Prozessportals Semtation GmbH (Henrik Strauß)

Einführung in die Programmierung Laborübung bei Korcan Y. Kirkici. 12.Übung bis

Intel Cluster Studio. Michael Burger FG Scientific Computing TU Darmstadt

Sie finden im Folgenden drei Anleitungen, wie Sie sich mit dem Server der Schule verbinden können:

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Oracle APEX Installer

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

4D Server v12 64-bit Version BETA VERSION

MATLAB-Automatisierung von Dymola- Simulationen und Ergebnisauswertung Holger Dittus. Modelica User Group BaWü, Stuttgart,

MPDS4 EXAMPLE DATENBANK

Tess TeSign nutzen mit App's"! iphone und Bria Informationen zur Nutzung

Titel. SCSM ITIL - CMDB - neue CI Klasse erstellen und benutzen. Eine beispielhafte Installationsanleitung zur Verwendung im Testlab

Internet online Update (Internet Explorer)

Vergleich: Positionen der Word 2003-Befehle in Word

UserManual. Konfiguration SWYX PBX zur SIP Trunk Anbindung. Version: 1.0, November 2013

DIE ZUKUNFT BEGINNT JETZT: ELEKTRONISCHE UNTERSCHRIFT

teischl.com Software Design & Services e.u. office@teischl.com

KURZANLEITUNG CYBERDUCK MIT CLOUD OBJECT STORAGE

Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch

Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.

Zählen von Objekten einer bestimmten Klasse

Installation und Inbetriebnahme von Microsoft Visual C Express

TREND SEARCH VISUALISIERUNG. von Ricardo Gantschew btk Berlin Dozent / Till Nagel

AUTOMATISCHE -ARCHIVIERUNG. 10/07/28 BMD Systemhaus GmbH, Steyr Vervielfältigung bedarf der ausdrücklichen Genehmigung durch BMD!

Anleitung zum erstellen einer PDF-Datei aus Microsoft Word

Select & Preprocessing Cluster. SPP Server #1. SPP Server #2. Cluster InterConnection. SPP Server #n

FileMaker Konferenz 2011 Hamburg Speed. Performance Optimierung für Ihre Lösung / Entwickler

Erstellen eines Screenshot

5 DATEN Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu

Persönliches Adressbuch

Tutorials für ACDSee 12: Hochladen von Fotos auf Ihren Account bei ACDSeeOnline.com

Technische Alternative elektronische Steuerungsgerätegesellschaft mbh. A-3872 Amaliendorf, Langestr. 124 Tel +43 (0)

Schrittweise Anleitung zur Erstellung einer Angebotseite 1. In Ihrem Dashboard klicken Sie auf Neu anlegen, um eine neue Seite zu erstellen.

ACDSee 2009 Tutorials: Rote-Augen-Korrektur

ACDSee Pro 2. ACDSee Pro 2 Tutorials: Übertragung von Fotos (+ Datenbank) auf einen anderen Computer. Über Metadaten und die Datenbank

1 Was ist das Mediencenter?

BI in der Cloud eine valide Alternative Überblick zum Leistungsspektrum und erste Erfahrungen

Psyprax GmbH. Netzwerk Installation unter XP. Wichtig für alle Netzwerkinstallationen: Psyprax GmbH

Arbeiten mit dem Outlook Add-In

Kostenstellen verwalten. Tipps & Tricks

Individuelle Formulare

LVM und ZFS reloaded

Idimager ein Bildverwaltungsprogramm-DAM Software

Daten in EPUB visualisieren und dynamisch aktualisieren

Trackaufzeichnungen können als Active-Logs oder mit eigenen Namen versehene und auf max. 500 Punkte begrenzte Saved-Tracks gespeichert werden.

Dieser Ablauf soll eine Hilfe für die tägliche Arbeit mit der SMS Bestätigung im Millennium darstellen.

OpenGL. (Open Graphic Library)

Deskline 3.0. Vermieterinfo ChannelGateway

Über den Link erreichen Sie unsere Einstiegsseite:

Mediumwechsel - VR-NetWorld Software

OERA OpenEdge Reference Architecture. Mike Fechner PUG Infotag 19. Mai 05 Frankfurt

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

IBM Software Demos Tivoli Provisioning Manager for OS Deployment

Datenübernahme aus Profi-Cash

Programmierung für Mathematik (HS13)

Keine Disketteneinreichung ab 1. Februar 2014

Windows 7: Neue Funktionen im praktischen Einsatz - Die neue Taskleiste nutzen

Simulink - Modelle grafisch vergleichen

Informatik-Sommercamp Mastermind mit dem Android SDK

tentoinfinity Apps 1.0 EINFÜHRUNG

Installation von NetBeans inkl. Glassfish Anwendungs-Server

Ihre Outlook-Konfiguration ist fehlgeschlagen und es funktioniert nichts mehr? Dann bitte hier weiter!

Transkript:

Leistungs- und Geschwindigkeitssteigerung von LabVIEW-Projekten Dipl.-Ing. Sebastian F. Kleinau Applikationsingenieur

Agenda 1. Einführung 2. Hilfreiche Werkzeuge zur Codeanalyse 3. Benchmarks für LabVIEW-VIs 4. Speichermanagement in LabVIEW 5. Die Ausführung von VIs und ihre Tücken 6. R&D-Expertenwissen

1. Einführung Werkzeuge zur Code-Analyse Erkennen des Optimierungsbedarfs Optimierung des Speicherverbrauchs Optimierung der Geschwindigkeit

1.1 Erkennen des Optimierungsbedarfs Applikation ist träge Gewünschte Iterationsfrequenzen werden nicht erreicht Speicherbedarf nimmt kontinuierlich zu Hardware-Datenpuffer laufen über (AI/DI) bzw. leer (AO/DO)

1.2 Wahl eines performanten Algorithmus Speicher- und Laufzeitoptimierung kann die Verwendung eines effizienten Algorithmus nicht ersetzen! Beispiel: Kreuzworträtsellöser _ L R I _ NI LabVIEW Virtual User Group: Tips and Tricks to Increase LabVIEW Performance and Speed http://zone.ni.com/wv/app/doc/p/id/wv-1814

Demo Demo Demo Demo Demo Demo Demo Demo Demo Demo Demo Demo Demo Demo Demo Demo Demo Demo 1.2 Wahl eines performanten Algorithmus Vergleiche mehrerer Code-Varianten

1.3 Identifizierung der Engpässe Die 80/20-Regel der Softwareoptimierung 80 % der Ausführungszeit wird in 20 % des Codes verbraucht Optimierung auf die Engpässe konzentrieren Speicher- und Zeit-Profiling zur Erkennung der relevanten VIs

1.3 Identifizierung der Engpässe VI-Profiling durch in LabVIEW integriertes Werkzeug LabVIEW-Hilfe» Grundlagen» Leistungs- und Speichermanagement» Allgemeines» Verwendung des Fensters Profil Leistung und Speicher

2. Hilfreiche Werkzeuge zur Codeanalyse VI Analyzer Toolkit Parallelisierbare FOR-Schleifen suchen

2.1 VI Analyzer Toolkit Automatisierte Codeanalyse Zeigt z. B. fehlendes Timing oder unkluge Verwendung von String- und Arrayfunktionen an LabVIEW VI Analyzer Toolkit Overview, http://zone.ni.com/devzone/cda/tut/p/id/3588

Demo Demo Demo Demo Demo Demo Demo Demo Demo Demo Demo Demo Demo Demo Demo Demo Demo Demo 2.1 VI Analyzer Toolkit Automatische Codeanalyse

2.2 Parallel ausführbare Schleifen suchen Compiler LV2010 hier stark optimiert Ermöglicht bei geeignetem Code die Parallelisierung von FOR-Schleifen Leistungsvermögen mit parallelen For-Schleifen verbessern, http://zone.ni.com/devzone/cda/tut/p/id/10215

3. Benchmarks für LabVIEW-VIs Einfaches Test-Framework Desktop Execution Trace Toolkit Real-Time Execution Trace Toolkit

3.1 Einfaches Test-Framework Standardarchitektur zur Untersuchung des Zeitverhaltens Genauigkeit wird durch hohe Iterationszahlen verbessert

Demo Demo Demo Demo Demo Demo Demo Demo Demo Demo Demo Demo Demo Demo Demo Demo Demo Demo 3.1 Einfaches Test-Framework Verwenden von VI-Templates Vergleich zweier Codebeispiele

3.2 Desktop Execution Trace Toolkit Protokolliert zur Laufzeit eines VIs Ereignisse wie z. B. Speicherallokationen, SubVI-Aufrufe, Referenzlecks Advanced LabVIEW Debugging: Profiling VI Execution with the Desktop Execution Trace Toolkit http://zone.ni.com/devzone/cda/tut/p/id/8083

Demo Demo Demo Demo Demo Demo Demo Demo Demo Demo Demo Demo Demo Demo Demo Demo Demo Demo 3.2 Desktop Execution Trace Toolkit Beispiel aus der LabVIEW-Beispielsuche: Desktop Execution Trace Toolkit.lvproj

3.3 Real-Time Execution Trace Toolkit Grafische Darstellung von Laufzeit und Speicherallokierung Debug and Optimize Performance with the Real-Time Execution Trace Toolkit http://zone.ni.com/devzone/cda/pub/p/id/221

4. Speichermanagement in LabVIEW Typische Fehler Anzeige von Speicherallokationen im Blockdiagramm In-Place-Struktur und weitere Überlegungen

4.1 Typische Fehler Kontinuierliche Neuallokierung von Speicher

4.1 Typische Fehler Mehrfache automatische Typenumwandlung (Coercion)

4.2 Anzeige von Speicherallokationen Häufig unnötige Datenkopien durch Verzweigung Visualisierung durch entsprechendes Werkzeug Managing Large Data Sets in LabVIEW http://zone.ni.com/devzone/cda/tut/p/id/3625

4.3 In-Place-Struktur und weitere Überlegungen Große, zusammengesetzte Datentypen erhöhen die Übersicht Datenextraktion benötigt aber zusätzlichen Speicher In-Place-Struktur kann hier Abhilfe schaffen Getrennte Datenstrukturen sind oftmals leistungsfähiger Zentrale Vorhaltung der Daten z. B. durch mehrere FGVs Manage Memory in LabVIEW Using a New Block Diagram Structure http://zone.ni.com/devzone/cda/tut/p/id/6211

Demo Demo Demo Demo Demo Demo Demo Demo Demo Demo Demo Demo Demo Demo Demo Demo Demo Demo 4.3 Array vs. diskrete Speicherung Demonstration des Array-Verwaltungsoverheads

5. Die Ausführung von VIs und ihre Tücken Übertragungsgeschwindigkeiten verschiedener Mechanismen Lokale und globale Variablen Funktionale globale Variablen (FGVs) Queues Nicht immer ist der schnellstmögliche Weg, Daten auszutauschen, auch der sicherste Race Conditions! Tutorial: Local Variable, Global Variable, and Race Conditions http://zone.ni.com/devzone/cda/tut/p/id/7585

5. Die Ausführung von VIs und ihre Tücken Minimierung des Speicherverbrauchs und Maximierung der Geschwindigkeit schließen sich häufig gegenseitig aus. Ablaufinvariante * SubVIs werden mehrfach parallel instanziiert Parallele Aufrufe des SubVIs behindern sich so nicht gegenseitig Dafür zusätzliche Instanzen des VI-Datenbereichs im Speicher Dynamischer Aufruf von SubVIs Weniger Speicherverbrauch, wenn SubVIs nur bei Bedarf geladen werden Festplattenzugriff beim Laden notwendig * engl.: reentrant Trainingskurs LabVIEW Performance Guide (deutsch): http://sine.ni.com/nips/cds/view/p/lang/de/nid/207399

5. Die Ausführung von VIs und ihre Tücken Neues Feature in LabVIEW 2010: SubVI-Inlining Injiziert SubVI-Code beim Kompilieren direkt in das aufrufende VI kein Overhead durch SubVI-Aufrufe mehr dafür zusätzlicher Speicherbedarf, Executables werden etwas größer Einschränkungen: Sinnvoll nur für ausführungsinvariante VIs (keine FGVs!) Kein Debugging und keine automat. Fehlerbehandlung Kann Codelesbarkeit deutlich verbessern LabVIEW 2010 Help» Fundamentals» Managing Performance and Memory» Concepts» VI Execution Speed

Demo Demo Demo Demo Demo Demo Demo Demo Demo Demo Demo Demo Demo Demo Demo Demo Demo Demo 5. Die Ausführung von VIs und ihre Tücken Vergleich und Optimierung eines SubVI-Aufrufs in Schleifen

6. R&D-Expertenwissen Datenspeicherung in Variant-Attributen Data References Datenverarbeitung auf der Grafikkarte

6.1 Datenspeicherung in Variant-Attributen Sehr schneller Weg, verschiedenste Datentypen über eine Leitung zu übertragen Verwendung z. B. bei Handler-Queues aus einem Cluster mit Kommando-Enum und einen Variant als Datencontainer

6.2 Datenreferenzen? Seit LabVIEW 2009 verfügbar Datenreferenzen können an SubVIs übergeben werden Datenbearbeitung mit InPlace-Strukturen möglich Fragmented Array Library v1.1.1, http://decibel.ni.com/content/docs/doc-9321

6.3 Datenverarbeitung auf der Grafikkarte Recheneinheiten der Grafikkarte können zur Leistungssteigerung bei komplexen Berechnungen in LabVIEW eingebunden werden Verwendet die NVIDIA CUDA -Schnittstelle LabVIEW GPU Computing http://decibel.ni.com/content/docs/doc-6064

Weiterführende Informationen: Technischer Support und Trainingskurse: +49 89 7413130 (D) +43 662 45799-0 (A) +41 56 2005151 (CH) http://ni.com/training/d Weitere Informationen zu diesem Thema: Trainingskurs LabVIEW Performance Guide (deutsch): http://sine.ni.com/nips/cds/view/p/lang/de/nid/207399 Darren s Nuggets: http://decibel.ni.com/content/docs/doc-4002 NI LabVIEW Virtual User Group: Tips and Tricks to Increase LabVIEW Performance and Speed: http://zone.ni.com/wv/app/ doc/p/id/wv-1814

Weiterführende Informationen: Linksammlung NI LabVIEW Virtual User Group: Tips and Tricks to Increase LabVIEW Performance and Speed: http://zone.ni.com/wv/app/doc/p/id/wv-1814 LabVIEW-Hilfe» Grundlagen» Leistungs- und Speichermanagement» Allgemeines» Verwendung des Fensters Profil Leistung und Speicher LabVIEW VI Analyzer Toolkit Overview: http://zone.ni.com/devzone/cda/tut/p/id/3588 Leistungsvermögen mit parallelen For-Schleifen verbessern: http://zone.ni.com/devzone/cda/tut/p/id/10215 Advanced LabVIEW Debugging: Profiling VI Execution with the Desktop Execution Trace Toolkit: http://zone.ni.com/devzone/cda/tut/p/id/8083 Debug and Optimize Performance with the Real-Time Execution Trace Toolkit: http://zone.ni.com/devzone/cda/pub/p/id/221 Managing Large Data Sets in LabVIEW: http://zone.ni.com/devzone/cda/tut/p/id/3625 Manage Memory in LabVIEW Using a New Block Diagram Structure: http://zone.ni.com/devzone/cda/tut/p/id/6211 LabVIEW 2010 Help» Fundamentals» Managing Performance and Memory» Concepts» VI Execution Speed Tutorial: Local Variable, Global Variable, and Race Conditions: http://zone.ni.com/devzone/cda/tut/p/id/7585 Fragmented Array Library v1.1.1: http://decibel.ni.com/content/docs/doc-9321 LabVIEW GPU Computing: http://decibel.ni.com/content/docs/doc-6064