Rapport de veille. Utilisation du langage de programmation Python et de son écosystème dans le domaine de la science
|
|
- Paulette Bédard
- il y a 8 ans
- Total affichages :
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
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étailInstitut 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étailPré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 notre compétence d'éditeur à votre service créée en juin 2010, Scilab enterprises propose services et support autour
Plus en détailChapitre 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 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 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étailPoint 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étailLa 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étail4. 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étailMySQL. (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étailINTERNET 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étailFamille 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étailLimitations 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étailWindows 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étailRTDS 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étailIntroduction à 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étailIntroduction à. 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étailCNAM 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étailPython - 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étailEnvironnements 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étailPanorama 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étailFonctions. 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étailDevenez 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étailProgrammation 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étailChapitre 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étailSurvol 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étailTable 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étailTP1. 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étailINDUSTRIALISATION 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étail1 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étailDA 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étailINTRODUCTION 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 les activités en ligne évoluent rapidement... Il y a quelques années, les clients entraient timidement
Plus en détailL 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étailSilk 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étailWebSpy 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étailLes 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étailIntroduction. 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étailpythonocc: 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étail1 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étailCours 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étailIBM 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étailMapReduce. 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étailConception 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étailETUDE 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étailPentaho 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étailMise 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étailCAHIER 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étailPré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étailMachines 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étailCours 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étailArcGIS 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étailIntroduction 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étailProgrammation 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étailMé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étailLogiciel 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étailSysFera. 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étailIntervenants. 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étailWINDOWS 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étailSuite 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étailD 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étailPerl 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étailIntroduction à 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étailles 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étailEric 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étailPROGRAMME 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étailNouveauté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étailThe 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étailLivre 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étailHadoop, 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étailModè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étailGestion 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étailCours 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étailLes 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étailModernisation 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étailProgramme «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étailSQL 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étailLa 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étailARCHITECTURE 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étailDé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étailDESCRIPTIF 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étailIBM 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étailS7 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étailPourquoi 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étailDOSSIER 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étailSé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étailEntrez 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étailINTERSYSTEMS 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étailGenDbg : 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étailVé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étailLES 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étailMailStore 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étailInformatique 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étailDr.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étailIntroduction à 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étailBackup 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