Professional Documents
Culture Documents
www.vni.com
by Visual Numerics, a Rogue Wave Software Company by Visual Numerics, Inc. All Rights Reserved Printed in the United States of America
Trademark Information
Visual Numerics, IMSL and PV-WAVE are registered trademarks. JMSL TS-WAVE, JWAVE, and PyIMSL are trademarks of Visual Numerics, Inc., in the U.S. and other countries. All other product and company names are trademarks or registered trademarks of their respective owners. The information contained in this document is subject to change without notice. Visual Numerics, Inc. makes no warranty of any kind with regard to this material, included, but not limited to, the implied warranties of merchantability and fitness for a particular purpose. Visual Numerics, Inc, shall not be liable for errors contained herein or for incidental, consequential, or other indirect damages in connection with the furnishing, performance, or use of this material.
Rsum........................................................................................................ 4 Prototyper / Mettre en Production ............................................................ 4 Prototyper le Modle Analytique ............................................................ 4 Dploiement en Production de la partie Analytique ............................... 5 Les Concepteurs de Prototypes et Leurs Besoins ....................................... 6 Pourquoi Python ? ................................................................................... 7 Les Dfis du Dploiement en Environnement de Production .................... 8 La Solution : PyIMSL Studio......................................................................... 8 Conclusion................................................................................................. 10
Rsum
Cet article explore en dtail la modlisation analytique et le dploiement en environnement de production dapplications danalyse et explique dans quelles mesures ces tapes sont fondamentalement diffrentes en termes de pr-requis, dobjectifs et de choix doutils. Les prrequis concernant llaboration du prototype sont calqus sur les fonctionnalits du langage dynamique Python. Il sera discut comment raliser le passage entre la modlisation du prototype et le dveloppement du code de production et il sera montr comment PyIMSL Studio en adresse plusieurs points-cl. PyIMSL Studio est le premier et unique environnement de dveloppement commercial pour le dveloppement dapplications danalyse numrique conu pour le dploiement de prototypes mathmatiques et statistiques en application de productions. Cet article concerne principalement les personnes qui sont intresses par Python comme langage de prototypage mais qui ne sont pas familires quant son utilisation et la manire dont il peut parfaitement rpondre aux exigences de prototypage/mise en production dapplication numriques.
4. Obtenir laccord des responsables pour passer la phase de dploiement et de mise en production traditionnellement au moyen de dmonstrations et documentations des prototypes.
Page 5
4. Test et contrle de la qualit sur la prcision des rsultats analytiques obtenus, afin de sassurer quils sont identiques ceux dtermins par le prototype. Disposer des bons outils numriques pour atteindre cet objectif est primordial, et la parit de ces outils numriques utiliss la fois pour le prototypage et la production est une considration prpondrante.
Page 6
de dbogage permettant de suivre lvolution de la valeur dune variable sont galement une ressource de grande valeur. Quel(lle)s plateformes/environnements sont utilis(e)s pour le pour le prototypage ? Les plateformes de prototypage sont traditionnellement des PC de bureaux fonctionnant sous Microsoft Windows, Linux ou MacOS. Elles sont gnralement diffrentes des plateformes de production qui exigent parfois un plus grand spectre denvironnements matriels et/ou de systmes dexploitation, bien souvent des serveurs et non des PC de bureau standard. Quel est le format typique des donnes utilises pour le prototypage ? Laccs aux donnes pour le prototypage peut impliquer un accs formel une base de donnes mais dans de nombreux cas, il est question dchantillons de donnes ou de sous-ensembles de jeux de donnes sous la forme dun simple fichier ASCII tabul ou dune feuille Excel. Ceci est trs rarement le cas pour une application de production. Le filtrage et le prtraitement des donnes dans une application de production peuvent tre effectus lors de laccs la base de donnes ou par dautres modules composant larchitecture de lapplication, mais pour le concepteur du prototype, il est ncessaire quil ait sa disposition un large ventail doutils faciles utiliser de manire ce quil accomplisse rapidement et efficacement ces tches.
Pourquoi Python ?
Python est un langage dynamique open source de tout premier ordre, parfaitement adapt au prototypage dapplications danalyse pour un certain nombre de raisons :
Cest un langage permettant la fois une approche procdurale et une approche oriente objet. Dautres langages dynamiques sont souvent plus spcialiss, avec des fonctionnalits adressant des besoins spcifiques, mais ils noffrent pas autant de compromis que Python sagissant de la programmation gnraliste. Python nest pas un langage propritaire, ce qui permet un trs large partage des outils et des codes danalyse parmi une trs vaste communaut dutilisateurs. Il y a de trs nombreux toolkits open-source pour la modlisation analytique avec Python et ceci est le rsultat de plus de 10 ans dune forte adoption et de larges contributions de la part de la communaut scientifique. Cest un langage faiblement typ, avec une syntaxe trs simple et trs intuitive, ce qui le rend facile lire et comprendre. Le package NumPy un standard pour Python le transforme en un langage ddi aux oprations sur les tableaux, adquat pour un stockage efficace et pour la manipulation de grands tableaux multidimensionnels. NumPy propose une syntaxe simple pour indexer, sous-chantillonner et manipuler les tableaux. De plus, NumPy est efficace en matire de gestion de la mmoire et de performances.
Page 7
Alors quil existe de nombreux outils et librairies numriques open-source disponibles pour Python, les wrappers PyIMSL (inclus dans lenvironnement PyIMSL Studio) offrent lensemble le plus cohrent, le plus riche de techniques mathmatiques et statistiques avances pour, la fois, la conception de prototypes et le dploiement en applications de production, indpendamment de lenvironnement matriel et du systme dexploitation finaux.
http://www.vni.com/products/imsl/pyimslstudio.php
Page 8
Le nombre dalgorithmes disponibles les librairies IMSL avoisine le millier, proposant aux dveloppeurs de nombreuses combinaisons afin de crer des applications danalyse uniques, comptitives et de qualit industrielle. Au sein de PyIMSL Studio, ces fonctions mathmatiques et statistiques sont accessibles au programmeur Python pour le prototypage rapide et au dveloppeur C pour la ralisation dapplications de production. Le plus important est que les algorithmes sous-jacents sont les mmes pour les deux environnements. Les professionnels interrogs estiment quen utilisant les mmes algorithmes durant la phase de prototypage et durant la phase de mise en production, cela peut rduire de manire significative le temps de dveloppement par la suppression de recherches additionnelles, de rcriture et de tests. Avec PyIMSL Studio, Visual Numerics a intgr et packag une collection pratique et complte doutils Python fiables pour la modlisation analytique. Ces outils sont tests, documents et supports par Visual Numerics et ils sinstallent trs facilement par lintermdiaire dune seule procdure standard. Ce jeu de composants comprend :
Python NumPyun ensemble de modules pour la manipulation puissante et efficace de tableaux de donnes. Il sagit dun standard de facto pour lalgbre matricielle et les tableaux en Python. Des composants dI/O et de transformations de donnesdes utilitaires pour filtrer et transformer les donnes, parmi lesquels : o Un utilitaire pour lire des fichiers de donnes ASCII, disponible en Python et en code de production C. o Un utilitaire didentification et de substitution de valeurs manquantes, disponible en Python et en code de production C. o PyODBCUn module Python daccs aux bases de donnes pour Windows et Linux. o xlrdUn module Python pour importer des donnes depuis une feuille Excel. matplotlib/pylabDes composants graphiques Python. IPythonUne interface de type ligne de commandes pour le dveloppement interactif et lexploration de donnes en Python. Eclipse/PydevUn Environnement complet de Dveloppement Intgr (EDI) pour Python.
Page 9
Les wrappers PyIMSL permettent dexposer lintgralit des fonctionnalits de la libriairie IMSL C dans un style qui reflte parfaitement la philosophie du langage Python. Les fonctions qui requirent des tableaux peuvent tre utilises avec tout ce qui se comporte comme un tableau en Python. La gestion des erreurs utilise la gestion standard des exceptions en Python. Utiliser PyIMSL permet de produire un code minimaliste et lisible, pythonique est le terme utilis cet effet par la communaut des utilisateurs Python. Pour le concepteur de la modlisation, les wrappers PyIMSL sont un moyen daccder aux fonctions fiables, robustes et performantes de la librairie IMSL C sans avoir programmer en C. La documentation des wrappers PyIMSL 2 dcrit comment utiliser lintgralit des fonctions mathmatiques et statistiques de la librairie et est tlchargeable depuis le site web de Visual Numerics. Parce que les wrappers PyIMSL offrent une interface directe chacune des fonctions de la librairie IMSL C, les personnes qui souhaitent passer dun prototype Python un code de dploiement en C nauront aucun problme pour dterminer la routine et les paramtres de lalgorithme en C de lapplication de production.
Conclusion
Ce document a soulign quil existe des diffrences significatives entre la conception dun prototype et la mise en production du modle rsultant. Python est dsign comme tant un excellent langage de prototypage. Mais dans bien des cas pourtant, le dploiement en application de production implique une r-implmentation de la partie analytique en un autre langage. PyIMSL Studio fournit non seulement lenvironnement de prototypage complet mais aussi la partie analytique pour les deux parties : la conception du prototype et sa mise en production.
http://www.vni.com/products/imsl/documentation/index.php#pyimsl
Page 10