Comment améliorer les performances de vos applications LabVIEW



Documents pareils
Journée Développeurs LabVIEW

Quoi de neuf en contrôle/commande et systèmes embarqués (RIO, WSN...)?

11 Février 2014 Paris nidays.fr. ni.com

Notes de mise à jour. 4D v11 SQL Release 3 (11.3) Notes de mise à jour

Comment créer des rapports de test professionnels sous LabVIEW? NIDays 2002

SQL Server Installation Center et SQL Server Management Studio

Livre blanc Mesure des performances sous Windows Embedded Standard 7

Quoi de neuf en LabVIEW FPGA 2010?

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

Informatique industrielle A Systèmes temps-réel J.F.Peyre. Partie I : Introduction

Enseignant: Lamouchi Bassem Cours : Système à large échelle et Cloud Computing

Guide de prise en main Symantec Protection Center 2.1

Atelier Le gestionnaire de fichier

FORMATION WS1205 INSTALLATION ET GESTION DE L'ENVIRONNEMENT APPLICATIF DES POSTES DE TRAVAIL AVEC WINDOWS SERVER 2012

Table des matières. Chapitre 1 Les architectures TSE en entreprise

Windows serveur 2008 installer hyperv

Formations Techniques : Infrastructures Janvier - Mars 2009

Programme des formations Gamme automates

CH.3 SYSTÈMES D'EXPLOITATION

Vérifier la qualité de vos applications logicielle de manière continue

Créer et partager des fichiers

1. Aménagements technologiques 2. Installation de Microsoft SQL Server Microsoft SQL Server 2008 Service Pack 3

10 tâches d administration simplifiées grâce à Windows Server 2008 R2. 1. Migration des systèmes virtuels sans interruption de service

ACQUISITION ANALYSE PRÉSENTATION

Notes de mise à jour LabVIEW

JetClouding Installation

Armelin ASIMANE. Services RDS. de Windows Server 2012 R2. Remote Desktop Services : Installation et administration

11 Février 2014 Paris nidays.fr. france.ni.com

Développement d applications Internet et réseaux avec LabVIEW. Alexandre STANURSKI National Instruments France

Manuel d'utilisation

LOGICIEL DE GESTION D ENTREPOT

WEB15 IBM Software for Business Process Management. un offre complète et modulaire. Alain DARMON consultant avant-vente BPM

Laplink PCmover Express La façon la plus facile de transférer vers un nouveau PC Windows

G. Méthodes de déploiement alternatives

26 Centre de Sécurité et de

Introduction CONTENU EN LIGNE

HP Data Protector Express Software - Tutoriel 3. Réalisation de votre première sauvegarde et restauration de disque

Installation 4D. Configuration requise Installation et activation

Oracle 11g Optimisez vos bases de données en production (ressources matérielles, stockage, mémoire, requêtes)

Services RDS de Windows Server 2012 R2 Remote Desktop Services : Installation et administration

Organiser le disque dur Dossiers Fichiers

VERITAS Backup Exec TM 10.0 for Windows Servers

Virtualisation. du poste de travail Windows 7 et 8. avec Windows Server 2012

Bienvenue sur Lab-Windows Il n'y a de vents favorables que pour ceux qui ont un cap

INSTALLATION ET CONFIGURATION DE HYPER V3

1. Introduction Avantages, fonctionnalités, limitations et configuration requise Avantages... 2

Speexx Basic Anglais, Français, Allemand, Italien, Espagnol,

Etude d Algorithmes Parallèles de Data Mining

1 Mesure de la performance d un système temps réel : la gigue

Optimisez vos environnements Virtualisez assurément

WINDOWS SHAREPOINT SERVICES 2007

Administration Centrale : Opérations

Comment utiliser FileMaker Pro avec Microsoft Office

MEC Introduction à LabVIEW

Article 2 : Conseils et meilleures pratiques pour gérer un cloud privé

Hyper-V Virtualisation de serveurs avec Windows Server 2008 R2 - Préparation à l'examen MCTS

TRAAM STI Acquisition et exploitations pédagogiques des données sur un système pédagogique

Guide Utilisateur Easy Share

PACKZ System Requirements. Version: Version: Copyright 2015, PACKZ Software GmbH. 1

CARTE INTERFACE PCI PARALLÈLE

Infrastructure RDS 2012

Initiation à LabView : Les exemples d applications :

Le Ro le Hyper V Troisie me Partie Haute disponibilite des machines virtuelles

