Rapport de veille. Utilisation du langage de programmation Python et de son écosystème dans le domaine de la science

Dimension: px
Commencer à balayer dès la page:

Download "Rapport de veille. Utilisation du langage de programmation Python et de son écosystème dans le domaine de la science"

Transcription

1 Utilisation du langage de programmation Python et de son écosystème dans le domaine de la science Une étude de cas pour la recherche dans le domaine de la reconnaissance de la parole Première version Frédéric Osterrath Agent de recherche senior Reconnaissance de la parole Le 21 mai 2013 Partenaire financier :

2 TABLE DES MATIÈRES TABLE DES MATIÈRES PROBLEMATIQUE REVISION DES CARACTERISTIQUES DU LANGAGE PYTHON OUTILS D INTEGRATION ET D EXTENSION REVISION DE L ECOSYSTEME SCIENTIFIQUE DE PYTHON La pile Scipy Routines numériques optimisées Installation de la pile Scipy Comparaison avec MATLAB IPython comme environnement d expérimentation CONCLUSION GLOSSAIRE ANNEXE Page 2

3 1. PROBLÉMATIQUE La validation des hypothèses et des concepts en recherche passe souvent par l implémentation d algorithmes permettant de conclure sur l efficacité d une méthode en observant ses effets sur des données expérimentales. Le chercheur passera donc beaucoup de temps à programmer tout en modifiant continuellement les processus développés, même si l implémentation elle-même n est pas le but premier de son travail. Ses outils se doivent donc d être flexibles et agiles. Le traitement de la parole est une tâche intensive qui demande une efficacité des programmes en exécution. Ainsi, les systèmes de traitement de la parole ont été traditionnellement implémentés en utilisant des langages permettant une bonne optimisation de l utilisation des ressources système. Conséquemment, le C ou même le C++ ont été et demeurent des langages très populaires en reconnaissance de la parole. Il y a donc un large patrimoine de solutions informatiques que les chercheurs voudraient réutiliser sans avoir à les programmer à nouveau suivant l avènement de nouvelles approches algorithmiques ou même de nouveaux paradigmes d exploitation (e.g. :SaaS). Or, dans la perspective du travail expérimental d un chercheur, les langages compilés et statiquement typés tels que le C/C++ ne se prêtent pas toujours aussi bien aux exigences de flexibilité du travail expérimental que les langages dits de «scripts» tels que Perl, BASH/CSH, etc. C est pour cela que bon nombre de solutions de reconnaissance de la parole utilisées dans la recherche (Kaldi, CMU Sphinx) sont en fait un assemblage de langages compilés et interprétés. Les logiciels compilés sont typiquement encapsulés en tant que processus distincts par des scripts permettant une exploration facile des variantes algorithmiques, mais cela amène un bon nombre de désavantages et contraintes logicielles causées par ce découplage. Citons par exemple la nécessité, souhaitable ou non, de passer par des données transitoires dans des formats et interfaces variés causant une explosion des types. Par ailleurs, les traitements numériques ou statistiques sont souvent réalisés avec des langages tels que Fortran, MATLAB ou R, en raison de leur expressivité pour ces tâches, ajoutant une autre base de code. Finalement, mentionnons la tendance lourde de la diminution du prix de la vitesse de calcul et l augmentation du coût de la main d œuvre spécialisée en recherche. Si à une époque il était beaucoup plus dispendieux de mettre la main sur des processeurs très rapides, on peut dire que cela est une considération contemporaine moins importante avec la prolifération des solutions de grappes de calcul et d infonuagique plus facilement accessibles. Or, l exploitation de ces solutions se doit d être standardisée et facile. Ainsi, il devient généralement plus important pour un gestionnaire de recherche d optimiser le temps de développement d une solution et de valoriser une polyvalence future, garante d une plus grande valeur patrimoniale, plutôt que d optimiser le temps d exécution de cette même solution, sans dire pour autant que cela n a plus d importance. Tous les éléments mentionnés ci-haut posent un certain nombre de dilemmes dans les choix technologiques des chercheurs et il y a des approches diverses pour tenter de répondre aux priorités les plus pressantes de chacun. Or, chaque approche apporte son lot d avantages et d inconvénients et il devient parfois difficile à accorder l une avec Page 3

4 l autre. Plus précisément, l éventail des technologies informatiques qu une équipe de recherche doit maîtriser pour mener à terme son travail semble être en perpétuelle expansion. Dans un tel scénario, il apparaît donc le désir chez plusieurs chercheurs de recentrer les technologies nécessaires vers un noyau commun couvrant les besoins d un plus grand nombre de tâches dans le souhait de se concentrer d avantage sur le sujet de recherche que sur les outils employés. C'est dans ce contexte que nous allons regarder l utilisation du langage de programmation Python. L utilisation de Python dans le domaine de la science est en nette croissance depuis la parution de la version 2.0 du langage, soit vers l an De nombreuses librairies vouées au traitement scientifique et numérique en plus d outils de tout genre et ont été adoptés par un bon nombre de laboratoires de recherches prestigieux (CERN, Google, Nasa, etc.). Des conférences telles que EuroSciPy et PyData, entre autres, sur l utilisation de Python en science et en traitement des données ont vu le jour, confirmant la tendance. De plus, mentionnons que la conférence généraliste PyCon aura lieu à Montréal en 2014 et en Nous présentons dans ce document une révision des propriétés et tendances courantes dans l utilisation de Python dans le domaine de la science, ainsi que quelques comparaisons avec des solutions comparables offrant ainsi un débroussaillage des éléments intéressants qui pourraient s avérer utiles pour autrui. Ce document est accompagné d un autre rapport sur les capacités de parallélisation de Python ainsi qu un autre sur la solution de stockage des données que propose PyTables. 2. RÉVISION DES CARACTÉRISTIQUES DU LANGAGE PYTHON Python est un langage de programmation général, multi-paradigmes, dynamiquement typé et est interprété à l exécution. Il s agit d une solution logiciel libre dotée d une licence permettant l exploitation commerciale sans restrictions. Dans Python, tout est un objet et toutes les opérations sur les objets s effectuent par une référence sur l objet en question, sauf dans quelques rares exceptions. Le typage dynamique des objets ne permet généralement pas la translittération des types à l exécution, sauf dans le cas d opérations, mathématiques ou autres, qui auraient du sens. Le typage dynamique offre des avantages au niveau du temps de développement et de la flexibilité du code produit. Par exemple, le cas suivant nécessiterait considérablement plus de lignes de code en C/C++ ou en Java : def square ( a ) : return a * a >>> square( 9 ) 81 >>> square( (3+5j) ) # Fonctionne également avec un nombre complexe, des fractions, matrices, etc. ( j) Page 4