Journée CUME 29 Mars Le déport d affichage. Vincent Gil-Luna Roland Mergoil.

Console de supervision en temps réel du réseau de capteurs sans fil Beanair

Introduction. Instructions relatives à la création d ateliers de test. Préparer l ordinateur Windows Server 2003

KASPERSKY SECURITY FOR BUSINESS

Tutoriel LabVIEW Des fonctions simples à l acquisition de données

À qui s adresse cet ouvrage?

Manuel de System Monitor

FORMATION CXA01 CITRIX XENAPP & WINDOWS REMOTE DESKTOP SERVICES

Support de TD ArcGIS Introduction à l automatisation et au développement avec ArcGIS 10.1 JEAN-MARC GILLIOT e année ingénieur

Introduction à MATLAB R

Module : Virtualisation à l aide du rôle Hyper-V

Optimisation des performances

Surveiller et contrôler vos applications à travers le Web

INTERSYSTEMS CACHÉ COMME ALTERNATIVE AUX BASES DE DONNÉES RÉSIDENTES EN MÉMOIRE

Stage Ingénieur en développement logiciel/modélisation 3D

Leçon 1 : Les principaux composants d un ordinateur

11 Février 2014 Paris nidays.fr

//////////////////////////////////////////////////////////////////// Administration bases de données

TechSoftware Présentations

Les bons réflexes : le bureau et la zone de notification : Les programmes qui s activent au démarrage ; Enlever / supprimer un programme ;

MySQL. (Administrateur) (Dernière édition) Programme de formation. France, Belgique, Suisse, Roumanie - Canada

Les classes de service pour les projets scientifiques

INDUSTRIALISATION ET RATIONALISATION

Cours 420-KEG-LG, Gestion de réseaux et support technique. Laboratoire 08. D. Création d usagers et de groupes pour la configuration des droits NTFS

Symantec Backup Exec 2012

SQL2005, la migration Atelier 316

MEGA Web Front-End Installation Guide MEGA HOPEX V1R1 FR. Révisé le : 5 novembre 2013 Créé le : 31 octobre Auteur : Noé LAVALLEE

Les journées SQL Server 2013

Tutorial Terminal Server sous

PC Check & Tuning 2010 Optimisez et accélérez rapidement et simplement les performances de votre PC!

pour Windows Manuel de l agent pour Microsoft SQL Server r11.1 C F

L informatique en BCPST

Installation et Administration de SolidWorks Electrical CadWare Systems

AFTEC SIO 2. Christophe BOUTHIER Page 1

& collaborative workspace. the new multitouch CONNECT & SHARE COLLABORATE BETTER & DECIDE FASTER CREATE & INNOVATE SAVE & TAKE THE DATA WITH YOU

Transcription:

Comment améliorer les performances de vos applications LabVIEW Antoine PALLADINI Responsable de Projets ARCALE france.ni.com

ARCALE propose des prestations dans les domaines du test et mesure et de l embarqué Concevoir Développer Maintenir

Historique et évolutions Fondée en 2002 par trois ingénieurs de National Instruments PARIS Trois agences Trois équipes 3000 2500 CA (K ) Évolution du CA TOULOUSE GRENOBLE 2000 1500 1000 500 0 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012

Secteurs d activités - Références Industrie Aéronautique Défense Transport / Energie R&D Autre

Savoir-faire

Atouts

Formation Formation spécifique Formation à la maintenance des applications développées ARCALE Toulouse est centre de formation NI

Améliorer les performances en LabVIEW Le but de l optimisation Les outils Optimisation mémoire Optimisation de l exécution

Le cycle d optimisation Optimiser Améliorer l efficacité Améliorer la vitesse Benchmark Évaluer les performances Identifier les zones à problème

Pourquoi doit-on profiler son code La règle du 80/20 des performances logicielles 80 % du temps d exécution a lieu dans 20 % du code L amélioration des performances est plus efficace dans les 20 % Difficulté : trouver de quels 20% il s agit!

Améliorer les performances en LabVIEW Le but de l optimisation Les outils Optimisation mémoire Optimisation de l exécution

Gestionnaire de tâches Windows Permet à l'utilisateur de savoir si c'est la mémoire ou l'utilisation de la CPU qui pose problème Peut servir à identifier des fuites mémoire Afficher» Sélectionner les colonnes vous permet d'ajouter des statistiques supplémentaires

Performance monitor Vous permet de contrôler les processeurs les E/S sur disque les accès réseau la mémoire/paging Accéder en tapant perfmon dans la boîte de dialogue Exécuter de Windows

Benchmarking d exécution de code Timing Template (data dep) exemple fourni avec LabVIEW

Benchmarking d exécution de code Code Analyse Calibrage Benchmark Project exemple fourni avec LabVIEW Real-Time

Afficher les allocations de buffer Mise en évidence des allocations mémoire Outils»Profil»Afficher les allocations de buffer

VI Profiler Statistiques d utilisation de la mémoire et temps d exécution des VIs Outils»Profil»Performances et mémoire...

Toolkit LabVIEW Desktop Execution Trace Traces d exécutions détaillées Informations sur les threads et VIs Mesure du temps d exécution Plusieurs sessions VIs Threads, CPU et mémoire

Toolkit Real-Time Execution Trace Traces d exécutions détaillées Informations sur les threads et VIs Mesure du temps d exécution Multiple sessions Threads Usage CPU VIs

Résumé sur le benchmarking Au niveau du système d exploitation Task Manager, Perfmon Au niveau LabVIEW Allocation mémoire, VI Profiler, VIs de benchmark Au niveau des VIs Toolkit LabVIEW Desktop Execution Trace

Améliorer les performances en LabVIEW Le but de l optimisation Les outils Optimisation mémoire Optimisation de l exécution

Performances mémoire Les fonctionnalités suivantes affectent l impact de l allocation mémoire sur votre application : sémantique des fils, structure «Élément en place» adapter les types de données coercition de type allocation des tableaux

Sémantique des fils Chaque fil est un buffer Les branches créent des copies

Utilisation de la structure Élément en place Vous permet de modifier de façon explicite les données en place

Types de nœud en bordure Indexer/remplacer un élément d un tableau Diviser/remplacer des sous-tableaux Désassembler/assembler des éléments Désassembler/assembler les éléments d une Waveform Variant vers/à partir d un élément Entrée/sortie en place sur un élément Lire/écrire une référence de valeur de donnée

Exemple d'optimisation Fonctionne sur chaque élément d'un tableau de formes d'ondes

Adapter les types de données Afin d optimiser les allocations mémoire, utiliser les types de données les mieux adaptés : organiser vos données en tableau ou Cluster utiliser des singles plutôt que des doubles si possible

Coercition de type Changer le type des données pour obtenir le type de données souhaité Les points indiquent automatiquement une coercition Nécessite une copie Point de coercition

Construire des tableaux Il existe plusieurs façons d'allouer des tableaux Certaines sont plus efficaces que d autres! Réalloue la mémoire à chaque itération de boucle

Construire des tableaux Il existe plusieurs façons d'allouer des tableaux Certaines sont plus efficaces que d autres! Pré-allocation de la mémoire Pas de réallocation en cours d exécution

Construire des tableaux Il existe plusieurs façons d'allouer des tableaux Certaines sont plus efficaces que d autres! La mémoire est pré-allouée Simplicité et efficacité garanties!

L ordre de construction des tableaux Ajouter à la fin d un tableau est bien plus efficace que d ajouter au début Si vous devez ajouter des éléments au début d un tableau, ajoutez-les à la fin, et utilisez une seule fois la fonction «inverser un tableau» lorsque c est terminé

Démo Les effets de l optimisation mémoire

Améliorer les performances en LabVIEW Le but de l optimisation Les outils Optimisation mémoire Optimisation de l exécution

Optimisation de l exécution Les axes d amélioration : le Multicore ; Le Multithread LabVIEW Multithread les communications entre threads (Piles Vs Événements) gestion des IHM

Le multicœur Système Monocœur Système Multicœur

LabVIEW multithread Application LabVIEW Multithread Concrètement

Profiter du multicœur en LabVIEW Boucle For parallèle Nouveauté LabVIEW 2009 Pipelining

Profiter du multicœur en LabVIEW La boucle cadencée

Communications entre boucle Les piles Les événements Notifier Rapidité Information sur l état de la pile FIFO ou LIFO Flush Nécessite une structure événement Mettre à jour une IHM Perte possible de données Pile à un seul élément

Communication entre boucle Les files d attente Exemple d une architecture associant la performance du multithread, des piles, du pipelining

Éviter le code inutile dans les boucles Ne placez que le code qui doit être répété dans les boucles L ouverture/fermeture des références doit se faire à l extérieur des boucles