5 Tout fichier source contenant du code Python est désigné comme étant un «module». Le langage inclut le concept des «namespaces» qui compartimente le contexte des objets tels que les variables, instances de classes ainsi que les fonctions. Ainsi, un fichier source Python, qu il implémente un script (approche similaire à du Bash/Perl), une classe (approche similaire à Java), une collection de fonctions (librairie, tel qu'on pourrait le voir en C), des paramètres de configuration (similairement à un fichier INI ou YAML) est un module compartimenté par la logique des namespaces propre au langage et facilitant sa réutilisation sans pour autant nécessiter l adoption d un quelconque paradigme de programmation ou de travail additionnel. Cette utilisation des namespaces se différencie de l utilisation qui en est faite en C++ où son utilisation est facultative et n est pas forcément compartimentée par chacun des fichiers sources, classes, etc. La librairie standard de Python est souvent citée comme l un de ses principaux avantages. Il y a en effet un grand nombre de modules qui sont livrés avec l interpréteur. L expression anglaise souvent employée «batteries included» vise à illustrer l idée qu une installation Python est relativement complète et auto-suffisante. Citons les exemples suivants parmi les modules de la librairie standard : Gestion de communications interprocessus (asynchrones, ssl, RPC, HTTP). Gestion de collections (ensembles). Persistance et sérialisation des données. Débogueur intégré avec outils de profilage. Outils de développement d IHM. Expressions régulières, compression, services de cryptographie, etc. Les librairies disponibles pour les programmeurs, ainsi que la documentation complète qui y est associée, accélèrent le développement d applications et facilitent le partage de code. Lequel sera inévitablement plus concis et compréhensible vu l universalité de la librairie standard. La console Python est un outil fréquemment utilisé d une manière analogue à CSH ou BASH. C est-à-dire que de nombreux développeurs exécutent et développent leurs programmes directement à l intérieur d une console, contrairement à Perl ou tout autre langage compilé où des programmes seraient lancés suivant l édition. Cette approche d interaction directe avec un programme en exécution, propre à Python, facilite le débogage ainsi que certaines approches exploratoires comme l introspection d objets ou l interaction avec les données. Une telle approche est compatible avec les exigences de la recherche. Nous verrons plus loin des environnements de travail qui facilitent d avantage cette approche exploratoire. L interpréteur a été porté sur toutes les grandes plateformes (Windows, OSX, UNIX, Android, etc.) et le code produit par le programmeur est habituellement distribué en code source (approche typique du logiciel libre) ou en bytecode, de manière analogue aux fichiers.class de Java qui sont exécutés sur une machine virtuelle propre au langage. Page 5

6 3. OUTILS D INTÉGRATION ET D EXTENSION L implémentation principale de l interpréteur est en C et s appuie sur de nombreuses librairies systèmes en C. Pour cela, Python inclut dans sa librairie standard des routines facilitant l encapsulation de code en C. Par ailleurs, d autres implémentations existent telles que Jython, qui est un interpréteur implémenté en Java, facilitant la réutilisation de classes «natives» Java ainsi que l extension de programmes Java par une console Python. Citons également IronPython qui est une implémentation pour.net. Citons aussi des implémentations JavaScript et des encapsulations Fortran, R, Matlab, parmi d autres actuellement disponibles. Cython, quant à lui, permet de générer automatiquement des extensions en C compilées à partir de code Cython/Python offrant une bonne performance à peu de frais. Le grand nombre d implémentations et d encapsulations inter-langages font que Python est souvent employé comme outil d intégration pour faire le pont entre divers langages de programmation dans un seul et même processus. Cette approche a le potentiel de réduire le code d intégration des types de données (réduction de code dit de type «boiler-plate») et faciliter le transfert des données d une fonction à une autre tout en ne nécessitant pas de mécanisme de sérialisation particulier. Aussi, le grand nombre d environnements-cibles du langage maximise le champ d action de compétences Python (c.-à-d. UNIX, WEB/JavaScript, calculs GPU, applications «desktop», etc.). Toujours dans l optique de l intégration et dans le contexte du travail quotidien du chercheur, il importe de pouvoir aisément lancer des programmes en sous-processus et de filtrer les résultats produits par la sortie standard. En ce sens, Python offre, depuis la librairie standard, le module subprocess qui permet des appels systèmes simples ou plus sophistiqués afin d interagir de manière synchrone ou asynchrone avec les entrées/sorties d un programme en ligne de commande. Par exemple, si l on voulait lancer un programme «process_directory» avec comme argument le chemin d accès et arrêter l exécution du programme Python dès qu une erreur survenait au niveau du sous-processus, il suffirait de faire comme suit : subprocess.check_call( [ 'process_directory', '/var/local/audio_files' ] ) L exécution de ce programme se fera en tenant compte de la valeur de sortie du programme (code d erreur) et, dans le cas d une erreur, une exception dans le contexte du code Python sera générée permettant de retracer aisément le sousprocessus fautif. C est une approche robuste qui s appuie sur le mécanisme d exceptions intégré dans Python que l on peut recommander en tant que bonne pratique. L annexe propose d autres approches d appels système. En ce qui concerne la syntaxe du langage, le code source Python est dépourvu de points-virgules ou autres marqueurs de «statements». Ainsi, c est l indentation du code qui définit le contrôle de flux. L utilisation d une indentation syntaxiquement significative est perçue par bon nombre de débutants comme facteur intimidant et il y a effectivement une certaine fragilité associée à la mise en forme «syntaxique» du code à l aide d espaces et de tabulation. Cela rend la normalisation des standards de codage au sein d une organisation d autant plus impérative. Page 6

7 4. RÉVISION DE L ÉCOSYSTÈME SCIENTIFIQUE DE PYTHON Basées sur la librairie standard, un grand nombre de librairies en code source ouvert (open source) ont été développées ces dernières années et sont partagées sur des sites centralisés de partage de librairies Python tel que «Python Package index» ( L installation de celles-ci est facilitée par des programmes de découverte automatique de dépendances tels que les «easy_install», «pip» ou même des outils de séparation fonctionnelle de dépendances tels que «VirtualEnv». On recense actuellement près de librairies tiers parti sur le Python Package Index, touchant des domaines variés tels que la science, le traitement des langues naturelles, le développement Web, etc. 4.1 La pile Scipy Pratiquement toutes les librairies de calcul numériques et scientifiques se basent sur un seul et même assemblage de librairies qui est désigné «Scipy stack» ou pile «Scipy». Cette fondation comporte une librairie de calcul matriciel multidimensionnelle nommée Numpy et un grand nombre de routines numériques à caractères variés (statistiques, optimisation, intégration numérique, équations différentielles, traitement de signal, séries de Fourier, etc.) qui sont regroupées sous la librairie «Scipy». Sont regroupés autour de ces deux librairies principales, des librairies telles que «matplotlib» pour la visualisation 2D et 3D, et PyTables pour l'interaction avec des fichiers HDF5 supportant les types de données matriciels proposés par Numpy. PyTables sera exploré dans un autre document. La librairie de calcul symbolique Sympy est également parfois considérée comme élément de la pile Scipy. >>> import numpy as np >>> np.idendity( 3 ) array([[ 1., 0., 0.], [ 0., 1., 0.], [ 0., 0., 1.]]) >>> a = np.arange(16) >>> a array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]) >>> b = a.reshape(2,2,2,2) >>> b array([[[[ 0, 1], [ 2, 3]], [[ 4, 5], [ 6, 7]]], [[[ 8, 9], [10, 11]], [[12, 13], [14, 15]]]]) >>> b.ndim 4 >>> b.shape (2,2,2,2) >>> a = np.diag( np.arange(3) ) >>> a array([[0, 0, 0], [0, 1, 0], [0, 0, 2]]) >>> a[1, 1] 1 >>> a[2, 1] = 10 # third line, second column >>> a array([[ 0, 0, 0], [ 0, 1, 0], [ 0, 10, 2]]) >>> a[1] array([0, 1, 0]) Ci-dessus, exemples de manipulations de matrices Numpy. Page 7

8 4.2 Routines numériques optimisées Le calcul matriciel effectué par Numpy n est pas entièrement codé en Python. Numpy repose sur des routines d algèbre linéaire optimisées que sont les librairies telles que BLAS. On recense actuellement près de 20 variations d implémentations dont certaines sont commerciales et d autres nées de projets en code source ouvert (open source). Une installation typique de Numpy offerte par une distribution Linux repose sur ATLAS, une variante automatiquement optimisée. Celle-ci n est pas la plus rapide. Ce titre reviendrait à l implémentation BLAS que procure la librairie de calcul MKL d Intel. Toutefois, une récente variante en code source ouvert nommée OpenBLAS talonne la librairie d Intel en termes de performance. La communauté de développeurs derrière OpenBLAS est active, laissant entrevoir, pour les prochaines années, une intéressante progression des performances sur les nouvelles architectures de processeurs 1 Dans tous les cas, Numpy peut être configuré pour s appuyer sur l une ou l autre de ces quatre implémentations de BLAS en fonction de son budget, son infrastructure, etc. In [1]: l = range(1000) In [2]: %timeit [i**2 for i in l] loops, best of 3: 126 us per loop In [3]: a = numpy.arange(1000) In [4]: %timeit a** loops, best of 3: 2.85 us per loop Ci-haut, une comparaison du temps de calcul d une liste d éléments sous Python et sous Numpy. Ainsi, il est possible d effectuer des opérations matricielles avec un bon niveau de performance tout en retenant l interface de programmation haut niveau que proposent Numpy et Python. Il est également intéressant de mentionner l existence de projets en code source ouvert visant à optimiser d avantage la performance de Numpy tels que Numba. Dans certains cas, ce dernier peut accélérer le temps d exécution par un facteur de 100 en employant divers processus d optimisation tels que la compilation «just-in-time». 4.3 Installation de la pile Scipy L installation des différents modules constituant la pile Scipy est à la portée de tous. Les modules nécessaires sont généralement offerts par les gestionnaires de paquetages des distributions Linux (ou via MacPorts pour Mac) où les versions employées sont souvent désuètes au vu de la fréquence élevée des mises à jour. Ainsi, il est généralement conseillé d installer les modules via les programmes de gestion de 1 2f2f e79692e e636f6d2f4f70656e424c41532f d6d5f736e625f e706e67. Page 8

9 dépendance de Python (pip, easy_install) plutôt que les versions offertes par Linux/MacPorts. Par ailleurs, il existe des distributions logicielles rassemblant les modules de la pile. On peut citer les produits des entreprises Enthought (EPD et Canopy), Continuum Analytics (Anaconda). Ces entreprises offrent des services de support et de consultation de leur assemblage de la pile Scipy. Anaconda est disponible sous forme d image AMI facilitant son déploiement sur EC2/OpenStack. Il existe aussi des distributions de code source ouvert telles que Python(x,y). Ces distributions sont particulièrement utiles pour les utilisateurs de Microsoft Windows ou, dans une moindre mesure, Mac OSX. Citons finalement le projet SAGE qui rassemble tous les éléments de la pile Scipy pour en faire une application de calcul mathématique plus particulièrement adaptée au milieu de l enseignement. 4.4 Comparaison avec MATLAB Avec ces librairies de base fournies par la pile Scipy, une installation Python possède un environnement d'exécution de calcul numérique comparable à celui de MATLAB. À la différence de MATLAB, Octave ou R, un programme Scipy repose sur un langage de programmation généraliste complet au lieu d un langage de script prévu pour l exécution de routines dans un environnement clos. Ainsi, sous Numpy, la syntaxe sera plus verbeuse, mais aussi plus extensible. Les performances de Numpy reposant sur MKL sont très similaires aux performances de MATLAB reposant sur MKL. Par exemple, pour une extraction des valeurs propres (eigenvalues) d une matrice définie par la fonction Numpy suivante : def test_eigenvalue(): i= 500 data = random((i,i)) result = numpy.linalg.eig(data) avec un équivalent MATLAB tel que : disp('eig');tic;data=rand(500,500);eig(data);toc; on obtient des résultats de comparaison de performance tels que : Fonction Numpy / MKL/ Xeon8core / MKL MATLAB / MKL/ Xeon8core-R2008a Facteur d accélération Numpy test_eigenvalue 772ms 986ms 1,28 Source : Page 9

10 Tout comme pour MATLAB, il existe, en plus des fonctions scientifiques et mathématiques incluses dans Scipy, des toolkits ou trousses d outils regroupant des modules à vocation plus pointue. Ces trousses d outils sont généralement classées par un préfixe de contexte «SciKit». Il existe des trousses pour le Machine Learning, pour le traitement de l audio, etc. Elles peuvent être installées avec les outils d installation avec gestion de dépendances tel que mentionné précédemment. 4.5 IPython comme environnement d expérimentation Une approche habituelle dans le cycle de programmation en Python est d inclure la console interactive dans les tâches du développeur. C est-à-dire qu au lieu d employer le cycle «édition-compilation-test», on retrouvera souvent le cycle «explorationédition» où l édition du code source est souvent effectuée selon une approche quasi documentaire, c.-à-d. qu on officialise le code qui «fonctionne» dans un fichier texte après avoir expérimenté l utilisation de ses fonctions. Selon cette approche et dans le but de renchérir les fonctionnalités de la console de base, le projet IPython a été créé. À la base, IPython est donc essentiellement une console Python «de luxe» permettant l exploration et l exécution de code avec de nombreuses fonctionnalités additionnelles. Parmi ces nouvelles fonctionnalités, IPython offre le profilage en ligne du code, des fonctions de chronométrage, un historique interactif des commandes et des résultats. Son adoption a été très large et très rapide. On retrouve une console IPython dans une grande partie des IDE (Environnement de Développement Intégré) tels que VisualStudio. Le financement de son développement a été appuyé par des initiatives telles que le U.S. Department of Defence High Performance Computing Program. IPython est un projet assez jeune, mais sa popularité fait en sorte qu il est souvent au cœur de toute solution de calcul numérique en Python, au même titre que la pile SciPy. On prévoit la version 1.0 pour juillet IPython offre une console Python enrichie sous trois formes différentes. L une d entre elles est particulièrement attrayante pour quiconque effectue un travail exploratoire. Il s agit d une interface Web nommée «notebook». Depuis celle-ci, il est possible de faire l édition du code arbitrairement groupé sous formes de cellules, exécuter ces cellules et ajouter de la documentation en ligne avec mise en forme enrichie. La mise en forme possible inclut tout ce qu un navigateur sait interpréter, c.-à-d. HTML, HTML5, Flash, JavaScript, etc., et permet la rétroaction entre ces éléments et le code développé. Le texte est mis en forme par le langage Markdown et permet l édition en ligne de formules mathématiques en format Latex. En contraste avec un script traditionnel, le groupage de codes en cellules permet de séparer de manière agile des blocs fonctionnels pouvant être relancés au besoin selon l exploration effectuée. Le résultat de ces cellules est archivé dans le même document et facilite ainsi la traçabilité des expériences tout en permettant la réutilisation des résultats. Il est possible de sauvegarder une session d édition en tant que fichier et ce dernier est un fichier texte humainement lisible en format JSON, permettant de versionner la session par un système comme SVN, Git ou Mercurial. Cela permet d effectuer un suivi des expériences et des résultats. On peut même inclure la référence à la version dans la production des résultats, de manière à augmenter la traçabilité des données et des expériences. Certains chercheurs utilisent un lien HTTP vers une copie publique de leur Page 10

11 session IPython notebook dans leurs articles scientifiques afin d appuyer la reproductibilité des expériences. Par ailleurs, il est possible d exporter le code exécutable dans un fichier épuré de la mise en forme IPython vers un module Python standard, si tel était le besoin. Bien que l on accède à cette interface Web par un navigateur, il est possible de lancer l interface localement sur son ordinateur, car le noyau IPython possède un serveur HTTP intégré, basé sur Tornado. Le tout offre une interface qui s apparente quelque peu à celle de Mathematica ou Maple et offre au chercheur la possibilité d effectuer de la visualisation interactive des données ainsi que de la documentation enrichie en même temps que la programmation et l exécution de manière centralisée. Finalement, rappelons que, tout comme pour la console IPython de base, il est possible pour la console notebook d agir à titre d interface frontale pour les calculs distribués effectués sur un cluster IPython. Bien que les deux solutions puissent être employées de manière indépendante, leur très bonne intégration rehausse leur utilité mutuelle. Le rassemblement de ces fonctionnalités rend le calcul exploratoire par une solution IPython potentiellement très attrayante pour le chercheur. Ci-haut, un exemple de session notebook d IPython illustrant les possibilités d'employer la mise en forme d équations mathématiques à l aide de Latex, ainsi que la mise en forme et l insertion en ligne d illustrations. Page 11

12 5. CONCLUSION Par la création de conférences spécialisées sur des domaines précis du métier, la communauté en code source ouvert Python a su se rassembler afin de contribuer de manière concertée pour faire avancer certains projets clés. Citons le rassemblement des projets Python Numeric et Python Numarray pour former Numpy en Ou encore l unification de PyTables avec Numpy qui formera semblablement la prochaine génération de solution de calcul en Python (Blaze). Les projets sont en constante mutation et même si cela peut causer des maux de têtes aux administrateurs logiciels des équipes de recherche, on peut aussi conclure que l intérêt des développeurs de ces logiciels est décidément d offrir des solutions innovantes et adaptées aux cas posés par la recherche scientifique. Il existe de nombreuses solutions logicielles qui sont en utilisation et qui ont semblablement contribué au succès de projets de recherche importants. Citons l utilisation de Python dans de grands projets de recherche tels que le grand collisionneur de Hadrons du CERN 2. En somme, il s agit d un choix technologique pertinent pour une équipe de recherche et la polyvalence de la technologie peut être perçue comme étant garante du succès de son adoption. 2 Page 12

13 GLOSSAIRE SaaS Software as a service : Approche consistant à offrir une solution logicielle non pas en tant que logiciel pouvant être installé par le client et géré par une licence d exploitation, mais plutôt par une facturation à l utilisation du service selon une entente préétablie. Typage Procédé par lequel un langage de programmation détermine les types de données des variables (entiers, caractères, etc.). INI Format de fichier de configuration popularisé par Microsoft devenu plutôt désuet de par ses limitations, mais toujours employé à cause de sa simplicité. YAML Yet Another Markup Language : Format de fichier usuellement employé pour définir des configurations avec des types de données plus complexes que INI et qui permet d être aisément édité par l humain tout en demeurant facilement traité par un programme. AMI Amazon Machine Image : Image d un système d exploitation complet pour être mis en exécution sur l infrastructure d infonuagique d Amazon. EC2 Elastic Cloud Compute : Infrastructure d infonuagique d Amazon. Page 13

14 ANNEXE Raccourcis utiles La console IPython, sous ses trois formes, offre des raccourcis qui facilitent d avantage le prototypage rapide. Ceux-ci sont appelés «magic commands» et sont souvent précédés du signe «%». Par exemple, «%px» qui lance l exécution d un statement IPython sur tous les nœuds enregistrés dans une perspective client sur un ipcluster, ou %prun et %timeit, qui permettent de profiler du code en ligne. Ces commandes sont propres à IPython et pourront être employées dans des scripts, mais il faut demeurer conscient qu un interpréteur Python de base ne connaîtra pas la signification syntaxique de ceux-ci. Mentionnons quelques autres raccourcis particulièrement utiles : %debug Lorsque le code exécuté génère une exception, ce raccourci permet d entrer en mode debug en initialisant une console dans le contexte de l exception au dernier niveau de la pile d appels (stacktrace). Il devient alors aisé de naviguer dans la pile d appels (et leur contexte) avec les commandes «up» et «down», et d interagir avec les variables et les fonctions. Exceptionnellement, dans la dernière version 0.13, cette commande n est pas disponible pour le mode «notebook». On fera par exemple : In [35]: def div(a,b) :...: return a/b...: In [36]: div(43, 0) ZeroDivisionError Traceback (most recent call last) <ipython-input-36-2b5233bf5745> in <module>() ----> 1 div(43, 0) <ipython-input > in div(a, b) 1 def div(a,b) : ----> 2 return a/b ZeroDivisionError: integer division or modulo by zero In [37]: %debug > <ipython-input >(2)div() 0 return a/b ipdb> print b 0 Page 14

15 %edit Cette fonction permet de coupler l édition depuis la console interactive à un fichier pour édition. On l utilise fréquemment de pair avec la fonction %hist qui affiche l historique des commandes dans la console. Il s agit d une fonction utile seulement dans les modes de console autres que le «notebook». Avec celle-ci, il devient possible de développer ses idées dans la console et lorsqu on cherche à les officialiser, on peut faire une commande telle que : %edit Cela aura pour effet d ouvrir le programme d édition de texte par défaut pour l édition des lignes d entrée 12 à 17 et 23 à 45 depuis l historique de la session. Typiquement, il faudra faire un peu de mise en forme (refactoring) des fonctions développées et commandes soumises afin d en faire un module fonctionnel.! Ce raccourci permet de lancer n importe quelle fonction depuis la ligne de commande. Son utilité particulière tient dans la possibilité de récupérer les sorties de la commande en tant qu objet Ipython.SList dans le namespace Python. L objet résultant permet de récupérer l information sous plusieurs formes telles que liste plate, chaîne de caractères, etc., c.-à-d. : In [38]: cd /var/ /var In [39]: a =! ls In [40]: a Out[40]: ['backups', 'cache',... 'tmp'] Couplé à la commande «%px» dans le contexte de l exploitation d un cluster, il devient aisé de lancer des commandes systèmes sur plusieurs machines et de récupérer leur sortie de manière synchrone. Page 15

16 ? Ce raccourci permet d obtenir de la documentation en ligne pour un objet considéré, c.-à-d. : In [41]: import os In [42]: os? Type: module String Form:<module 'os' from '/usr/lib/python2.7/os.pyc'> File: /usr/lib/python2.7/os.py Docstring: OS routines for Mac, NT, or Posix depending on what system we're on. This exports: - all functions from posix, nt, os2, or ce, e.g. unlink, stat, etc. - os.path is one of the modules posixpath, or ntpath - os.name is 'posix', 'nt', 'os2', 'ce' or 'riscos'... Page 16

Calcul Scientifique avec 3

Calcul Scientifique avec 3 ENSAM Bordeaux juin 2015 Calcul Scientifique avec 3 Installation - Prise en main Jean-Luc Charles - Éric Ducasse Arts & Métiers ParisTech, I2M "la programmation doit être un plaisir...", G. van Rossum

Plus en détail

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique Institut Supérieure Aux Etudes Technologiques De Nabeul Département Informatique Support de Programmation Java Préparé par Mlle Imene Sghaier 2006-2007 Chapitre 1 Introduction au langage de programmation

Plus en détail

Présentation du langage et premières fonctions

Présentation du langage et premières fonctions 1 Présentation de l interface logicielle Si les langages de haut niveau sont nombreux, nous allons travaillé cette année avec le langage Python, un langage de programmation très en vue sur internet en

Plus en détail

ÉdIteur officiel et fournisseur de ServIceS professionnels du LogIcIeL open Source ScILab

ÉdIteur officiel et fournisseur de ServIceS professionnels du LogIcIeL open Source ScILab ÉdIteur officiel et fournisseur de ServIceS professionnels du LogIcIeL open Source ScILab notre compétence d'éditeur à votre service créée en juin 2010, Scilab enterprises propose services et support autour

Plus en détail

Chapitre I Notions de base et outils de travail

Chapitre I Notions de base et outils de travail Chapitre I Notions de base et outils de travail Objectifs Connaître les principes fondateurs et l historique du langage Java S informer des principales caractéristiques du langage Java Connaître l environnement

Plus en détail

Évaluation et implémentation des langages

Évaluation et implémentation des langages Évaluation et implémentation des langages Les langages de programmation et le processus de programmation Critères de conception et d évaluation des langages de programmation Les fondations de l implémentation

Plus en détail

Éléments de programmation et introduction à Java

Éléments de programmation et introduction à Java Éléments de programmation et introduction à Java Jean-Baptiste Vioix (jean-baptiste.vioix@iut-dijon.u-bourgogne.fr) IUT de Dijon-Auxerre - LE2I http://jb.vioix.free.fr 1-20 Les différents langages informatiques

Plus en détail

Point sur les solutions de développement d apps pour les périphériques mobiles

Point sur les solutions de développement d apps pour les périphériques mobiles Point sur les solutions de développement d apps pour les périphériques mobiles Par Hugues MEUNIER 1. INTRODUCTION a. Une notion importante : le responsive web design Nous sommes en train de vivre une nouvelle

Plus en détail

La reconquête de vos marges de manœuvre

La reconquête de vos marges de manœuvre La reconquête de vos marges de manœuvre Libérez vos applications critiques Bull ouvre de nouvelles portes à votre patrimoine applicatif. Bull LiberTP fait passer simplement vos applications transactionnelles

Plus en détail

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation Base de données S. Lèbre slebre@unistra.fr Université de Strasbourg, département d informatique. Présentation du module Contenu général Notion de bases de données Fondements / Conception Utilisation :

Plus en détail

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

MySQL. (Administrateur) (Dernière édition) Programme de formation. France, Belgique, Suisse, Roumanie - Canada MySQL (Administrateur) (Dernière édition) Programme de formation Microsoft Partner France, Belgique, Suisse, Roumanie - Canada WWW.SASGROUPE.COM Formez vos salariés pour optimiser la productivité de votre

Plus en détail

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau) CS WEB Ch 1 Introduction I. INTRODUCTION... 1 A. INTERNET INTERCONNEXION DE RESEAUX... 1 B. LE «WEB» LA TOILE, INTERCONNEXION DE SITES WEB... 2 C. L URL : LOCALISER DES RESSOURCES SUR L INTERNET... 2 D.

Plus en détail

Famille IBM WebSphere Application Server

Famille IBM WebSphere Application Server IBM Famille IBM Le socle applicatif qui répond à vos besoins métier Points clés Bâtir un socle solide et réduire les coûts avec un serveur d applications répondant à vos besoins métier Gagner en agilité

Plus en détail

Limitations of the Playstation 3 for High Performance Cluster Computing

Limitations of the Playstation 3 for High Performance Cluster Computing Introduction Plan Limitations of the Playstation 3 for High Performance Cluster Computing July 2007 Introduction Plan Introduction Intérêts de la PS3 : rapide et puissante bon marché L utiliser pour faire

Plus en détail

Windows Server 2008. Chapitre 1: Découvrir Windows Server 2008

Windows Server 2008. Chapitre 1: Découvrir Windows Server 2008 Windows Server 2008 Chapitre 1: Découvrir Windows Server 2008 Objectives Identifier les caractéristiques de chaque édition de Windows Server 2008 Identifier les caractéristiques généraux de Windows Server

Plus en détail

RTDS G3. Emmanuel Gaudin emmanuel.gaudin@pragmadev.com

RTDS G3. Emmanuel Gaudin emmanuel.gaudin@pragmadev.com RTDS G3 Emmanuel Gaudin emmanuel.gaudin@pragmadev.com PragmaDev Dédiée au développement d un AGL pour le développement des applications temps réel et embarquées. Réseau de partenaires: Formations, Service,

Plus en détail

Introduction à MATLAB R

Introduction à MATLAB R Introduction à MATLAB R Romain Tavenard 10 septembre 2009 MATLAB R est un environnement de calcul numérique propriétaire orienté vers le calcul matriciel. Il se compose d un langage de programmation, d

Plus en détail

Introduction à. Oracle Application Express

Introduction à. Oracle Application Express Introduction à Oracle Application Express Sommaire Qu est-ce que Oracle Application Express (APEX)? Vue d ensemble des fonctionnalités et des différents composants d Oracle APEX Démonstration de création

Plus en détail

CNAM 2010-2011. Déploiement d une application avec EC2 ( Cloud Amazon ) Auteur : Thierry Kauffmann Paris, Décembre 2010

CNAM 2010-2011. Déploiement d une application avec EC2 ( Cloud Amazon ) Auteur : Thierry Kauffmann Paris, Décembre 2010 CNAM 2010-2011 Déploiement d une application avec EC2 ( Cloud Amazon ) Auteur : Thierry Kauffmann Paris, Décembre 2010 Déploiement d une application dans le cloud. 1. Cloud Computing en 2010 2. Offre EC2

Plus en détail

Python - introduction à la programmation et calcul scientifique

Python - introduction à la programmation et calcul scientifique Université de Strasbourg Environnements Informatique Python - introduction à la programmation et calcul scientifique Feuille de TP 1 Avant de commencer Le but de ce TP est de vous montrer les bases de

Plus en détail

Environnements de développement (intégrés)

Environnements de développement (intégrés) Environnements de développement (intégrés) Introduction aux EDI, la plateforme Eclipse Patrick Labatut labatut@di.ens.fr http://www.di.ens.fr/~labatut/ Département d informatique École normale supérieure

Plus en détail

Panorama des solutions analytiques existantes

Panorama des solutions analytiques existantes Arnaud LAROCHE Julien DAMON Panorama des solutions analytiques existantes SFdS Méthodes et Logiciels - 16 janvier 2014 - Données Massives Ne sont ici considérés que les solutions autour de l environnement

Plus en détail

Fonctions. Solution professionnelle pour le stockage de données, la synchronisation multi- plateformes et la collaboration

Fonctions. Solution professionnelle pour le stockage de données, la synchronisation multi- plateformes et la collaboration Fonctions Synchronisation dynamique des fichiers : mise à jour automatique des documents sur tous les équipements Partage et collaboration : partage simple des fichiers entre employés, clients et partenaires

Plus en détail

Devenez un véritable développeur web en 3 mois!

Devenez un véritable développeur web en 3 mois! Devenez un véritable développeur web en 3 mois! L objectif de la 3W Academy est de former des petits groupes d élèves au développement de sites web dynamiques ainsi qu à la création d applications web

Plus en détail

Programmation Web. Madalina Croitoru IUT Montpellier

Programmation Web. Madalina Croitoru IUT Montpellier Programmation Web Madalina Croitoru IUT Montpellier Organisation du cours 4 semaines 4 ½ h / semaine: 2heures cours 3 ½ heures TP Notation: continue interrogation cours + rendu à la fin de chaque séance

Plus en détail

Chapitre 2 : Abstraction et Virtualisation

Chapitre 2 : Abstraction et Virtualisation Virtualisation et Cloud Computing Chapitre 2 : Abstraction et Virtualisation Objectifs Présenter la notion de niveaux d abstraction séparés par des interfaces bien définies Description des avantages et

Plus en détail

Survol des nouveautés

Survol des nouveautés Maîtrisez la conception de sites Web en toute simplicité WebExpert est un puissant logiciel d'édition Web qui vous permet de concevoir et de gérer des sites Web, de façon professionnelle en toute simplicité.

Plus en détail

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

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS Depuis SAS 9.2 TS2M3, SAS propose un nouveau langage de programmation permettant de créer et gérer des tables SAS : le DS2 («Data Step 2»). Ces nouveautés

Plus en détail

TP1. Outils Java Eléments de correction

TP1. Outils Java Eléments de correction c sep. 2008, v2.1 Java TP1. Outils Java Eléments de correction Sébastien Jean Le but de ce TP, sur une séance, est de se familiariser avec les outils de développement et de documentation Java fournis par

Plus en détail

INDUSTRIALISATION ET RATIONALISATION

INDUSTRIALISATION ET RATIONALISATION INDUSTRIALISATION ET RATIONALISATION A. LA PROBLEMATIQUE La mission de toute production informatique est de délivrer le service attendu par les utilisateurs. Ce service se compose de résultats de traitements

Plus en détail

1 Définition et Appel d une fonction. V. Phan Luong. Cours 4 : Fonctions

1 Définition et Appel d une fonction. V. Phan Luong. Cours 4 : Fonctions Université de Provence Licence Math-Info Première Année V. Phan Luong Algorithmique et Programmation en Python Cours 4 : Fonctions La construction de fonctions dans un langage de programmation permet aux

Plus en détail

DA MOTA Anthony - Comparaison de technologies : PhoneGap VS Cordova

DA MOTA Anthony - Comparaison de technologies : PhoneGap VS Cordova DA MOTA Anthony - Comparaison de technologies : PhoneGap VS Cordova I. Introduction Dans une période où la plasticité peut aider à réduire les coûts de développement de projets comme des applications mobile,

Plus en détail

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

INTRODUCTION A JAVA. Fichier en langage machine Exécutable INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du

Plus en détail

étendre l authentification unique Web à des environnements Cloud et mobiles agility made possible

étendre l authentification unique Web à des environnements Cloud et mobiles agility made possible étendre l authentification unique Web à des environnements Cloud et mobiles agility made possible les activités en ligne évoluent rapidement... Il y a quelques années, les clients entraient timidement

Plus en détail

L informatique en BCPST

L informatique en BCPST L informatique en BCPST Présentation générale Sylvain Pelletier Septembre 2014 Sylvain Pelletier L informatique en BCPST Septembre 2014 1 / 20 Informatique, algorithmique, programmation Utiliser la rapidité

Plus en détail

Silk Portfolio : Une démarche allégée pour les tests, le développement et la gestion de vos applications

Silk Portfolio : Une démarche allégée pour les tests, le développement et la gestion de vos applications Portfolio : Une démarche allégée pour les tests, le développement et la gestion de vos applications Allégé Incluant seulement les fonctionnalités dont vous avez besoin Accessible Depuis une utilisation

Plus en détail

WebSpy Analyzer Giga 2.1 Guide de démarrage

WebSpy Analyzer Giga 2.1 Guide de démarrage WebSpy Analyzer Giga 2.1 Guide de démarrage Ce document aide à vous familiariser avec l utilisation de WebSpy Analyzer Giga. Pour des informations plus détaillées, consultez le guide utilisateur Analyzer

Plus en détail

Les technologies du Big Data

Les technologies du Big Data Les technologies du Big Data PRÉSENTÉ AU 40 E CONGRÈS DE L ASSOCIATION DES ÉCONOMISTES QUÉBÉCOIS PAR TOM LANDRY, CONSEILLER SENIOR LE 20 MAI 2015 WWW.CRIM.CA TECHNOLOGIES: DES DONNÉES JUSQU'À L UTILISATEUR

Plus en détail

Introduction. Sync Radio-Canada Les services en nuage Rob Fullerton. Qu est-ce que le «nuage»? Brève rétrospective

Introduction. Sync Radio-Canada Les services en nuage Rob Fullerton. Qu est-ce que le «nuage»? Brève rétrospective est en fonction depuis dix ans à CBC/Radio-Canada au sein du groupe des services en ligne/numériques. Il a occupé plusieurs postes, dont ceux d administrateur de bases de données, d administrateur de systèmes,

Plus en détail

pythonocc: une plateforme de développement agile d applications CAO.

pythonocc: une plateforme de développement agile d applications CAO. pythonocc: une plateforme de développement agile d applications CAO. PyConFR 2009 Cité des Sciences et de l Industrie, Paris Thomas Paviot*, Jelle Feringa* *pythonocc project: tpaviot@gmail.com; jelleferinga@gmail.com

Plus en détail

1 Actuate Corporation 2012. + de données. + d analyses. + d utilisateurs.

1 Actuate Corporation 2012. + de données. + d analyses. + d utilisateurs. 1 Actuate Corporation 2012 + de données. + d analyses. + d utilisateurs. Actuate et BIRT Actuate est l Editeur spécialiste de la Business Intelligence et le Reporting qui a créé le projet Open Source BIRT

Plus en détail

Cours Bases de données

Cours Bases de données Informations sur le cours Cours Bases de données 9 (10) séances de 3h Polycopié (Cours + TD/TP) 3 année (MISI) Antoine Cornuéjols www.lri.fr/~antoine antoine.cornuejols@agroparistech.fr Transparents Disponibles

Plus en détail

IBM Business Process Manager

IBM Business Process Manager IBM Software WebSphere Livre blanc sur le leadership en matière d innovation IBM Business Process Manager Une plateforme de BPM complète, unifiée et facilement adaptable aux projets et aux programmes d

Plus en détail

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril 2010 1 / 15

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril 2010 1 / 15 MapReduce Malo Jaffré, Pablo Rauzy ENS 16 avril 2010 Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril 2010 1 / 15 Qu est ce que c est? Conceptuellement Données MapReduce est un framework de calcul distribué

Plus en détail

Conception Exécution Interopérabilité. Déploiement. Conception du service. Définition du SLA. Suivi du service. Réception des mesures

Conception Exécution Interopérabilité. Déploiement. Conception du service. Définition du SLA. Suivi du service. Réception des mesures Software propose une offre d intégration unique, qui apporte l équilibre parfait entre investissements et performances pour les entreprises qui doivent sans cesse améliorer leurs processus. Des caractéristiques

Plus en détail

ETUDE ET IMPLÉMENTATION D UNE CACHE L2 POUR MOBICENTS JSLEE

ETUDE ET IMPLÉMENTATION D UNE CACHE L2 POUR MOBICENTS JSLEE Mémoires 2010-2011 www.euranova.eu MÉMOIRES ETUDE ET IMPLÉMENTATION D UNE CACHE L2 POUR MOBICENTS JSLEE Contexte : Aujourd hui la plupart des serveurs d application JEE utilise des niveaux de cache L1

Plus en détail

Pentaho Business Analytics Intégrer > Explorer > Prévoir

Pentaho Business Analytics Intégrer > Explorer > Prévoir Pentaho Business Analytics Intégrer > Explorer > Prévoir Pentaho lie étroitement intégration de données et analytique. En effet, les services informatiques et les utilisateurs métiers peuvent accéder aux

Plus en détail

Mise en œuvre des serveurs d application

Mise en œuvre des serveurs d application Nancy-Université Mise en œuvre des serveurs d application UE 203d Master 1 IST-IE Printemps 2008 Master 1 IST-IE : Mise en œuvre des serveurs d application 1/54 Ces transparents, ainsi que les énoncés

Plus en détail

CAHIER DES CHARGES D IMPLANTATION

CAHIER DES CHARGES D IMPLANTATION CAHIER DES CHARGES D IMPLANTATION Tableau de diffusion du document Document : Cahier des Charges d Implantation EVRP Version 6 Etabli par DCSI Vérifié par Validé par Destinataires Pour information Création

Plus en détail

Présentation Alfresco

Présentation Alfresco Présentation d un CMS : Alfresco Présentation Alfresco Ludovic Plantin, Frédéric Sénèque, Xu Zhao Polytech Grenoble Décembre 2008 Plantin, Sénèque, Xu (Polytech) Présentation Alfresco Décembre 2008 1 /

Plus en détail

Machines virtuelles. Brique ASC. Samuel Tardieu sam@rfc1149.net. Samuel Tardieu (ENST) Machines virtuelles 1 / 40

Machines virtuelles. Brique ASC. Samuel Tardieu sam@rfc1149.net. Samuel Tardieu (ENST) Machines virtuelles 1 / 40 Machines virtuelles Brique ASC Samuel Tardieu sam@rfc1149.net École Nationale Supérieure des Télécommunications Samuel Tardieu (ENST) Machines virtuelles 1 / 40 Machines virtuelles La compilation peut

Plus en détail

Cours 7 : Utilisation de modules sous python

Cours 7 : Utilisation de modules sous python Cours 7 : Utilisation de modules sous python 2013/2014 Utilisation d un module Importer un module Exemple : le module random Importer un module Exemple : le module random Importer un module Un module est

Plus en détail

ArcGIS 10 Christophe Tourret Gaëtan Lavenu

ArcGIS 10 Christophe Tourret Gaëtan Lavenu ArcGIS 10 Christophe Tourret Gaëtan Lavenu ArcGIS 10 Bureautique Web Mobile 10 9.3.1 Online/Cloud Serveur 9.0 9.1 9.2 9.3 Projets ArcGIS 10 Imagerie Partage Productivité Gestion des données Temporalité

Plus en détail

Introduction aux Bases de Données Relationnelles Conclusion - 1

Introduction aux Bases de Données Relationnelles Conclusion - 1 Pratique d un : MySQL Objectifs des bases de données Où en sommes nous? Finalement, qu est-ce qu un? Modèle relationnel Algèbre relationnelle Conclusion SQL Conception et rétro-conception Protection de

Plus en détail

Programmation parallèle et distribuée (Master 1 Info 2015-2016)

Programmation parallèle et distribuée (Master 1 Info 2015-2016) Programmation parallèle et distribuée (Master 1 Info 2015-2016) Hadoop MapReduce et HDFS Note bibliographique : ce cours est largement inspiré par le cours de Benjamin Renaut (Tokidev SAS) Introduction

Plus en détail

Méthode de Test. Pour WIKIROUTE. Rapport concernant les méthodes de tests à mettre en place pour assurer la fiabilité de notre projet annuel.

Méthode de Test. Pour WIKIROUTE. Rapport concernant les méthodes de tests à mettre en place pour assurer la fiabilité de notre projet annuel. Méthode de Test Pour WIKIROUTE Rapport concernant les méthodes de tests à mettre en place pour assurer la fiabilité de notre projet annuel. [Tapez le nom de l'auteur] 10/06/2009 Sommaire I. Introduction...

Plus en détail

Logiciel Libre Cours 3 Fondements: Génie Logiciel

Logiciel Libre Cours 3 Fondements: Génie Logiciel Logiciel Libre Cours 3 Fondements: Génie Logiciel Stefano Zacchiroli zack@pps.univ-paris-diderot.fr Laboratoire PPS, Université Paris Diderot 2013 2014 URL http://upsilon.cc/zack/teaching/1314/freesoftware/

Plus en détail

SysFera. Benjamin Depardon

SysFera. Benjamin Depardon SysFera Passage d applications en SaaS Benjamin Depardon CTO@SysFera SysFera Technologie 2001 Création 2010 Spin Off INRIA Direction par un consortium d investisseurs 12 personnes 75% en R&D Implantation

Plus en détail

Intervenants. Thomas d'erceville Project Manager. Christian NGUYEN Practice Manager IT Quality

Intervenants. Thomas d'erceville Project Manager. Christian NGUYEN Practice Manager IT Quality Intervenants Thomas d'erceville Project Manager Christian NGUYEN Practice Manager IT Quality 2 14/04/2015 De l'assurance qualité à l'ingénierie des tests logiciels 1. Contexte général des tests mobiles

Plus en détail

WINDOWS Remote Desktop & Application publishing facile!

WINDOWS Remote Desktop & Application publishing facile! Secure Cloud & Solutions Accès BOYD CLOUD acces informatiques & BYOD sécurisé MYRIAD-Connect facilite votre travail en tous lieux et à tous moments comme si vous étiez au bureau. Conçu pour vous simplifier

Plus en détail

Suite Jedox La Business-Driven Intelligence avec Jedox

Suite Jedox La Business-Driven Intelligence avec Jedox Suite La Business-Driven Intelligence avec Une solution intégrée pour la simulation, l analyse et le reporting vous offre la possibilité d analyser vos données et de gérer votre planification selon vos

Plus en détail

D une part, elles ne peuvent faire table rase de la richesse contenue dans leur système d information.

D une part, elles ne peuvent faire table rase de la richesse contenue dans leur système d information. PACBASE «Interrogez le passé, il répondra présent.». Le Module e-business Les entreprises doivent aujourd hui relever un triple défi. D une part, elles ne peuvent faire table rase de la richesse contenue

Plus en détail

Perl Console. Votre compagnon pour développer en Perl. Les Journées du Perl 2007 16, 17 novembre, Lyon. Alexis Sukrieh <sukria@sukria.

Perl Console. Votre compagnon pour développer en Perl. Les Journées du Perl 2007 16, 17 novembre, Lyon. Alexis Sukrieh <sukria@sukria. Perl Console Votre compagnon pour développer en Perl Les Journées du Perl 2007 16, 17 novembre, Lyon Alexis Sukrieh Plan Pourquoi une console? Le modèle «Read-Eval-Print-Loop» Dépendances

Plus en détail

Introduction à l informatique en BCPST

Introduction à l informatique en BCPST Introduction à l informatique en BCPST Alexandre Benoit BCPST L informatique en BCPST «L enseignement de l informatique en classes préparatoires de la filière BCPST a pour objectif d introduire puis de

Plus en détail

les techniques d'extraction, les formulaires et intégration dans un site WEB

les techniques d'extraction, les formulaires et intégration dans un site WEB les techniques d'extraction, les formulaires et intégration dans un site WEB Edyta Bellouni MSHS-T, UMS838 Plan L extraction des données pour un site en ligne Architecture et techniques Les différents

Plus en détail

Eric Bertrand ebertrand@ixis-cib.com. 08/11/06 Maître de conférence 1

Eric Bertrand ebertrand@ixis-cib.com. 08/11/06 Maître de conférence 1 Calcul parallèle des options MC. Eric Bertrand ebertrand@ixis-cib.com 1 Plan Contexte du calcul parallèle Qualités requises Architecture Outillage Problèmes rencontrés perspectives 2 Contexte du calcul

Plus en détail

PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN

PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN 1. DÉVELOPPEMENT D'APPLICATION (CONCEPTEUR ANALYSTE) 1.1 ARCHITECTURE MATÉRIELLE DU SYSTÈME INFORMATIQUE 1.1.1 Architecture d'un ordinateur Processeur,

Plus en détail

Nouveautés Ignition v7.7

Nouveautés Ignition v7.7 ... Nouveautés Ignition v7.7 Nouveautés Ignition v7.7 Découvrez le Nouveau Scada avec plus de 40 nouveautés Principales nouveautés :... Cloud Templates Template Repeater Client Multilingue + Sequential

Plus en détail

The Mozilla Art Of War. David Teller. 20 septembre 2008. Laboratoire d Informatique Fondamentale d Orléans. La sécurité des extensions.

The Mozilla Art Of War. David Teller. 20 septembre 2008. Laboratoire d Informatique Fondamentale d Orléans. La sécurité des extensions. The Mozilla Art Of War Laboratoire d Informatique Fondamentale d Orléans 20 septembre 2008 Firefox, c est sûr Firefox, c est sûr Donc je vais faire mes extensions sous Firefox, elles seront en sécurité.

Plus en détail

Livre blanc. Value VDI : les avantages de la virtualisation de bureau fondée sur la valeur

Livre blanc. Value VDI : les avantages de la virtualisation de bureau fondée sur la valeur Livre blanc Value VDI : les avantages de la virtualisation de bureau fondée sur la valeur Erik Willey 17.10.2014 RÉSUMÉ : Ce document examine les éléments de base de la VDI, de quelle manière les solutions

Plus en détail

Hadoop, Spark & Big Data 2.0. Exploiter une grappe de calcul pour des problème des données massives

Hadoop, Spark & Big Data 2.0. Exploiter une grappe de calcul pour des problème des données massives Hadoop, Spark & Big Data 2.0 Exploiter une grappe de calcul pour des problème des données massives Qui suis-je? Félix-Antoine Fortin Génie info. (B. Ing, M. Sc, ~PhD) Passionné de Python, Data Analytics,

Plus en détail

Modèle de cahier des charges pour un appel d offres relatif à une solution de gestion des processus métier (BPM)

Modèle de cahier des charges pour un appel d offres relatif à une solution de gestion des processus métier (BPM) LA BOITE A OUTILS DE L ACHETEUR DE BPM Modèle de cahier des charges pour un appel d offres relatif à une solution de gestion des processus métier (BPM) La boîte à outils de l acheteur de solution BPM -

Plus en détail

Gestion d identités PSL Exploitation IdP Authentic

Gestion d identités PSL Exploitation IdP Authentic Gestion d identités PSL Exploitation IdP Authentic Entr ouvert SCOP http ://www.entrouvert.com Table des matières 1 Arrêt et démarrage 2 2 Configuration 2 2.1 Intégration à la fédération............................

Plus en détail

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java Langages objets Introduction M2 Pro CCI, Informatique Emmanuel Waller, LRI, Orsay présentation du module logistique 12 blocs de 4h + 1 bloc 2h = 50h 1h15 cours, 45mn exercices table, 2h TD machine page

Plus en détail

Les clusters Linux. 4 août 2004 Benoît des Ligneris, Ph. D. benoit.des.ligneris@revolutionlinux.com. white-paper-cluster_fr.sxw, Version 74 Page 1

Les clusters Linux. 4 août 2004 Benoît des Ligneris, Ph. D. benoit.des.ligneris@revolutionlinux.com. white-paper-cluster_fr.sxw, Version 74 Page 1 Les clusters Linux 4 août 2004 Benoît des Ligneris, Ph. D. benoit.des.ligneris@revolutionlinux.com white-paper-cluster_fr.sxw, Version 74 Page 1 Table des matières Introduction....2 Haute performance (High

Plus en détail

Modernisation et gestion de portefeuilles d applications bancaires

Modernisation et gestion de portefeuilles d applications bancaires Modernisation et gestion de portefeuilles d applications bancaires Principaux défis et facteurs de réussite Dans le cadre de leurs plans stratégiques à long terme, les banques cherchent à tirer profit

Plus en détail

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines) Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines) Module 1 : Programmer une application informatique Durée

Plus en détail

SQL Server Installation Center et SQL Server Management Studio

SQL Server Installation Center et SQL Server Management Studio SQL Server Installation Center et SQL Server Management Studio Version 1.0 Grégory CASANOVA 2 SQL Server Installation Center et SQL Server Management Studio [03/07/09] Sommaire 1 Installation de SQL Server

Plus en détail

La tête dans les nuages

La tête dans les nuages 19 novembre 2010 La tête dans les nuages Démystifier le "Cloud Computing" Jean Bernard, Directeur, Gestion des services Radialpoint SafeCare Inc. Au sujet de Radialpoint Radialpoint offre des solutions

Plus en détail

ARCHITECTURE ET SYSTÈMES D'EXPLOITATIONS

ARCHITECTURE ET SYSTÈMES D'EXPLOITATIONS ARCHITECTURE ET SYSTÈMES D'EXPLOITATIONS Axel François bureau C19 (2eme étage) cours disponibles en pdf sur : www.iut-arles.up.univ-mrs.fr/francois 1 PLAN En Cours : qu'est-ce qu'un ordinateur? à quoi

Plus en détail

Développer des Applications Internet Riches (RIA) avec les API d ArcGIS Server. Sébastien Boutard Thomas David

Développer des Applications Internet Riches (RIA) avec les API d ArcGIS Server. Sébastien Boutard Thomas David Développer des Applications Internet Riches (RIA) avec les API d ArcGIS Server Sébastien Boutard Thomas David Le plan de la présentation Petit retour sur les environnements de développement ArcGIS Server

Plus en détail

DESCRIPTIF DES PROJETS 3EME ANNEE QUI SERONT PRESENTES LORS DE LA JOURNEE DE PROJET DE FIN D ETUDE LE 26/01/2012

DESCRIPTIF DES PROJETS 3EME ANNEE QUI SERONT PRESENTES LORS DE LA JOURNEE DE PROJET DE FIN D ETUDE LE 26/01/2012 DA Télémédecine et SI de Santé DESCRIPTIF DES PROJETS 3EME ANNEE QUI SERONT PRESENTES LORS DE LA JOURNEE DE PROJET DE FIN D ETUDE LE 26/01/2012 PROJET N 1 : IMPLEMENTATION D'UNE INTERFACE SWEETHOME DEDIEE

Plus en détail

IBM Tivoli Monitoring, version 6.1

IBM Tivoli Monitoring, version 6.1 Superviser et administrer à partir d une unique console l ensemble de vos ressources, plates-formes et applications. IBM Tivoli Monitoring, version 6.1 Points forts! Surveillez de façon proactive les éléments

Plus en détail

S7 Le top 10 des raisons d utiliser PHP pour moderniser votre existant IBM i

S7 Le top 10 des raisons d utiliser PHP pour moderniser votre existant IBM i Modernisation IBM i Nouveautés 2014-2015 IBM Power Systems - IBM i 19 et 20 mai 2015 IBM Client Center, Bois-Colombes S7 Le top 10 des raisons d utiliser PHP pour moderniser votre existant IBM i Mardi

Plus en détail

Pourquoi utiliser SharePoint?

Pourquoi utiliser SharePoint? Pourquoi utiliser SharePoint? Partage de Fichiers Accès distant aux informations Mise à jour permanente Gestion électronique de documents (GED) Notifications / Alertes Workflow / Flux de travail Extranet

Plus en détail

DOSSIER SOLUTION CA ERwin Modeling. Comment gérer la complexité des données et améliorer l agilité métier?

DOSSIER SOLUTION CA ERwin Modeling. Comment gérer la complexité des données et améliorer l agilité métier? DOSSIER SOLUTION CA ERwin Modeling Comment gérer la complexité des données et améliorer l agilité métier? CA ERwin Modeling fournit une vue centralisée des définitions de données clés afin de mieux comprendre

Plus en détail

Séminaire Partenaires Esri France 6 et 7 juin 2012 Paris. ArcGIS et le Cloud. Gaëtan LAVENU

Séminaire Partenaires Esri France 6 et 7 juin 2012 Paris. ArcGIS et le Cloud. Gaëtan LAVENU Séminaire Partenaires Esri France 6 et 7 juin 2012 Paris ArcGIS et le Cloud Gaëtan LAVENU Agenda Qu'attendent nos clients du Cloud Computing? Les solutions de Cloud ArcGIS dans le Cloud Quelles attendent

Plus en détail

Entrez dans l ère du Numérique Très Haut Débit

Entrez dans l ère du Numérique Très Haut Débit MIPE Juin 2012 - Nantes http://www.network-th.fr - 0811 560 947 1. Le Très Haut Débit sur Fibre Optique au prix d une SDSL : Mythe ou Réalité? 2. Sauvegarder, Sécuriser, Protéger, Superviser : Délégueznous

Plus en détail

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

INTERSYSTEMS CACHÉ COMME ALTERNATIVE AUX BASES DE DONNÉES RÉSIDENTES EN MÉMOIRE I N T E RS Y S T E M S INTERSYSTEMS CACHÉ COMME ALTERNATIVE AUX BASES DE DONNÉES RÉSIDENTES EN MÉMOIRE David Kaaret InterSystems Corporation INTERSySTEMS CAChé CoMME ALTERNATIvE AUx BASES de données RéSIdENTES

Plus en détail

GenDbg : un débogueur générique. Didier Eymery Jean-Marie Borello Jean-Marie Fraygefond Odile Eymery Philippe Bion

GenDbg : un débogueur générique. Didier Eymery Jean-Marie Borello Jean-Marie Fraygefond Odile Eymery Philippe Bion GenDbg : un débogueur générique Didier Eymery Jean-Marie Borello Jean-Marie Fraygefond Odile Eymery Philippe Bion 2008 Qui sommes nous? Centre d électronique de l Armement (CELAR) Maîtrise et protection

Plus en détail

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

Vérifier la qualité de vos applications logicielle de manière continue IBM Software Group Vérifier la qualité de vos applications logicielle de manière continue Arnaud Bouzy Kamel Moulaoui 2004 IBM Corporation Agenda Analyse de code Test Fonctionnel Test de Performance Questions

Plus en détail

LES SOLUTIONS OPEN SOURCE RED HAT

LES SOLUTIONS OPEN SOURCE RED HAT LES SOLUTIONS OPEN SOURCE RED HAT Red Hat, le fournisseur leader Linux et de l open source mondial a son siège à Raleigh, en Caroline du Nord, avec des bureaux dans le monde entier. Red Hat propose les

Plus en détail

MailStore Server 7 Caractéristiques techniques

MailStore Server 7 Caractéristiques techniques MailStore Server 7 Caractéristiques techniques MailStore Server La référence en matière d archivage d e-mails La solution MailStore Server permet aux entreprises de toutes tailles de bénéficier des avantages

Plus en détail

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

Informatique industrielle A7-19571 Systèmes temps-réel J.F.Peyre. Partie I : Introduction Informatique industrielle A7-19571 Systèmes temps-réel J.F.Peyre Partie I : Introduction Plan de la première partie Quelques définitions Caractéristiques communes des applications temps-réel Exemples d

Plus en détail

Dr.Web Les Fonctionnalités

Dr.Web Les Fonctionnalités Dr.Web Les Fonctionnalités Sommaire Poste de Travail... 2 Windows... 2 Antivirus pour Windows... 2 Security Space... 2 Linux... 3 Mac OS X... 3 Entreprise... 3 Entreprise Suite - Complète... 3 Entreprise

Plus en détail

Introduction à ORACLE WAREHOUSE BUILDER Cédric du Mouza

Introduction à ORACLE WAREHOUSE BUILDER Cédric du Mouza Introduction à ORACLE WAREHOUSE BUILDER Cédric du Mouza Avant de commencer à travailler avec le produit, il est nécessaire de comprendre, à un haut niveau, les problèmes en réponse desquels l outil a été

Plus en détail

Backup Exec 2010 vs. BackupAssist V6

Backup Exec 2010 vs. BackupAssist V6 Backup Exec 2010 vs. BackupAssist V6 Sommaire Introduction... 3 Tableau comparatif... 3 Installation et configuration... 7 Installation... 7 Configuration... 7 Fonctionnalités... 7 Sauvegarde... 7 Sauvegardes

Plus en détail