Utiliser des primitives Les primitives sont plus efficaces que les opérations en chaîne Est moins efficace que :

Mise à jour de l IHM Parmi les points les moins considérés Pas si évident De la même manière que pour la gestion mémoire, LabVIEW essaie d optimiser l affichage de l IHM, mais il ne peut pas réaliser de miracles

Le thread de l IHM Les mises à jour de la face-avant ont lieu dans le thread de l IHM L exécution a lieu dans d autres threads Les données partagées doivent être protégées LabVIEW crée une copie supplémentaire appelée «buffer de transfert» Thread Thread Thread UI Loop Exec Exec

Certaines opérations nécessitent le thread de l IHM Les références aux commandes de la face-avant Le nœud d appel de bibliothèques Le nœud de propriété des commandes/indicateurs

Les effets des nœuds de propriété de l IHM sur les performances Les nœuds de propriété des commandes/indicateurs sont lents Nécessitent des changements des threads Ne peuvent pas être parallèles Nombre d entre eux déclenchent des modifications d IHM Les nœuds de propriété dans une boucle rapide sont mauvais La propriété «valeur» a les propriétés d un nœud de propriété pas d un terminal

Gestion d IHM Ne mettez à jour les indicateurs que lorsque vous en avez besoin Une mise à jour toutes les 100 ms est suffisante Les données sont copiées des buffers d exécution aux buffers de transfert des buffers de transfert aux buffers d indicateurs

Différer la mise à jour de l affichage Utiliser le nœud de propriété «DeferPanelUpdates» afin de différer la mise à jour des interfaces utilisateur

Propriétés d'exécution Fichier» Propriétés du VI» Exécution <CTRL-I>

VIs réentrants La réentrance permet à un sous-vi d'être appelé de façon simultanée depuis plusieurs emplacements Nécessite de la mémoire supplémentaire pour chaque instance Utiliser des VIs réentrants dans deux cas différents Pour permettre à un sous-vi d'être appelé en parallèle Pour permettre à une instance de sous-vi de maintenir son propre état

Appels de sous-vis Les appels de sous-vis ne coûtent rien On peut noter un certain temps système La priorité des sous-routines est particulièrement utile pour les petits VIs qui sont souvent appelés Appeler un sous-vi dans un système d'exécution différent peut coûter très cher Toutefois, l'appel d'un sous-vi ne provoque pas nécessairement de nouvelles copies de mémoire

Démo Les effets de l optimisation d exécution

Améliorer les performances en LabVIEW Le but de l optimisation Les outils Optimisation mémoire Optimisation de l exécution Réduit l utilisation mémoire, augmente la vitesse Règle du 80/20

Améliorer les performances en LabVIEW Le but de l optimisation Les outils Optimisation mémoire Optimisation de l exécution Les outils Windows (gestionnaire de tâche, perfmon) VI Profiler Toolkit Real-Time Execution Trace

Améliorer les performances en LabVIEW Le but de l optimisation Les outils Optimisation mémoire Optimisation de l exécution Ôtez les points de coercition Profitez des structures en place

Améliorer les performances en LabVIEW Le but de l optimisation Les outils Optimisation mémoire Optimisation de l exécution Sachez où LabVIEW peut vous aider Limitez les mises à jour des indicateurs Utilisez des paramètres d exécution appropriés

Aller plus loin ni.com/multicore ni.com/devzone ni.com/training L aide LabVIEW Formation LabVIEW Performance

Formations Débutant Expérimenté Avancé Cours Certifications LabVIEW Core 1 LabVIEW Core 2 Cours sur le matériel NI Certified LabVIEW Associate Developer Exam LabVIEW Core 3 LabVIEW Connectivity Certified LabVIEW Developer Exam Advanced Architectures for LabVIEW Managing Software Engineering in LabVIEW Certified LabVIEW Architect Exam Économiser du temps et de l argent avec les formations NI Lors d un sondage mondial, les utilisateurs NI ont rapporté : Apprentissage 66 % plus rapide Développement d applications 50 % plus rapide 43 % de temps en moins pour la maintenance 0% 50% 100% *Source: NI WW training customer survey, 2009, n = 640, from US, Canada, Germany, Spain, Poland, Mexico, Brazil, South America, Japan, Taiwan, ASEAN

france.ni.com Des questions?

Restez connecté(e) avant et après NIDays youtube.com/nifrance facebook.com/nifrance ni.com/rss/f twitter.com/nifrance ni.com/community