24
http://dit.epfl.ch p/a EPFL - Domaine IT - CP 121 - CH 1015 Lausanne 15 - tél. +41 21 69 322 11 25.05.2010 5 tout public public averti expert Gagnez ce billet ! Actualités Web2010 Natalie Meystre, Pierre Mellier, Jérome Grosse 6 Echos du ForumIT de printemps Jacqueline Dousson 14 Secure-IT votre affaire Patrick Saladino 24 Analyse Mot-croisé: zéro Laurent Kling, Jacqueline Dousson & Anne-Sylvie Borter 1 Architecture humaine – architecture informatique Laurent Kling 3 Choix d’un framework – Django Gregory Favre 11 FlashiPhone – QR Code François Roulet 12 GPU, environnements de programmation CUDA Francis Lapique 19 Comment faire? myYMozilla Vittoria Rezzonico 8 Télérama François Roulet 15 Prochaines parutions No Délai de rédaction Parution 6 03.06.10 22.06.10 SP 01.07.10 31.08.10 7 02.09.10 21.09.10 Analyse Concours de la meilleure nouvelle tinyurl.com/fi-concours Zéro [email protected], illustratrice Laurent.Kling@epfl.ch, EPFL –STI, passionné par l'histoire des ordinateurs Jacqueline.Dousson@epfl.ch, EPFL-DIT, rédacteur FI .. /.. Suite page 2 Un mot: zéro — trois regards: in- formatique, historique et visuel. zéro binaire – LK Réduite à sa plus simple expression, l’in- formatique est construite autour du code binaire, composé de deux états, 0 et 1. Pour le zéro, le mathématicien va disser- ter sur sa propriété d’élément neutre pour l’addition et d’élément absorbant pour la multiplication, un programmeur en Pascal va peut-être considérer le 0 comme nil pour vérifier le contenu d’un pointeur. Dans le monde réel, la seule distinction entre 0 et 1 c’est deux états d’un élément matériel: z le courant passe, z la lumière est polarisée, z la capacité est chargée, z le changement de flux magnétique.

Flash informatique 2010 - no 5

  • Upload
    epfl

  • View
    226

  • Download
    5

Embed Size (px)

DESCRIPTION

journal informatique de l'Ecole Polytechnique Fédérale de Lausanne du 25 mai 2010

Citation preview

http://dit.epfl.ch

p/a EPFL - Domaine IT - CP 121 - CH 1015 Lausanne 15 - tél. +41 21 69 322 11

25.05.20105

tout public public averti expert

Gagnez ce billet !

ActualitésWeb2010

Natalie Meystre, Pierre Mellier,

Jérome Grosse 6

Echos du ForumIT de printemps

Jacqueline Dousson 14

Secure-IT votre affaire

Patrick Saladino 24

AnalyseMot-croisé: zéro

Laurent Kling, Jacqueline Dousson

& Anne-Sylvie Borter 1

Architecture humaine – architecture

informatique

Laurent Kling 3

Choix d’un framework – Django

Gregory Favre 11

FlashiPhone – QR Code

François Roulet 12

GPU, environnements de

programmation CUDA

Francis Lapique 19

Comment faire?myYMozilla

Vittoria Rezzonico 8

Télérama

François Roulet 15

Prochaines parutions

No Délai de rédaction Parution

6 03.06.10 22.06.10

SP 01.07.10 31.08.10

7 02.09.10 21.09.10

Analyse

Concours de la meilleure nouvelletinyurl.com/fi-concours

[email protected], [email protected], EPFL –STI, passionné par l'histoire des [email protected], EPFL-DIT, rédacteur FI

.. /.. Suite page 2

Un mot: zéro — trois regards: in-formatique, historique et visuel.

zéro binaire – LK

Réduite à sa plus simple expression, l’in-formatique est construite autour du code binaire, composé de deux états, 0 et 1.Pour le zéro, le mathématicien va disser-ter sur sa propriété d’élément neutre pour

l’addition et d’élément absorbant pour la multiplication, un programmeur en Pascal va peut-être considérer le 0 comme nil pour vérifier le contenu d’un pointeur. Dans le monde réel, la seule distinction entre 0 et 1 c’est deux états d’un élément matériel:z le courant passe,z la lumière est polarisée,z la capacité est chargée,z le changement de flux magnétique.

flash informatique22 25 MAI 2010 - N°5flash informatique

ImpressumLes articles ne reflètent que l’opinion de leurs auteurs. Toute reproduction, même partielle, n’est autorisée qu’avec l’accord de la rédaction et des auteurs. Abonnement à la version électronique du FI en envoyant un courrier à: [email protected]

Rédacteur en chef:Jacqueline Dousson, [email protected] en page & graphisme: Appoline Raposo de BarbosaComité de rédaction:Aristide Boisseau, Paulo de Jesus, Patrice Fumasoli, Jean-Damien Humair, Laurent Kling, Julia Paolini, Vittoria Rezzonico, François Roulet,

Christophe Salzmann, Predrag Viceic & Jacques VirchauxImpression: Atelier de Reprographie EPFLTirage: 4000 exemplairesAdresse Web: dit.epfl.ch/FI-spipAdresse: Domaine IT EPFLCP 121, CH-1015 Lausanne 15Téléphone: +4121 69 32246 & 32247

Mot-croisé: Zéro

C’est uniquement la convention qui décide l’état zéro dans ces dispositifs matériels, a priori il est difficile d’établir si un trou dans une carte ou un ruban perforé représente un 0 ou un 1.C’est souvent le choix du créateur de la technologie qui définit le un et son corollaire le zéro.Maintenant le nombre de zéros et de uns contenu dans les com-posants informatiques donne le tournis, un disque dur de 2 To comporte 8’796’093’022’208 informations binaires qui peuvent être des zéros ou des uns. Cette information est structurée sous la forme de secteurs et de pistes sur les deux faces de chaque plateau. De par sa nature physique, des défauts sont présents qui vont réduire la taille utile disponible pour les usagers. Au terme de sa vie, le disque dur va émettre un bruit de ferraille indiquant une capacité nulle !La mémoire dynamique doit être rafraîchie 156 fois par seconde, une étude particulièrement intéressante de Bianca Schroeder de l’université de Toronto avec des ingénieurs de Google devrait nous conduire à n’utiliser que de la mémoire avec parité: http://www.cs.toronto.edu/~bianca/papers/sigmetrics09.pdf.Sur un parc de la taille de Google, 8% des barrettes mémoire pré-sentent 3’700 erreurs par année. Un autre élément intéressant de cette étude est que le nombre d’erreurs n’est pas affecté par la température mais que la charge elle, y est liée; finalement qu’une erreur corrigeable précède souvent une erreur définitive !Malheureusement, de nombreux ordinateurs ne possèdent pas de correction d’erreurs ECC sur leur DRAM laissant supposer que les résultats de nos calculs peuvent être erronés. Encore un zéro pointé pour les concepteurs pour ne pas avoir tenu compte de la réalité statistique.

sifr – JD

Pour trouver l’origine du zéro, il faut regarder du côté de l’Inde. Très tôt, sans doute quelques siècles avant notre ère, les Indiens ont inventé une numérotation à neuf chiffres (sans le zéro); ils plaçaient les neuf chiffres dans des colonnes correspondant à leur ordre décimal; au début cela se faisait par terre, en traçant les chiffres dans des colonnes dessinées dans la poussière du sol, un espace vide signifiant l’absence d’unité dans cet ordre. Quelques siècles plus tard, vers le 4ème siècle, les arithméticiens indiens ont ressenti la nécessité d’inscrire ces chiffres sur un support durable, une feuille de palmier par exemple tout en faisant abstraction des colonnes; il fallut alors créer un signe pour marquer l’absence

d’unité pour un certain ordre décimal. Pour les Indiens, cette ab-sence évoquait le ciel; la voûte céleste est souvent représentée par un demi-cercle ou un cercle entier, et voilà notre zéro in-venté. Avec ce concept, les savants indiens ont permis l’arrivée de l’arithmétique moderne, et c’est la seule civilisation qui a fait cette découverte majeure.Mais il fallu beaucoup de temps pour que le zéro parvienne jusqu’à nous. De nombreux échanges entre Arabes et Indiens ont eu lieu dès le 8ème siècle; les savants arabes se sont ainsi formés à l’as-tronomie indienne et en même temps à la numérotation qu’ils ont adoptée, et voilà le zéro du côté du Moyen-Orient et du Maghreb et bien sûr de l’Andalousie. Mais ce n’est qu’au 12ème siècle que l’Europe latine prit vraiment connaissance des oeuvres des savants arabes; de nombreux érudits les ont traduits et malgré la résis-tance des clercs attachés à l’ancienne numérotation en chiffres romains, les nouvelles méthodes de calcul basées sur la numéro-tation arabe, les neuf chiffres et le zéro, firent de plus en plus de disciples, en tout cas du côté des savants et des scientifiques, les algoristes (du nom de Al Khuwarizmi, auteur du 9ème siècle de livres célèbres sur l’arithmétique). Les commerçants et les ban-quiers ont continué à utiliser les abaques archaïques, que la Révo-lution française a interdit dans les écoles!Les Arabes avaient nommé le zéro: sifr, en reprenant l’idée de vacuité exprimée par le mot sanskrit Shûnya; en Europe, le nom a été latinisé, il est devenu zephirum en Italie, qui donnera zefiro puis zéro. Le même mot sifr a donné également naissance au mot français chiffre. Mais c’est une tout autre histoire!

(très largement inspiré de l’Histoire universelle des chiffres, de G. Ifrah - Bouquins) n

Une dette moins zéro est une dette.Un bien moins zéro est un bien.Zéro moins zéro est nul.Une dette retranchée de zéro est un bien.,Alors qu'un bien retranché de zéro est une dette.

(Bâhmasphutasiddhânta, en 628 ap. J.-C.)

25 MAI 2010 - N°5 3

Technical choices for a human organization, the specific case of datastoring for the School of En-gineering.

Choix techniques pour une organisation humaine; le cas spécifique de stockage de données pour la faculté STI.

La civilisation moderne, notre architec-ture humaine

Il y a 5000 ans, nous sommes entrés dans le monde moderne, un état centralisé avec ses corollaires: l’impôt, l’administration et les fonctionnaires. Les habitants de la Mésopotamie ont large-ment eu le temps de remplir le courrier des lecteurs sous la forme de tablettes d’argile écrites en cunéiforme pour se plaindre du manque de respect des jeunes générations et du poids écrasant de la fiscalité. Actuellement, malgré les dorures de la technologie de l’infor-mation nous sommes tributaires de principes d’organisation qui commencent par la constitution, se prolongent par les lois et finalement sont mis en œuvre par les processus administratifs.

Musée du Louvre – la stèle du Code de Hammurabi (1792-1750 av. J.-C.) qui repré-sente le recueil juridique le plus complet de l’Antiquité avant l’Ancien Testament. ©rezasetoodeh

Pour un chercheur de l’EPFL, cette organisation est scellée dans une hiérarchie à cinq niveaux: EPFL Faculté Institut Laboratoire IndividuGardiens du temple, prêtres contemporains, les accréditeurs sui-vent les saintes Écritures pour que chacun trouve sa place. Comme reflet de la complexité actuelle, nos rattachements peuvent être multiples. Pour l’individu, l’informatique moderne représente un moyen extraordinaire de multiplier les canaux de communication et permet à chacun d’être son propre démiurge dans sa repré-sentation du monde. Dans une ivresse passagère, on peut même imaginer que ces technologies nous sont offertes sans effort. En pratique, c’est bien l’interconnexion des systèmes qui autorise la production de ces services, le Web étant une fenêtre sur des uni-vers parallèles interconnectés.

Architecture informatique, choix ou héri-tage

Naïvement, nous imaginons que les choix techniques sont tou-jours issus de réflexions profondes qui tiennent compte des futurs possibles, en pratique la réalité est plus prosaïque, par exemple le nombre de pixels de votre écran.À la fin des années 1980, la résolution de votre écran d’ordinateur pouvait être de 640 pixels sur 480 pixels, le standard VGA, ensuite il a été possible d’atteindre 800 x 600 pixels.

SXGA1280 x 1024

QSXGA2560 x 2048

QVGA320 x 240

1280 x 960

VGA640 x 480

PAL768 x 576

SVGA800 x 600

XGA1024 x 768

SXGA+1400 x 1050

UXGA1600 x 1200

QXGA2048 x 1536

NTSC720 x 480

1152 x 768

1440 x 960

1440 x 900

CGA320 x 200

WQXGA2560 x 1600

1366 x 768

WXGA1280 x 768

WSVGA1024 x 600

HD 7201280 x 720

WUXGA1920 x 1200

HD 10801920 x 1080

WVGA800 x 480

WVGA854 x 480

1280 x 854

4:3

3:2

5:3

WXGA1280 x 800 WSXGA+

1680 x 1050

2K2048 x 1080

17:9

5:4

8:5(16:10)

16:9

Résolutions d’écrans – en.wikipedia.org/wiki/File:Vector_Video_Standards2.svg

Si le rapport entre largeur et hauteur semble familier (4/3 comme dans nos anciens tubes cathodiques de télévision) pourquoi 640 ou 800 pixels de largeur (5 x 27 et 52 x 25) ?

Architecture humaine – architecture [email protected] – STI, coordinateur informatique à la faculté

Analyse

flash informatique44 25 MAI 2010 - N°5flash informatique 25 MAI 2010 - N°5

Dans un premier temps, on peut revenir à l’histoire de l’informa-tique et se souvenir des terminaux alphanumériques qui présen-taient 80 caractères de largeur, ce qui explique la similitude entre 640 (8 x 80) et 800 (10 x 80).Le mystère reste entier sur l’origine de 80 ? :z société secrète,z numérologie,z astrologie,z créationnisme.Pour trouver la réponse, il faut remonter à la protohistoire de l’in-formatique. En 1880, le bureau du recensement aux États-Unis procéda à sa dernière opération de traitement manuel de don-nées, pour celui de 1890, il organisa un concours pour définir la méthode automatisée la plus adaptée à une population répartie sur un continent.

Machine de Holerith – www.columbia.edu/acis/history/tabulator.html

Pour gagner le concours, Herman Hollerith réinventa la carte per-forée avec la mise au point des machines qui permettent de trier les cartons, son entreprise fut Tabulating Machine Co ancêtre d’IBM. En 1928 le format de 80 colonnes fut standardisé, qui sans le savoir allait engendrer 60 ans plus tard la dimension de nos écrans.

Carte perforée de 80 colonnes

Un autre élément important à prendre en considération la forme du pixel, carré ou rectangulaire? Le Lisa d’Apple possédait des pixels oblongs. Pour pouvoir transposer la vision de son écran sur le papier un rapport de forme 1 :1 est nécessaire. En 1984 le Ma-cintosh utilisa 3 éléments fondateurs de la typographie moderne WYSIWYG (what you see is what you get):z un pixel carré,z une résolution de 72 dpi équivalente au point de l’imprimerie

anglo-saxonne,z la technologie Postscript sur son imprimante LaserWriter.

Signe d’un choix délibéré, l’imprimante à aiguille ImageWritter avait également 72 et 144 dpi de résolution. Le même type de dé-cision consciente et audacieuse est apparu en 1987 avec le Mac II, une description de la couleur sur 48 bits. Naturellement, ce fut sur cette plate-forme Macintosh que fut bâti Photoshop !

Architecture informatique en pratique, choix ou héritage ?

Maintenant, les usagers peuvent accéder à trois types de services :

Universels organisés autour de l’individu comme Gmail, Facebook…Corollaire du Web 2.0, ces outils ont plusieurs points en commun :z l’utilisation du réseau Internet,z une dématérialisation pour l’usager,z un accès personnel direct.A priori, on pourrait penser que cette méthode est la panacée, la disponibilité immédiate des données et de l’application peut être séduisante.Il existe quand même des bémols à ce monde enchanté :z la nécessité de disposer un accès à Internet,z la perte du contrôle sur les données,z le besoin de recréer son réseau social dans chaque outil.Si on désire bâtir son architecture informatique autour des ser-vices universels, reste le problème de la communication entre ces outils, ce sont encore des îlots isolés sur l’océan des données.

Organisés autour des métiersIl peut être tentant de simplifier l’informatique dans une vision unique, une métaphore de la tour de Babel (un rapport direct avec l’origine de notre civilisation, Babylone est Babel pour les Hébreux).Auparavant, je me suis intéressé à la représentation du bâtiment sous forme de modèle, en particulier pour définir un langage commun à sa conceptualisation. Un chercheur d’IBM Yorktown Heights suivit un séminaire organisé sur cette thématique, na-turellement nous lui posâmes la question subsidiaire de savoir si une telle représentation unique était possible, sa réponse fut laco-nique, non, pas à sa connaissance, mais le sujet est intéressant !Cette question était déjà résolue dans la pratique:z l’architecte dessine les plans du bâtiment,z sur cette base, chaque corps de métier redessine selon la vi-

sion de son métier.Naturellement, le résultat est différent, par exemple le plan de l’architecte représente une hypothétique coupe des murs à hau-teur variable avec la dalle sous ses pieds. Un ingénieur civil va, lui, dessiner les dalles avec les murs en dessous pour la descente de charge. L’électricien va dessiner un plan de la dalle avec simulta-nément les canalisations électriques du plafond (sous ses pieds) et des amenées dans le mur (au-dessus).Le rêve d’un modèle unique regroupant toutes ces visions s’écroule, il ne reste que les métiers.Le corollaire d’un métier est que les outils s’adressent à des spé-cialistes, expliquant peut-être la difficulté de le transcrire dans un langage compréhensible à tous. À chaque déclaration d’im-pôt (toujours un héritage de Sumer), nous hésitons sur les ru-

Architecture humaine – architecture informatique

25 MAI 2010 - N°5 5525 MAI 2010 - N°5

briques à remplir malgré une application Java particulièrement bien écrite.

Dicté par la technologiePour reprendre notre exemple historique de 1987, il est paradoxal de constater la divergence de vues sur les performances d’un affichage couleur pour un ordinateur:

Apple Mac II IBM PC

Résolution 1152 x 870 72 dpi

640 x 480de 60 à 110 dpi

Couleurs 16 Millions 16 parmi 256

Méthode 3 x 8 Bit DAC mappe de couleur (lookup table) x 3 DAC

API Programmation 3 x 16 Bit directe

À l’époque, l’idée de décrire une couleur sur 48 bits paraissait folle. Dans le même ordre d’idée, Steve Balmer, patron de Microsoft dé-clarait le 22 septembre 2007 que l’iPhone était ridicule: «un té-léphone de 500$, le téléphone le plus cher du marché qui ne peut intéresser un client commercial, car il ne dispose pas d’un clavier…» www.youtube.com/v/So7qrFO_p44.Maintenant, même chez les plus fervents défenseurs de Microsoft on peut constater le nombre de personnes qui sont tombées dans cette folie.

Fichiers sécurisés, service universel, mé-tier ou technologique ?

Confronté aux besoins de disposer d’un espace de fichiers sécu-risés pour la faculté STI en 2005, j’ai envisagé différentes possi-bilités d’implémentation, rapidement une série de constantes ont émergé:z un usager est toujours inscrit dans une logique administrative:

ses accréditations,z son travail est lié à l’unité à laquelle il est rattaché,z par nature un scientifique aime communiquer avec ses collè-

gues,z il aime disposer d’un espace propre,z chaque changement d’affectation est une autre vie.Comme point de départ de l’organisation logique, le choix s’est rapidement porté sur un mimétisme avec les structures de l’EPFL, dans ce sens, ce service est métier, car propre à notre hiérarchie.Rationnellement, j’ai envisagé l’utilisation d’un service univer-sel dématérialisé, mais la perte du contrôle sur les données et la proximité immédiate d’une infrastructure très performante avec un degré de sécurité très élevé a éliminé cette hypothèse.

Limites technologiquesSur le plan humain, l’organisation sociale est un élément préa-lable, notre action dans le quotidien s’inscrit dans un cadre défini. Naturellement, on peut opposer à ce principe d’organisation l’anarchie, une forme de gouvernement sans maître ni souverain.Sans évoquer un débat entre ces deux formes d’organisation de la société et des utopies qui en découlent, il est intéressant d’envisa-ger le problème selon les deux bouts de la lorgnette:

HumaineUsager = besoin = service {dans une organisation définie}

TechnologiqueTechnologie = outil > service ≈ besoin > usager {dans une orga-nisation définie}

En pratique l’écueil technologique le plus important n’est pas tech-nique, mais humain, rendre invisible la technologie sous-jacente. Il paraîtrait incongru de demander à quelqu’un qui branche une prise électrique de comprendre l’organisation interne de l’infras-tructure. Pourtant, pour accéder à des ressources informatiques c’est le gymkhana qu’on demande aux usagers.Tout principe d’organisation se heurte à des limites d’implémen-tation, rares sont les entreprises qui comme Apple définissent un cadre audacieux. Pour un espace de fichiers, la principale limite est la taille du volume et celle-ci est rarement infinie. Il reste à trouver le dénominateur commun entre technologie et organisation.

À platCette méthode semble évidente par son apparente simplicité, elle est parfaitement adaptée à un individu cueilleur de technologie. La difficulté réside dans sa réalisation, avec un grand nombre d’usagers (> 1000) la taille du volume devient ingérable pour la sauvegarde. Il faut diviser pour régner en répartissant les usagers par groupe !La définition des groupes tient de l’alchimie pour les usagers :z avoir un identifiant numérique unique, le SCIPER,z prendre le dernier chiffre comme séparateur de groupe, six

pour moi,z créer 10 serveurs de fichier (de 0 à 9),z créer 10 volumes (de 0 à 9),z avoir un identifiant alphanumérique, par exemple kling.Et combiner le tout pour obtenir le chemin d’accès, le mien sera smb://files6/dit-file6/data/kling. Pour mon collègue, la gymnas-tique est: smb://files2/dit-files2/data/ulrich.

HiérarchiqueLe problème est le même dans une organisation humaine, il faut définir des groupes avec une pierre de Rosette implicite, la hié-rarchie: EPFL Faculté = STI Institut = STI-SG Laboratoire = STI-IT Individu = klingLa combinaison du tout:

Pour moi smb://stisrv/sti-sg/sti-it/kling

Pour mon collègue smb://stisrv/sti-sg/sti-it/ulrich

Notre dossier commun de l’unité

smb://stisrv/sti-sg/sti-it/commun

Notre dossier commun de l’institut

smb://stisrv/sti-sg/commun

Sur le plan technique, la hiérarchie se confond avec l’infrastruc-ture, c’est l’institut qui définit le volume.

Architecture humaine – architecture informatique

flash informatique66 25 MAI 2010 - N°5flash informatique

Services en parallèle

Les usagers possèdent 2 types de données:z travail,z privé.Pour permettre de répondre à toutes les demandes, les usagers de la Faculté STI possèdent maintenant deux espaces sécurisés:

Travail 20 Go par usager

stisrv hiérarchique conserver au départ de l’unité

Privé 10 Go par usager

files[0..9] à plat effacer au départ de l’EPFL

Il faut veiller à ce que les fichiers privés ne contaminent pas les espaces de travail communs ou nominatifs et que les documents de travail ne s’égarent pas dans l’espace privé car ils seront im-manquablement perdus.

Conclusion, un monde en constante muta-tion

Régulièrement, il faut transvaser les données entre infrastruc-tures. Malgré une planification et des tests préalables, il arrive qu’un incident se glisse dans le processus.Le lundi de Pâques 5 avril 2010, à la fin de la migration des don-nées de travail entre deux infrastructures de stockage, il est apparu un phénomène fâcheux, les utilisateurs possédaient l’ensemble de leurs droits et pouvaient travailler, mais la hiérarchie était figée !Après investigations, il est apparu qu’une étape dans la migration demandait de ne pas avoir d’observateur extérieur, un paradoxe digne du chat de Schrödinger.Je remercie Aristide Boisseau et Lucien Chaboudez du DIT avec l’assistance d’Olivia Smith d’EMC d’avoir pu résoudre ce problème sans interrompre le service.Ces transferts entre infrastructures vont certainement se géné-raliser et peut-être un jour l’informatique arrivera au degré de maturité qu’a atteint notre alimentation électrique.Quand on branche un appareil sur une prise 230V, il nous apparaît naturel de disposer immédiatement de l’énergie souhaitée, nous n’imaginons pas l’interconnexion des réseaux électriques à haute tension et leurs équilibrages.On peut espérer qu’un jour les usagers disposeront de services informatiques génériques où la quincaillerie ne sera plus visible. n

Architecture humaine…

Next summer, EPFL Web sites will be greatly trans-formed. Here are the milestones of this major change.

Cet été, les sites Web de l’EPFL von connaître une transformation majeure. Voici les différentes étapes de cette mue.

Planning de mise en route

L’objectif de Web2010 est de transformer et d’améliorer le design et la technologie utilisés sur les principaux sites Web de l’EPFL. Son but est de transformer le domaine .epfl.ch (environ 1’500 sites, 2 millions de pages) en un outil de communication à la hau-teur des besoins et de l’image de l’institution. Web2010 s’articule en 4 pôles: z présentation de l’information (graphisme – cohérence de

l’image – lisibilité…);z organisation de l’information (ergonomie – navigation – mise

en page des éléments…);z révision du contenu (intranet versus internet – traduction –

contenus obsolètes …);z mise à jour des technologies (homepage, CMS, outil actu, RSS,

outils sociaux, accessibilité - statistiques…).A cette occasion, le CMS (Content Manager System) Jahia4 bénéficiera d’une importante mise à jour. Une moitié environ des sites de l’EPFL utilisent actuellement cet outil, alors que les autres employent d’autres techniques et parfois d’autres présentations graphiques qui nuisent à la reconnaissance et à la force de l’image de l’institution. Le passage des sites actuels sur la nouvelle charte graphique a également l’ambition de mettre à jour les contenus de ces sites, et de se débarrasser de l’information obsolète, redon-dante ou inutilement dupliquée. Les changements portent donc autant sur l’aspect visuel des sites (graphisme) que sur la mise en place d’une typologie de navigation commune (cohérence de navigation renforcée).Le KIS développe également un nouvel outil d’actualités scientifiques et académiques, qui facilitera la circulation des élé-ments d’informations quotidiens entre les labos, les instituts, les facultés, les portails et la page d’accueil EPFL. Cet outil sera à dis-position de toutes les unités:z Il permettra à un webmaster de labo d’écrire un article, puis

de le publier sur son propre site Web et de le mettre dans un panier commun afin de le remonter à d’autres niveaux, faculté ou page d’accueil.

z Il offrira aux webmasters de la page d’accueil www.epfl.ch et des sites de facultés la possibilité de récupérer des infos lo-cales et de les afficher sur leurs propres sites Web.

[email protected], EPFL - Domaine IT, architecte de l’[email protected], EPFL - Domaine IT, responsable du [email protected], EPFL – directeur médias et communication

Actualités

Fragment du réseau interconnecté européen des lignes à haute tension. www.entsoe.eu/index.php?id=77 

25 MAI 2010 - N°5 7

z De même, des publics externes pourront s’abonner à ces flux d’actualités selon leurs centres d’intérêts, ainsi que publier des références aux articles EPFL sur des sites de réseaux sociaux.

Accessibilité: une personne aveugle a été engagée comme stagiaire pour s’assurer que tous les éléments de Web2010 soient compatibles avec les normes d’accessibilité (qui, au passage, sont également excellentes pour le référencement des pages dans les moteurs de recherche comme Google).

Transfert de vos anciens sites Web sur Jahia 6.0

Migration semi-automatiqueJahia 6 a été choisi comme outil de mise en ligne facilitée de contenu en succession de Jahia 4. Actuellement, le KIS travaille sur une migration se-mi-automatique des contenus en ligne sur Jahia 4 dans la ligne gra-phique Web2010 et sur Jahia 6. Jahia 6 reprend les éléments appréciés sur Jahia 4 et ajoute de nouvelles fonc-tionnalités attendues, entre autres la possibilité d’avoir des adresses de page (ou URL) en langage com-mun et le copier-coller des éléments.

Mise en ligne anticipéePour éviter la modification simultanée des anciens sites Web et des nouveaux sites Jahia 6 et profiter de l’été pour faire ces grands chantiers, la mise en ligne des sites Web de laboratoires sera autorisée dès le mois de juillet, en anticipation de l’ouverture officielle de l’ensemble des sites. Seuls les sites centraux et vitrines très visibles (page d’accueil, sites de facultés, portails, sites les plus consultés) seront entretenus à double en partie entre juillet et septembre et mis en ligne le 6 septembre 2010.

Soutien technique du KIS (task force Web2010)Même si une grande partie du contenu actuellement en ligne sur le domaine epfl.ch grâce à Jahia 4 sera migré automatiquement, un important travail de révision doit être entrepris pour vérifier l’organisation de ce contenu sur chaque site, ainsi que sa perti-nence et sa qualité. Cet effort peut varier d’un site à l’autre. Une

[email protected], EPFL - Domaine IT, architecte de l’[email protected], EPFL - Domaine IT, responsable du [email protected], EPFL – directeur médias et communication

implication importante est demandée aux webmasters de tous les sites Web durant les mois de juin, juillet et août 2010. Le KIS mettra à leur disposition une task force de soutien d’une dizaine de personnes compétentes, des étudiants-assistants versés à la fois dans les bonnes pratiques du Web, ainsi que dans la connais-sance de la Charte Web2010 et de Jahia 6. Ces assistants pourront conseiller les webmasters, répondre aux questions techniques les plus pointues et aider les webmasters les moins professionnels à migrer leurs contenus. Des cours et une documentation en ligne et imprimée seront à disposition de toute personne intéressée.

Temps nécessaire au transfertIl est extrêmement difficile d’estimer le temps et les ressources nécessaires pour transférer un site Web de Jahia 4 à Jahia 6, car ce temps dépend de la complexité du site, de la différence de struc-ture, de l’aptitude des webmasters et d’autres facteurs mais on peut penser que la fourchette de temps devrait se situer entre :z 1 jour pour les sites très simples (5-10 pages);z 1 semaine pour les sites plus complets (20-100 pages);z 5-6 semaines pour les sites les plus complets. n

Planning résumé de mise en œuvreQuand Quoi Qui

Avril-mai Présentation des maquettes graphiques II à la direction et aux facultés (retour des input)

KIS - Mediacom

7 mai Ouverture du serveur de comparaison pour les sites actuellement sur Jahia 4Ouverture du serveur Jahia 6 pour des early adopters

KIS – JahiaWebmasters facultésWebmasters EPFL

7 mai – 18 juin Etablissement de la liste officielle des sites Web à migrer, prise de contact avec les Webmasters

KIS – JahiaWebmasters facultésWebmasters EPFL

Début juin Ouverture des cours Jahia 6.0 KISWebmasters facultésWebmasters EPFL

17 juin Présentation publique de Jahia 6.0Mise à disposition de la feuille de style CSS, des modèles HTML et de la documentationOuverture officielle du nouveau serveur Jahia

KIS – JahiaWebmasters facultésWebmasters EPFL

1er juilletà fin décembre

Ouverture de la task force Web 2010 de soutienMise en ligne directe de certains sites de labos

KISWebmasters facultésWebmasters EPFL

13 août Mise à disposition de l’outil d’actualité Mediacom

6 septembre Ouverture  et  mise  en  ligne  des  sites  Web (Home page, facultés, portails, sites labos…) et de l’outil d’actualités

KIS – JahiaWebmasters facultésWebmasters EPFL

Septembre- décembre

Mise en ligne de l’ensemble des sites KIS – JahiaWebmasters facultésWebmasters EPFL

La date du lundi 6 septembre 2010 a été fixée pour ouvrir officiellement les sites Web.

8 25 MAI 2010 - N°5flash informatique 25 MAI 2010 - N°5

Comment faire ?

Any employee or student at EPFL has a my account. In this article, I will show some fairly unknown ways to couple my with the Mozilla Open Source Suite. I will consider Mozilla Firefox and Mozilla Thunder-bird. These two programs are available for all plat-forms (Linux, MacOS, Windows, Solaris, ...); thus the processes described in this article can apply to everybody.

Tout collaborateur ou étudiant à l’EPFL possède un compte my1. Dans cet article nous allons illustrer des façons alternatives d’utiliser ce service avec la suite de logiciels libres Mozilla, en particulier Mozilla Firefox et Mozilla  Thunderbird (navigateur Web et client mail). Ces deux logiciels sont disponibles pour toutes les plates-formes (Linux, MacOS, Windows, Solaris, …). Tous les procédés décrits ci-dessous se-ront ainsi valables pour tout le monde.

Partie 1: myYFirefox

Depuis la nomadisation de l’informatique, il n’est pas rare de dis-poser de plusieurs ordinateurs (travail, maison, laptop,...). Un des problèmes les plus courants est la synchronisation des données. Nous allons nous intéresser ici aux bookmarks Firefox en particu-lier.L’extension & Xmarks (auparavant connue sous le nom de Fox-Marks) nous permet de synchroniser les bookmarks entre plusieurs postes de travail et, depuis le changement de nom, à partir de dif-férents navigateurs, même si nous allons ici traiter uniquement le cas de Firefox. Le comportement standard de Xmarks est de stocker les bookmarks sur un serveur chez xmarks.com, mais certains sont réfractaires à stocker leurs données on ne sait trop où. Nous allons donc stocker nos bookmarks sur my.epfl.ch. Ceci a plusieurs avan-tages intrinsèques à la nature de my:z vos bookmarks sont à l’EPFL, et non pas dans les nuages &.z my intègre la gestion des révisions 2. Ceci signifie (au niveau

plus pratique) que si par erreur vous écrasez votre fichier de bookmarks sur le serveur, vous pouvez récupérer la version précédente en quelques clics à travers l’interface Documents de my.

[email protected] - SB-IT, spécialiste HPC et enthousiaste des logiciels libres

Comment faire?Premièrement, il faut installer l’extension Xmarks dans Firefox. En-suite, l’extension vous proposera un wizard, que vous allez refuser. Vous allez par contre configurer Xmarks à travers les préférences de l’extension (voir figs 1 et 2), et vous allez tout de suite cliquer sur l’onglet Advanced. Activez Use own server et insérez comme Bookmark URL le chemin vers un fichier de nom quelconque (non existant la première fois) dans votre espace privé. La deu-xième fois que vous ferez cette opération depuis un autre poste, le fichier sera déjà là. Par exemple, l’utilisateur kermit indiquera comme URL: https://documents.epfl.ch/users/k/ke/kermit/private/xmarks.json. Vous pouvez connaître votre URL en vous connectant sur l’interface my, et en cliquant sur i. L’URL HTTP/WebDAV ap-paraîtra en bas (voir fig. 3).

figs 1 et 2 – configuration de Xmarks

Une fois l’URL insérée, dans l’onglet status vous ajouterez votre username et votre mot de passe Gaspar. Vous pouvez maintenant commencer la synchronisation.Xmarks offre aussi la possibilité de synchroniser les mots de passe sur un serveur distant. Mais cela n’est pas recommandé.

1 voir my.epfl.ch2 lire: WebDAV – la recherche, les droits d’accès et versioning par Predrag Viceic, FI 7/2008, ditwww.epfl.ch/SIC/SA/SPIP/Publications/spip.php?article1508

25 MAI 2010 - N°5 9925 MAI 2010 - N°5

Si vous ne souhaitez pas que Firefox mémorise votre mot de passe Gaspar, vous pouvez ne pas le stocker mais n’oubliez pas de dé-cocher la case remember this password dans la fenêtre de la figure 4 sinon il sera tout de même stocké.Xmarks permet de synchroniser (merge) ou de remplacer les book-marks stockés. Vous pouvez aussi faire du upload et du download.

fig. 4 - authentification sur serveur my

Partie 2: myYThunderbird

Mais qu’est-ce que my a à voir avec un client mail? La réponse est simple: à notre époque moderne, il est habituel d’utiliser le client mail comme calendrier (la raison m’échappe encore, mais soit). L’extension Lightning pour Thunderbird -version 3 ou su-périeure– nous permet de bien intégrer un calendrier dans notre client mail – on va même être en mesure d’insérer en un clic des évènements dans notre calendrier lorsqu’on reçoit une invitation. On va donc dans notre cas intégrer les calendriers de my dans Thunderbird. Ceci a plusieurs avantages intrinsèques à la nature des calendriers my:

z intégration des calendriers des groupes3;z si vous êtes en déplacement, vous pouvez ac-céder à vos calendriers (remplis depuis Thunder-bird) depuis n’importe quel cybercafé avec l’inter-face my;z Vous pouvez afficher une partie de vos calen-driers ou vos disponibilités dans une page Web4

Cette procédure peut être également appliquée à Mozilla Sunbird.

Comment faire?Premièrement, il vous faut Thunderbird et l’exten-sion Lightning. Une fois Lightning installé, en sélectionnant l’icône correspondante vous affichez l’onglet calendar. Ensuite, vous pouvez créer des nouveaux calendriers avec un clic droit (ou Control-Click sous Mac) dans la zone où sont énumérés les calendriers (fig. 6).

fig. 5 – installation de Lightning

fig. 6 – ajout d’un nouveau calendrier

3  voir groupes.epfl.ch4  lire: Intégration des outils de my.epfl dans vos pages Web par Predrag Viceic, FI 9/2009, ditwww.epfl.ch/SIC/SA/SPIP/Publications/spip.php?article1901

myYMozilla

fig. 3 – URL HTTP/WebDAV dans l’interface my

flash informatique1010 25 MAI 2010 - N°5flash informatique

Vous allez créer un calendrier réseau:

fig. 7 - choix du type de calendrier: réseau

Maintenant, vous pouvez indiquer soit votre calendrier privé my (voir fig. 8), soit un calendrier de groupe (voir fig. 9).

fig. 8 – calendrier personnel

fig. 9 – calendrier de groupe

Pour connaître le code du groupe, il suffit de regarder dans l’inter-face my, dans Views and calendars management. En cliquant sur éditer ( ), vous verrez le lien caldav à insérer dans Light-ning.

myYMozilla

figs 10 et 11 – URL CalDAV dans my

Maintenant, il ne reste qu’à donner un nom à votre calendrier et entrer votre username et mot de passe GASPAR.

figs 12 et 13 – étapes finales de la création d’un calendrier

Vous pouvez à présent ajouter des évènements dans vos calen-driers my depuis Thunderbird. n

séminaires sur les extensions Firefox ont déjà été organisés à l’EPFL, et dans un futur proche, on va avoir un séminaire supplémentaire sur les ex-tensions Firefox et Thunderbird. Pour plus d’informations, elle.epfl.ch/wiki.

Nuages: l’expression dans les nuages fait référence au concept Infor-matique dans les nuages (cloud computing); dans ce modèle qui tend à se répandre, les services (de calcul ou de données) sont répartis sur le réseau Internet, l’utilisateur ne connait plus l’emplacement physique ni même parfois le propriétaire de l’ordinateur hébergeant le service.

GLOSSAIRE &Extension: le navigateur Firefox peut être

personnalisé par des modules supplé-mentaires que l’utilisateur installe selon ses besoins. Il existe trois types de modules:

• les extensions qui ajoutent des fonc-tionnalités; c’est ce qui nous intéresse dans cet article.

• les thèmes qui modifient l’apparence visuelle de Firefox

• les plugins qui gèrent du contenu spécifique (exemple un plugin pour lire des fichiers QuickTime)

Les extensions de Firefox étant nombreuses, nous vous conseillons de n’installer que celles quui vous sont nécessaires. Les extensions peuvent parfois provoquer des problèmes de compatibilité entre elles ou de perfor-mance (les auteurs des extensions ne communiquent pas entre eux a priori, et certaines extensions qui par exemple analysent le contenu des pages web peuvent demander beaucoup de ressources). Il est conseillé d’installer uniquement des extensions cataloguées sur le site addons.mozilla.org. Thun-derbird a aussi ses propres modules supplémentaires, dont Lightning. Deux

25 MAI 2010 - N°5 11

The advent of blogs, CMSs and RSSs have forever changed our manner to build the Web. Complex applications have gradually replaced HTML pages improved with CGI scripts. The high cost of devel-opment of very similar systems has made possible the ermergence of Web frameworks. Faced with the abondance of tools we have chosen Django.

L’arrivée des blogs, des CMS et des réseaux sociaux a définitivement changé notre manière de fabriquer le Web. Des applications complexes ont progressive-ment remplacé les pages HTML enrichies de scripts CGI. Le coût de développement important de sys-tèmes au final très similaires a permis l’émergence des frameworks Web. Parmi la pléthore de ces outils, nous avons opté pour Django.

Le développement d’une application Web n’est pas un processus simple. Après avoir énuméré et décrit toutes les fonctions sou-haitées, et avant même de pouvoir s’attaquer à toute forme de logique métier, il reste à:z mettre en place une base de données;z implémenter les tables et leurs relations;z transformer tout ceci en HTML;z définir les URL et comment elles se retrouveront associées aux

données;z gérer les utilisateurs et leurs droits d’accès;z ...C’est à ce stade qu’intervient le framework  Web. Inutile de réin-venter la roue, d’autres l’ont déjà fait, et – il faut l’admettre – considérablement mieux que nous.

Django - The Web framework for perfec-tionists with deadlines

Django est un framework open source basé sur python. Ses créa-teurs ont choisi de fournir un outil intégré, plutôt qu’un assem-blage de projets préexistants (par opposition à son concurrent TurboGears).

Gestion des données

La création d’une application Web suppose généralement l’inte-raction avec une base de données. La connexion à une base ainsi que l’écriture de requêtes sont des tâches relativement simples, mais qui présentent des risques:

z types de données incompatibles entre le langage de program-mation et le SGBD &;

z syntaxe SQL incompatible entre deux SGBD différents;z problèmes de sécurité (injection SQL).Afin de pallier cela, Django propose un ORM &, qui masque la complexité de la base de données au profit de simples classes py-thon appelées modèles. Il devient ainsi aisé de développer dans un environnement léger comme SQLite et de passer en production sur un moteur plus solide comme PostgreSQL. Par ailleurs, le sys-tème s’assure lui-même de la conversion des données vers la base, déjouant au passage les actions malveillantes.L’autre force de la gestion des modèles de données avec Djan-go est la génération automatique des formulaires de recherche, d’ajout ou d’édition.

Génération d’HTML

Le développeur a souvent la mauvaise idée de mélanger l’HTML servant à l’interface avec la logique métier de son application, à plus forte raison s’il a été précédemment exposé à PHP. Le moindre changement de design impose alors d’aller modifier du code, avec tous les dangers que cela peut représenter. Django propose un système de templating, permettant de séparer proprement le code HTML de la logique métier. Un graphiste peut ainsi facilement travailler sur l’affichage indépendamment des travaux réalisés par les développeurs. En outre, la structure propo-sée par Django est extrêmement souple et permet de facilement morceler une page en blocs fonctionnels séparés.

Gestion des URL

La différence de lisibilité entre l’adresse monsite.com/blog/vive-python et monsite.com/blog.php?id=234 est flagrante. Posséder des adresses parlantes est non seulement un atout d’accessibilité, mais facilite en outre le travail des moteurs de recherche. Django propose un système de gestion des URL efficace et simple, basé sur des listes d’expressions régulières. Ce système permet de découpler complètement les adresses du code.

Choix d’un framework - [email protected] – Domaine IT, développeur Python pour le projet Infoscience

Analyse

12 25 MAI 2010 - N°5flash informatique 25 MAI 2010 - N°5

Internationalisation

La traduction des applications Web est une évidence dans un pays quadrilingue. Django propose un système d’internationalisation facile à mettre en place, que ce soit dans les templates HTML ou dans le code d’une fonction métier. Les outils proposés savent scanner les fichiers et rassembler les phrases à traduire dans un seul fichier par langue.

Gestion des utilisateursLorsque l’on doit gérer des transactions, garder un état cohé-rent tout au long du processus est indispensable. Qui plus est, on attend généralement d’une application de proposer un moyen d’identification, ainsi qu’une gestion des droits. La complexité d’un tel système rend son développement fastidieux. Django pro-pose une gestion intégrée des utilisateurs. Ce système est extrê-mement facile à personnaliser de manière à offrir, par exemple, une authentification via Shibboleth &.

Conclusion

Django permet de remplir toutes nos attentes vis-à-vis d’un sys-tème. Il permet de s’économiser du temps de développement et par la même de focaliser sur ce qui compte vraiment: la logique métier. À titre d’exemple, un système de blog simple avec inter-face d’administration tient en moins de 60 lignes de code! n

Analyse

QR Code Recognition

Reconnaissance du QR Code

Bien que le QR Code ne soit pas nouveau, l’actualité régionale l’a récemment fait ressurgir, depuis son usage pour la diffusion des horaires en temps réel par les T-L (Transports publics lausannois). En effet, depuis le mois de décembre 2009, les T-L ont apposé les QR Code de l’horaire instantané du métro m1 à chaque arrêt. Dès lors, n’importe quel téléphone mobile doté d’un appareil photo, pourra lire et décoder le QR Code, qui vous redirigera aussitôt sur la page Web affichant l’horaire en temps réel de la ligne et de l’arrêt correspondants. Le QR Code, acronyme de Quick Response Code, est une évolu-tion du code matriciel, ou code bi-dimensionnel, dont la lecture est notablement accélérée. Il cumule les qualités individuelles de ses prédécesseurs, à savoir une grande capacité de données sur une faible surface imprimée. Son domaine d’application est plus vaste que le simple référencement de produits, et s’étend notam-ment à la transmission d’adresses, URL et Vcard. Nous sommes tous familiers des codes barres unidimensionnels qui étaient déjà largement répan-dus depuis trois décennies aux USA pour l’étiquetage de produits commerciaux, avant de traverser l’Atlantique plus récemment et devenir le EAN (European Article Number). Il s’est notamment im-posé dans l’édition, avec le célèbre code ISBN (International Stan-dard Book Number), ou encore ISSN (International Standard Se-rial Number) pour les publications en série, tel notre journal – voir le code barre en dernière page. Ces codes unidimensionnels, se reconnaissent aisément à leur ali-gnement de barres noires rectilignes sur fond blanc, d’épaisseur et d’espacement variables. Ensuite, sont apparus les codes bidimensionnels DataMatrix, que vous observez sur le courrier postal, dont la densité d’informa-tion véhiculée, de par sa nature quadratique, est sensiblement supérieure, pour dépasser 3000 chiffres. D’autres codes plus im-posants sont les Stacked Bar, codes à balayage, qui ornent l’en-tête des déclarations fiscales vaudoises. Ces évolutions ont pour but de mettre à disposition une charge utile bien supérieure, qui n’est plus limitée à quelques chiffres. Selon la taille et le niveau

Choix d’un framework - Django

FlashiPhone – QR [email protected] - Domaine IT, heureux utilisateur de iPhone

GLOSSAIRE &ORM (Object-Relational Mapper): technique de programmation

faisant le lien entre le monde de la base de données et le monde de la programmation objet.

SGBD: Système de Gestion de Bases de Données. Ensemble de logiciels servant à la manipulation de bases de données.

Shibboleth: mécanisme permettant de déléguer l’authentification d’un utilisateur à son établissement d’origine.

La couleur 2010

25 MAI 2010 - N°5 1325 MAI 2010 - N°5

FlashiPhone – QR [email protected] - Domaine IT, heureux utilisateur de iPhone

de codage, le QR code peut stocker jusqu’à 4296 caractères alphanumériques, comme le montre le tableau.Le QR Code, tout comme ceux énumérés pré-sentement, est ouvert au domaine public, et nous pouvons librement le générer sans de-voir payer de droits d’auteur.

Les applications pour lire et pour créer un QR Code

Alors que les applications disponibles pour iPhone sont obligatoirement à télécharger depuis le site iTunes Store, celles pour les té-léphones mobiles Java sont à charger direc-tement depuis les sites de leurs auteurs dont le nom de domaine se termine généralement par l’extension .mobi. Quant à la génération de ces pictogrammes, vous trouverez nombre de programmes libres écrits en Java, ou de sites pour les générer à la volée.L’application gratuite i-nigma pour iPhone est capable de recon-naitre les QR Code, les DataMatrix ainsi que les EAN unidi-mensionnels. Toutefois, la médiocre optique à focale fixe des deux premières générations de iPhone pénalise la lecture des petits pic-togrammes, car pour obtenir une grandeur apparente suffisante, l’optique se retrouve alors hors de sa profondeur de champ.Depuis cette année, nombre de grandes surfaces commerciales, à commencer par la Migros, ont généralisé l’étiquetage des ar-ticles en Code Barre EAN. Pour les décoder, une autre application, restreinte aux codes unidimensionnels EAN s’avère plus optimale: CodeCheck.info, elle aussi disponible gratuitement pour iPhone et mobiles GSM. Son avantage est de rechercher directement la réfé-rence des articles dans une base de données suisse, nous affichant une pléthore d’informations quant à la composition de la mar-chandise.

Structure du QR Code

Exemples d’application

z distribution des profils de configuration wireless EPFL pour iPhone;

z l’horaire du métro m1;z notre campagne de sensibilisation

à la sécurité informatique.

Références

Denso-wave: www.denso-wave.com/qrcode/

aboutqr-e.htmlWikipedia: en.wikipedia.org/wiki/QRcodei-nigma: www.i-nigma.com/Codecheck: www.codecheck.info/T-L: www.t-l.ch/contenu/qr-codes.htmlPostScript Barcode Generator: www.terryburton.co.uk/barcodewriter/generator/ n

QR Code PDF417 DataMatrix Maxi Code

Developer(country) DENSO(Japan)Symbol

Technologies (USA)

RVSI Acuity CiMatrix (USA)

UPS (USA)

Type MatrixStacked Bar

CodeMatrix Matrix

Data capacity

Numeric 7,089 2,710 3,116 138

Alphanumeric 4,296 1,850 2,355 93Binary 2,953 1,018 1,556Kanji 1,817 554 778

Main features

Large capacity, small printout

sizeHigh speed scan

Large capacity

Small printout size

High speed scan

Main usages All categories OA FA Logistics

Standardization

AIM International

JISISO

AIM International

ISO

AIM International

ISO

AIM International

ISO

Tableau comparatif des codes 2D

14 25 MAI 2010 - N°5flash informatique 25 MAI 2010 - N°5

Echos du de printempsJacqueline. [email protected]–Domaine IT, Rédacteur du Flash informatique

Actualités

Twice a year, ForumIT is meeting point for IT Do-main and IT-people from the EPFL labs (more than 200 people). If you could not attend the April 29 Forum IT, you will find here abstracts of the tackled subjects. The presentations are available on the site dit.epfl.ch/page55589.html.

Deux fois par an, les ForumIT sont des lieux de rencontre entre le DIT et les responsables informa-tique d’unités (plus de 200 personnes ont ce rôle à l’EPFL). Pour ceux qui n’ont pas pu assister à celui du 29 avril dernier, voici quelques mots sur les sujets abordés. Les présentations complètes sont sur le site dit.epfl.ch/page55589.html.

IT@EPFL

Jean-Claude Berney a montré que ces six derniers mois ont été assez chargés pour l’informatique à l’EPFL. z Un audit mandaté par le CEPF a eu lieu en novembre, il a mis

en évidence un manque de coordination au niveau du système d’informations (SI), une absence de gestion centrale des pro-jets IT et un besoin de définir des standards. Ces recomman-dations vont dans le sens des propositions faites par D. Rey (coordinateur du SI depuis novembre 2009) à la Direction de l’EPFL; celle-ci devrait se prononcer à ce sujet prochainement.

z Les vice-présidences VPPL et VPAI travaillent de concert sur un projet de data center.

z De nouveaux collaborateurs ont été embauchés au DIT: respon-sable Linux (B. Barras), prestation myPrint (C. Cornaz) et ingé-nieur sytème Oracle – SAP (G. Héron de Villefosse). G. Favre, chef de projet Infoscience, a été transféré au DIT.

z Du côté communications, les fidèles lecteurs du FI le savent bien, le Flash informatique a fait peau neuve début 2010, pour mieux guider le lecteur vers un contenu susceptible de l’inté-resser [1] et une campagne de sensibilisation à la sécurité in-formatique a eu lieu (dans différents médias: FI, Flash, écran Polynex et autres à découvrir).

z Le réseau a maintenu un haut taux de disponibilité (99%), notamment grâce à du matériel redondant. Un projet visant à supporter IPv6 en parallèle à IPv4 a démarré.

z HPC: les clusters généralistes Mizar et Alcor ont été arrêtés fin 2009, remplacés par une extension à Callisto (financée pour 1/3 par les unités de recherche) et un cluster Vega (qui provient de la Faculté IC).

z Stockage: l’infrastructure NAS 2 a été mise en place progressi-vement (plus d’informations plus loin).

z Messagerie: migration vers Exchange 2010 prévue pour l’été

z myPrint [2]: novembre 2009, décision de la Direction entéri-nant le service, mise en production pour tous les étudiants dès mars 2010. Onze multi fonctions sont installées sur le campus.

z Poséidon: les fournisseurs choisis sont Apple, HP et Lenovo.z Plan.epfl.ch: une nouvelle version a été mise en production.z Subversion: le service offert par l’Agepoly a été repris par le KIS.z Réparation des imprimantes: depuis le début de l’année le

CRI ne répare plus les imprimantes; le but est de favoriser la convergence vers du matériel photocopieur-imprimante inté-gré à myPrint. Par ailleurs les vieilles imprimantes sont coû-teuses du point de vue électricité et consommables.

Call-Center: 25 assistants-étudiants (équivalent à quatre emplois à plein temps) assurent un horaire étendu; en 2009, 19000 tickets ont été traités dont 6100 résolus par le Help Desk.

Web2010

N. Meystre a fait le point sur le projet (lire article en page 6).

Service de fichiers NAS2

La présentation faite par A. Boisseau et L. Chaboudez a porté sur l’état des lieux du projet NAS2, qui est une évolution de l’architec-ture NAS en place au DIT depuis 2005. Le nouveau matériel (EMC) a été installé fin 2009 et la migration sur le nouveau système a duré d’octobre 2009 à février 2010. Les problématiques de migra-tion ont été explicitées, notamment le fait que les identifications des propriétaires des fichiers ont dû être changées (NFS4 utilisant LDAP). Le stockage hiérarchique (HSM) est une nouvelle fonction-nalité. Début mai le service stockage des fichiers individuels sera ouvert (2GB par étudiant. 10GB par collaborateur), le mode mixte (CIFS, NFSv4) sera activé par défaut.

Infoscience

G. Favre a fait une démonstration des nouvelles possibilités offertes par Infoscience. Basé sur CDS Invenio, produit open source déve-loppé par le CERN, Infoscience [3] est le système d’archives des pu-blications scientifiques de l’EPFL (actuellement elle contient plus de 64000 publications). Une nouvelle version a vu le jour début 2010, avec un outil de soumission d’articles amélioré, une saisie automa-tique des données si l’article est référencé dans PUBMED, Web of Science ou SCOPUS. L’intégration dans une page Web de laboratoire ou la page people d’un chercheur offre plus de possibilités.

Références[1] Edito, par Jacqueline Dousson, FI1/2010[2] myPrint, par Catherine Cornaz FI 1/2009[3] actualites.epfl.ch/newspaper-article?np_id=1678&np_

eid=117&catid=5 n

25 MAI 2010 - N°5 1525 MAI 2010 - N°5

Comment faire ?

The prepaid Internet telephony panorama

Panorama sur la téléphonie à prépaiement par Internet

Dans le sillage de deux articles consacrés à la téléphonie domes-tique par Internet, VoIP@home*, nous nous proposons de vous présenter une configuration particulièrement élégante, s’ap-puyant entièrement sur une station téléphonique très perfection-née.Alors que les adaptateurs analogiques VoIP & sont répandus et bien connus, les stations de base de la gamme Gigaset C47x IP de Siemens sont des appareils DECT & hybrides analogiques et numériques tout-en-un, constituant le meilleur matériel pour dé-buter dans la téléphonique VoIP. Sa configuration s’effectue via son interface Web conviviale, ou subsidiairement, directement via son combiné sans fil dont l’interface utilisateur est évidemment moins confortable.

Côté utilisateur, comme leur nom l’indique, ces stations DECT sont évidemment toutes interopérables avec les équipements DECT/GAP & des autres constructeurs. Vous conserverez alors vos anciens combinés sans fil, même s’ils vous ont été offerts et préfixés par Tele2 (10753), car ces derniers ne sont préfixés que par leur base, alors que les combinés eux-mêmes sont libres.

Côté réseau, la particularité de cette station hybride est de gérer parallèlement une connexion RJ-11 sur le réseau analogique commuté PSTN &, et jusqu’à 6 connexions Internet VoIP via la prise Ethernet RJ-45. L’idéal pour assurer une transition en douceur de l’ancien vers le nouveau réseau téléphonique. Ainsi, vous pourrez conserver votre raccordement analogique Swisscom, pendant que vous ferez vos premiers pas en télé-phonie sur Internet. Cette station de base étant entièrement découplée du socle-chargeur du combiné, elle peut être ai-sément détachée, afin de l’installer au plus près de l’infras-tructure Internet. Autre caractéristique remarquable de cette station: lorsqu’un numéro d’appelant CID & est reçu, son iden-tité correspondante est aussitôt recherchée dans l’annuaire [tel.search.ch], afin de présenter textuellement le nom de vos interlocuteurs suisses, comme c’est le cas avec les télé-phones internes à l’EPFL.

Marche à suivre en 6 étapes

Le prérequis est évidemment de disposer d’une connexion Inter-net, nous ne le détaillerons pas ici.

Première étape nécessaire pour exploiter la téléphonie VoIP est évidemment d’ouvrir un compte SIP & auprès d’un opé-rateur VoIP, après avoir sélectionné le plus avantageux au moyen d’un comparatif sur Internet.Au moment de la rédaction de cet article, l’opérateur le plus at-tractif est pour la plupart des destinations Rynga, lui-même affilié à la nébuleuse géante germano-luxembourgeoise Betamax/Dell-mont, regroupant pas moins de 35 portails sur Internet. Après avoir crédité un montant minimal de 10 euros, vous téléphonerez gratuitement vers tous les numéros fixes nationaux et internatio-naux, 24/24h et 7/7j, durant 4 mois. Attention, une mystérieuse clause FUP & plafonne en réalité la gratuité à environ 2 heures de communications quotidiennes. Les numéros de mobiles sont bien évidemment eux aussi atteignables, hors de la gratuité, à un tarif quasiment imbattable (14 ct/mn vers tous les mobiles natio-naux, 8 ct/mn vers les mobiles européens), qui sera automatique-ment débité de votre crédit. Lorsque votre crédit sera entièrement épuisé, et la période de gratuité écoulée, vous ne pourrez alors plus téléphoner, jusqu’à la prochaine recharge, qui renouvellera aussitôt la période de gratuité vers les fixes, valable 4 mois. Dès la période de gratuité échue, même les appels vers les fixes seront débités de votre crédit, à un tarif inférieur à 2 ct/mn vers la Suisse et l’Europe, soit respectivement, 4 et 6 fois moins cher que notre opérateur historique national !

Deuxième étape, préparation de la rupture du cordon ombilical avec notre opérateur historique national.Ouvrir un compte auprès d’un opérateur SIP suisse, tel que Sipcall, Peoplefone ou NetVoIP. Ces opérateurs satisfaisant les exigences de la législation helvétique sont habilités à décerner des numéros nationaux, auxquels vous pourrez être atteints. L’attribution de ces indicatifs (numéros) est généralement soumise à un tarif de location croissant, selon que vous vous contentez d’une zone peu peuplée comme le Jura (032), de votre zone d’habitation (021), ou si possible, préférez conserver (porter) votre ancien numéro analogique. Malheureusement, les tarifs de communication de ces opérateurs nationaux étant moins attractifs que ceux des opérateurs internationaux, il s’avère alors judicieux de séparer les communications entrantes et sortantes, c’est-à-dire de faire tran-siter tous vos appels sortants par les opérateurs internationaux et de recevoir vos appels via un opérateur national. Soulignons une particularité de certains opérateurs SIP nationaux: les appels

Télé[email protected] - Domaine IT, responsable Apple EPFL

* VoIP@home, deux articles d’exemples pratiques, l’un paru dans le FI6/06: ditwww.epfl.ch/SIC/SA/SPIP/Publications/spip.php?article1173 et l’autre dans le FI10/06: ditwww.epfl.ch/SIC/SA/SPIP/Publications/spip.php?article1214

flash informatique1616 25 MAI 2010 - N°5flash informatique 25 MAI 2010 - N°5

entre leurs clients sont gratuits, de manière similaire aux appels internes du célèbre opérateur Skype. Ce dernier s’appuyant sur un protocole propriétaire différent de SIP, il n’est pas supporté par la station Gigaset, et c’est pourquoi nous ne l’abordons pas présentement. De surcroît, les tarifs de sa passerelle vers le réseau PSTN, SkypeOut, sont toujours sensiblement plus onéreux, et il ne propose aucune période de gratuité vers les téléphones fixes.

Troisième étape. Reste à ajuster les règles de numérota-tion, autrement dit l’aiguillage des appels sortants en fonction de leur indicatif pour, par exemple, diriger les appels à destination des numéros 08x0 sur l’opérateur SIP national, car les opérateurs internationaux interdisent d’atteindre les numéros surtaxés (090x) et à coûts partagés (084x ).

Aiguillage des communications sortantes

Quatrième étape, reconnaissance de notre numéro d’ap-pel national SIP par l’opérateur international.Afin que vos correspondants puissent vous reconnaître et vous rappeler, il est souhaitable que vous soyez identifiés même lorsque vous transitez par un opérateur international.Pour des raisons légales, les opérateurs SIP internationaux ne sont pas habilités à décerner de numéros d’appelant suisses, que ce soit en entrée ou en sortie. En revanche, ces mêmes opérateurs sont autorisés, après vérification automatisée, à transmettre le numéro de l’appelant CID que vous enregistrerez dans votre station de base. Ainsi, vous pourrez déclarer le numéro de votre SIP national ou de votre ligne analogique, qui s’affichera chez vos correspon-

dants si leur téléphone supporte le protocole CLIP & , exactement de la même manière que lorsque vous les appeliez par votre ligne analogique ou par votre compte SIP national. La liste de numéros à reconnaître peut être rédigée sur le site Web de l’opérateur SIP international, mais attention, elle ne peut PAS être vérifiée, donc authentifiée. Pour ce faire, il faut impérativement recourir à l’ap-plication téléchargeable du même opérateur, et celle-ci n’existe que pour Windows. Heureusement, cette procédure ne doit s’ef-fectuer qu’une fois, lors de l’ouverture initiale du compte SIP in-ternational.

Vérification des numéros d’appel

Lorsque vous presserez sur le bouton Verify now!, l’automate appellera le numéro indiqué, et vous demandera vocalement de composer sur votre combiné un code à 4 chiffres que l’application dédiée vous présentera. Aussitôt cet échange validé, le numéro déclaré sera considéré par l’opérateur comme authentifié, et il ac-ceptera de le transmettre sur le réseau PSTN. Malheureusement, son état n’est jamais indiqué sur la page Web.

Télérama

Connexion aux opérateurs SIP

25 MAI 2010 - N°5 171725 MAI 2010 - N°5

Remarque: n’oubliez pas de désactiver l’option Start Rynga when I start Windows dans les réglages de cette application.

Maintenant que votre numéro est authentifié par l’opérateur SIP international, vous pouvez enfin le déclarer dans la base Gigaset, pour qu’il s’affiche sur le combiné de votre destinataire, si ce der-nier supporte le protocole CLIP.

Déclaration du numéro d’appelant dans la station Gigaset

Remarque: curieusement, seul le champ Username est réellement transmis par la station Gigaset.

Libre à vous de déclarer et authentifier n’importe quel numéro auquel vous pourrez être appelé, que ce soit votre mobile ou votre bureau.

Cinquième étape. Si vous avez activé plusieurs numéros d’appel nationaux entrants, il faudra alors les diriger (choisir l’af-fectation) sur le ou les combinés souhaités.

Sixième étape. Pour ceux qui ne désirent pas conser-ver leur anonymat, annoncer votre numéro d’appel dans les annuaires téléphoniques suisses, (Directories.ch) et [tel.search.ch].Cette procédure est entièrement gratuite, et vous pourrez réper-torier autant de numéros que vous le souhaitez, excepté pour le second qui n’accepte pas plus de 5 numéros.

Indépendance géographique

Si vous êtes en déplacement ou en vacances durant plusieurs jours, dans un lieu disposant évidemment d’une connexion Inter-net (Ethernet RJ-45), vous pourrez alors emporter votre station Gigaset, et aussitôt rebranchée à la destination, vous conserverez absolument tout votre environnement téléphonique du domicile, à savoir les numéros nationaux auxquels vous demeurez attei-gnables, et les comptes avantageux en sortie: une réelle télépor-tation.

Télérama

Assignation des lignes entrantes vers les com-binés

flash informatique1818 25 MAI 2010 - N°5flash informatique

Télérama

dial historique. A son origine, il était com-muté par des opératrices, avant d’être automatisé par des relais électromagné-tiques.

SIP: (Session Initiation Protocol) : protocole d’initiation de session; c’est un protocole de signalisation défini par l’IETF, large-ment utilisé pour le contrôle de sessions de communication multimédias, telles que les appels audio et vidéo sur Inter-net.

VoIP (Voice over Internet Protocol) : voix sur IP désigne les technologies qui permet-tent de numériser la voix et de la trans-porter sur le réseau informatique d’une entreprise (LAN-WAN) ou sur Internet, grâce au protocole IP.

GLOSSAIRE &CID: (Caller IDentification) Identification

d’appel, un service disponible dans les systèmes de téléphonie analogique et numérique, et audio sur Internet (VoIP), qui transmet le numéro de l’appelant à l’équipement téléphonique de l’appelé, pendant la sonnerie avant que ce dernier accepte la communication. Remarque: chez France Telecom cette prestation est optionnelle et payante !

CLIP: (Calling Line Identification Presen-tation) service téléphonique qui fournit à la personne appelée le numéro de la personne appelante.

DECT: (Digital Enhanced Cordless Tele-communication): communication sans fil numérique renforcée, est une norme ETSI pour les téléphones sans fil à

domicile, couramment utilisée à des fins domestiques ou d’entreprise.

GAP: (Generic Access Profile): profil d’accès générique (norme ETSI EN 300 444), décrivant un ensemble d’exi-gences obligatoires pour permettre à toute base fixe conforme DECT d’interagir avec n’importe quel combiné portable conforme DECT, afin de fournir les services téléphoniques essentiels, notamment l’affichage de l’appelant.

FUP: (Fair Use Policy): politique d’utilisation équitable, mystérieuse clause de Beta-max restreignant la durée quotidienne de gratuité des communications, sans pour autant en spécifier les conditions exactes.

PSTN: (Public Switched Telephone Network): réseau téléphonique public commuté: le réseau téléphonique mon-

Exemples de configurations VoIP éten-dues envisageables

1 Six combinés sont individuellement associés à un numéro d’appel SIP distinct:

Avantage: chaque combiné est atteignable individuellement par son propre numéro SIP national.

Inconvénient: aucun ne bénéficie des tarifs d’appel avantageux des opérateurs SIP internationaux.

#1) SIP national 1

#2) SIP national 2

#3) SIP national 3

#4) SIP national 4

#5) SIP national 5

#6) SIP national 6

2 Trois paires de combinés sont associées à 3 numéros d’appel nationaux entrants et 3 comptes de sortie SIP internationaux distincts:

Avantage: tous les combinés bénéficient des tarifs avantageux des opérateurs SIP internationaux.

Inconvénient: seules 3 paires de combinés disposent d’un nu-méro d’appel SIP national distinct.

#1) SIP national 1

#2) SIP international 1

#3) SIP national 2

#4) SIP international 2

#5) SIP national 3

#6) SIP international 3

Paire 1

Paire 2

Paire 3

Conclusion

Si vous êtes prêt à vous délocaliser virtuellement, c’est-à-dire changer d’indicatif d’appel, alors votre budget téléphonique an-nuel se réduira à 45.- CHF/an (3 x 10 €) communications fixes comprises, contre les 300.- CHF/an de l’opérateur historique na-tional, et ce, sans aucune communication !Evidemment, dans ce comparatif, la location de la ligne Internet n’est pas comprise.Et vous resterez libre de tout contrat ou abonnement, car les comptes SIP, nationaux et internationaux, sont à prépaiement.

Caractéristiques principales de la station Siemens Gigaset C47x IP

z jusqu’à 6 combinés raccordés sur la même base,z jusqu’à 6 connecteurs SIP,z jusqu’à 2 communications SIP/VoIP simultanées,z recherche inverse instantanée du nom de l’appelant dans l’an-

nuaire [tel.search.ch],z consultation des nouvelles via les flux RSS, directement depuis

le combiné,z lecture automatique d’un compte de messagerie POP3.

Références

z wiki.epfl.ch/voip-at-homez Protocole SIP: en.wikipedia.org/Session_Initiation_Protocolz Opérateurs VoIP en Suisse: www.voip-list.com/voip_countries/

voip_providers_switzerland_1.htmlz Betamax price comparator: progx.ch/home-voip-prixbeta-

max-3-1-1.html n

25 MAI 2010 - N°5 19

Analyse

This article is intended for people interested in GPU computing. The new NVDIA Fermi-GTX 470/480 cards having arrived, our purpose here is to examine the latest CUDA developments.

Cet article s’adresse aux lecteurs évoluant dans le monde du calcul GPU &. Avec la sortie des nou-velles cartes NVIDIA Fermi - GTX 470/480, le but ici est de faire le point sur les derniers développements autour de CUDA.

Introduction

J’invite le lecteur que le sujet intéresse, mais qui n’a pas de connaissance des architectures des cartes NVIDIA et du modèle de programmation CUDA à lire le livre de NVIDIA et de l’Université de l’Illinois 1 paru en début ce cette d’année ou à se reporter à une introduction du sujet dans le FI8/09 2.Le calcul GPU prend une place de plus en plus importante face au calcul CPU. Au moins deux bonnes raisons pour comprendre ce phénomène relativement récent: les GPU offrent, au niveau applicatif, une bande passante mémoire bien supérieure à celle des CPU et livre, à consommation d’énergie égale, plus de perfor-mance calcul. Quelques annonces prises en vrac:z Outils CULA: LAPACK sur les GPU CUDA, développé par EM

Photonics z MAGMA: LAPACK sur les GPU CUDA et les CPU multi-cœurs,

développé par le groupe de recherche de Jack Dongarra z GPULib: bibliothèque de fonctions mathématiques pour IDL et

MATLAB z Bibliothèque de GPU VSIPL (Vector Signal Image Processing

Library) z OpenCurrent: bibliothèque open-source pour les solveurs

d’équations PDE (équations différentielles partielles) accélérés par CUDA sur les grilles régulières

z Compilateur d’auto-parallélisation de PGI pour Fortran et C vers CUDA C

z Compilateur d’auto-parallélisation de CAPS HMPP pour C et Fortran vers CUDA C

z Solveurs PDE Lattice Boltzmann (LBM) sur GPUz PyCUDA: wrapper CUDA pour Pythonz Thrust: bibliothèque de modèles C++ pour CUDA z R/gputools: ensemble de modules optimisés CUDA (...gpuMat-

Mult gpuMi gpuQr gpuSolve gpuSvd gpuSvmPredict ....)

z Support d’Eclipse pour CUDA z NVIDIA Parallel Nsight.On ne pourra pas aborder dans le cadre de cet article tous les points de cette liste. Débutons par le dernier, la sortie de NVIDIA Parallel Nsight, ensuite nous parlerons de PyCUDA, de CUDA et LAPACK et de Thrust (C++ et CUDA).

NVIDIA Parallel Nsight

C’est sans doute l’événement le plus important, car c’est celui qui va connaître auprès des communautés de développement autour des GPU l’impact le plus grand.NVIDIA Parallel Nsight (précédemment connu sous le nom de Nexus) est un environnement de développement pour la pro-grammation d’applications GPU intégré dans Visual Studio 2008 (Windows 7, 32 ou 64-bit). Cet environnement est ce qui se fait de mieux pour tous celles et ceux qui ont ou auront à programmer des GPU dans un contexte de projet graphique ou de calcul haute performance. Nsight De-bugger/Analyzer cible le débogage et l’analyse du code source CUDA C/C++ donc plutôt l’aspect calcul, Nsight Graphics  Ins-pector capture en temps réel des frames Direct3D donc plutôt l’aspect graphique. Nous allons voir quelques exemples dans le domaine du calcul.Dans la terminologie Nsight il faut faire la distinction entre la machine dite Host qui va héberger votre session Visual Studio et la machine dite Target qui va exécuter le code CUDA. Host et Target peuvent se résumer à une seule machine, mais ses-sion et exécution ne peuvent cohabiter sur la même carte GPU. La distinction se fait à l’installation en portant l’extension Nsight sur Host et un programme Monitor sur Target. Host et Target communiquent via le réseau (fig-1).

fig. 1

Que fait Nsight ? Dans une version standard un code kernel.cu est compilé par le programme nvcc de l’environnement de dé-veloppement CUDA. Dans le contexte Nsight on fait référence à un autre programme C:\Program Files\NVIDIA Nexus 1.0\CUDA Toolkit\v3.0\Win64\CUDA\bin64\nvcc.exe (cas d’une

GPU, environnements de programmation [email protected] Domaine IT, évangéliste CUDA

1 Programming Massively Parallel Processors: A Hands-on Approach David B. Kirk, Wen-mei W. Hwu2 Les GPU ne sont pas uniquement faits pour les consoles de jeux du FI 2/2009

flash informatique2020 25 MAI 2010 - N°5flash informatique 25 MAI 2010 - N°5

machine 64 bits) qui va préparer un exécutable pour Visual Stu-dio. Le répertoire v3.0 signale l’utilisation de la dernière version de développement CUDA 3.0. Avant tout chose, vous devez vous assurer de la bonne configuration de votre projet. Pour la check-list complète, il faut se reporter à la rubrique How To: Work With Samples du guide utilisateur. On peut citer deux ou trois petites choses: vérifier les règles pour l’extension .cu, les propriétés du projet, le chemin d’accès de nvcc. Vous pouvez alors lancer la commande Build, vous avez un compte-rendu dans la fenêtre Output1>matrixMul - 0 error(s), 1 warning(s)== Rebuild All: 1 succeeded, 0 failed, 0 skipped ==

Une dernière chose avant de commencer, il faut préciser l’adresse de la machine Target. Sous la rubrique Nexus User Properties on trouve une sous-rubrique Connection Name où vous indi-quez l’IP de cette machine. Lancez le programme Monitor sur la machine Target, donnez un point d’arrêt dans votre code, vous pouvez alors passer la commande Start CUDA Debugging sous le menu Nexus. Si la communication entre Target et Host se passe bien le programme s’arrête, dans le cadre de cet exemple, sur l’instruction int tx = threadIdx.x (fig. 2). En pointant tx vous affichez sa valeur. Suivant le modèle de programmation CUDA, un kernel s’exécute sur une grille de blocks eux-mêmes comptant un certain nombre de threads.

fig. 2

Si vous vous intéressez à un index de blocks et threads particu-liers, allez dans le sous-menu Cuda Focus Picker et précisez votre choix (fig. 3).Prenons l’exemple d’un produit de matrices (voir la version de l’ar-ticle en ligne pour le code).Dans cet exemple on travaille sur une grille de blocks de 8 par 5 et de 16 par 16 de threads par blocks. Mettons-nous dans la peau du thread 0,0 du block 1,0. Pour ce faire on va dans le sous-menu Cuda Focus Picker et on précise notre choix. En cliquant l’icône Step Over pour passer aux instructions suivantes nous arrivons à un passage comme AS(ty, tx) = A[a + wA * ty + tx] où la matrice A est découpée en sous-matrices dans les espaces de shared memory &. Ce que nous voudrions savoir: le thread que nous venons de mettre sous surveillance charge-t-il la bonne

sous-matrice ? Rien de plus simple, ouvrons une fenêtre watch1 (Debug->Windows) et glissons l’expression a + wA * ty + tx dans cette fenêtre pour l’évaluer.

fig. 3

Bien, qu’en est-il des contenus mémoire de la matrice A et sous-matrice As en shared memory. On retourne dans le sous-menu Windows pour ouvrir deux fenêtres Memory. Dans l’une, celle du haut, on affiche A dans l’autre As. N’ayant pas atteint l’instruc-tion __syncthreads() nous n’avons qu’une partie de As (fig. 4). On peut vérifier le chargement complet de As quand on exécute l’instruction de synchronisation.

fig. 4

Il est possible de demander un point d’arrêt sur une adresse. Dans le sous-menu New Breakpoint de Debug choisir l’option New Data Breakpoint et rentrer une adresse comme &C[0] pour cet exemple. Si on demande la poursuite de l’exécution, on atteint notre nouveau point (fig. 5).

GPU, environnements de programmation CUDA

25 MAI 2010 - N°5 212125 MAI 2010 - N°5

fig. 5

Une interrogation qui revient souvent quand on développe une application GPU/CUDA les accès mémoire sont-ils coalescents &? Si ce n’est pas le cas, il faut revoir le code car on se dirige vers des problèmes de performance plus ou moins graves. Pour abor-der cette question, il faut passer à un autre aspect du débogage, l’analyse d’activité. Choisir à partir du menu Nexus le sous-menu New Analysis Activity.

fig. 6

On a coché la case Profile CUDA (fig. 6) et demandé la sur-veillance des accès non coalescents sur la mémoire globale. Lan-çons le processus, le résultat est un compte-rendu assez détaillé (fig. 7).

fig. 7

En cliquant All sous la rubrique Top Kernels by Time nous avons notre renseignement (fig. 8).

fig. 8

Signalons que l’on trouve également dans ce compte-rendu une vue de l’API CALL (fig. 9).

fig. 9

Un dernier aspect, la résolution de problème de violation de mémoire, introduisant dans la source un bug. On active Enable CUDA Memory Checker et on lance l’application. L’application bloque sur le problème et nous indique qu’il a lieu avec le thread (8,15,0) du block (0,4,0) (fig. 10).

fig. 10

Vous pouvez également aborder les problèmes de divergence de branchement à savoir quand les threads d’un même warp explo-rent des chemins différents du fait de la présence d’un if-else. En demandant la fenêtre CUDA Device Summary on a une vue sur l’activité des Warps ( groupement de 32 threads). Dans cet exemple nous travaillons sur des blocks de 256 threads on re-trouve les 8 warps numérotés de 0 à 7. Ce qui est intéressant c’est

GPU, environnements de programmation CUDA

flash informatique2222 25 MAI 2010 - N°5flash informatique 25 MAI 2010 - N°5

le mask de 32 bits (1 thread actif 0 thread inactif ) pour connaître le degré de divergence (fig. 11).

fig. 11

Nous n’avons abordé que quelques aspects de cet environnment car le format papier n’est pas le format idéal pour présenter ce genre d’outil, mais insistons sur le fait que c’est un outil majeur pour développer et optimiser des applications massivement pa-rallèles sur GPU.

Passons à un autre point de la liste: la communauté Python et les GPU.

PyCUDA

Pour celles et ceux acquis au langage Python, PyCUDA offre un wrapper CUDA. C’est un environnement idéal pour le prototypage d’applications, car vous allez travailler dans un environnement in-terprété. Les choses se passent ainsi:Dans un premier temps, comme pour n’importe quel module, on commence par les import pour l’utilisation de PyCUDA (c’est le moment décisif qui valide ou invalide votre installation....)import pycuda.driver as cudaimport pycuda.autoinitfrom pycuda.compiler import SourceModule

On va travailler dans cet exemple sur une matrice 4x4 en simple précision. On importe numpy, qui est le package fondamental pour toute application numérique en Python:import numpya = numpy.random.randn(4,4)a = a.astype(numpy.float32)

On fait l’allocation mémoire sur le GPU et on transfère la matrice sur le device:

a_gpu = cuda.mem_alloc(a.nbytes)cuda.memcpy_htod(a_gpu, a)

Le kernel est un code CUDA C. On donne ce source au construc-teur pycuda.compiler.SourceModule. Ce kernel, qui porte le nom doublify , double chacune des valeurs de la matrice:

mod = SourceModule(""" __global__ void doublify(float *a) { int idx = threadIdx.x + threadIdx.y*4; a[idx] *= 2; } """)

Le code est compilé puis chargé sur le device. La méthode get_function permet d’appeler ce kernel par son nom. On lui donne deux arguments: la matrice et la taille de block 4x4 (par défaut la grille est de 1x1).

func = mod.get_function("doublify")func(a_gpu, block=(4,4,1))

C’est fini on récupère les données sur le host:

a_doubled = numpy.empty_like(a)cuda.memcpy_dtoh(a_doubled, a_gpu)

Pour la suite il faut se reporter à la page d’ Andreas Klöckner de Brown University qui conduit ce projet très intéressant. Passons du domaine académique au domaine commercial. mathema.tician.de/software/pycuda.

CUDA et LAPACK: CULA

EM Photonics propose des versions optimisées de LAPACK &. La version dite Basic est gratuite mais elle est en simple précision et se limite à 6 fonctions (SGESV SGETRF SGEQRF SGELS SGGLSE SGESVD). La version payante dite Premium est un port complet de LAPACK.Si vous envisagez une migration, il faut se référer au guide de programmation qui signale les différences d’approche comme le passage par valeur/référence, le rangement orienté ligne/colonne.// CULAculaStatus s;s = culaSgesvd(’O’, ’N’, m, m, a, lda, s, u, ldu, vt, ldvt);

// Traditionalchar jobu = ’O’;char jobvt = ’N’;int info;sgesvd(&jobu, &jobvt, &m, &n, a, &lda, s, u, &ldu, vt, &ldvt, &info);

La parallélisation sur plusieurs GPU est, pour le moment, ma-nuelle. Voici un squelette de programation d’une factorisation QR &. Dans le programme principal on va:z demander le nombre de devices du système status = culaGetDeviceCount(&numDevices); numThreads = numDevices;

z allouer les structures de données qui vont contenir threads et arguments

threads = (ThreadHandle*)malloc(numThreads*sizeof(ThreadHandle)); args = (ThreadArgs*)malloc(numThreads*sizeof(ThreadArgs));

z lancer les éxécutions des threads for(i = 0; i < numThreads; ++i) { args[i].id = i; args[i].gpu = i % numDevices; args[i].ret = 0;

pthread_create(&threads[i], NULL, threadRoutine, &args[i]); }

z attendre pthread_join(threads[i], NULL);

GPU, environnements de programmation CUDA

25 MAI 2010 - N°5 232325 MAI 2010 - N°5

Pour chacun des threads on va:z attacher un GPU status = culaSelectDevice(args->gpu); Initialiser CULA status = culaInitialize();

z appeler culaSgeqrfstatus = culaSgeqrf(M, N, A, M, TAU);

z quitter CULAculaShutdown();args->ret = EXIT_SUCCESS;

À titre indicatif voici les résultats de benchmark pour un board Intel® DX48BT2/4GB avec cartes GTX 280:

Initializing CULA...Initializing MKL...

Benchmarking the following functions: SGEQRF SGETRF SGELS SGGLSE SGESV SGESVD------------------------------------- -- SGEQRF Benchmark -- Size CULA (s) MKL (s) Speedup------ ---------- ---------- --------- 4096 0.52 2.45 4.6977 5120 0.94 4.58 4.8670 6144 1.55 7.83 5.0615 7168 2.37 12.25 5.1783 8192 2.50 18.32 7.3315 -- SGETRF Benchmark -- Size CULA (s) MKL (s) Speedup------ ---------- ---------- --------- 4096 0.27 1.38 5.1559 5120 0.45 2.56 5.6540 6144 0.71 4.20 5.9301 7168 1.05 6.52 6.2190 8192 1.48 9.65 6.5172 -- SGELS Benchmark -- Size CULA (s) MKL (s) Speedup------ ---------- ---------- --------- 4096 0.74 2.64 3.5537 5120 1.28 4.96 3.8793 6144 2.02 8.31 4.1161 7168 3.00 13.15 4.3880 8192 3.30 19.12 5.7886 -- SGGLSE Benchmark -- Size CULA (s) MKL (s) Speedup------ ---------- ---------- --------- 4096 0.82 6.01 7.3081 5120 1.39 10.24 7.3508 6144 2.20 16.01 7.2857 7168 3.19 23.41 7.3314 8192 3.56 33.00 9.2646 -- SGESV Benchmark -- Size CULA (s) MKL (s) Speedup------ ---------- ---------- --------- 4096 0.33 1.40 4.2376 5120 0.53 2.59 4.9100 6144 0.80 4.23 5.3061 7168 1.15 6.55 5.6845 8192 1.60 9.72 6.0610 -- SGESVD Benchmark -- Size CULA (s) MKL (s) Speedup------ ---------- ---------- --------- 4096 44.61 208.25 4.6678 5120 49.95 350.64 7.0198 6144 76.12 517.99 6.8048 7168 110.90 820.13 7.3950 8192 154.44 1129.61 7.3144

C++ et CUDA: Thrust

Comme ce titre le laisse entendre Thrust est le pendant de PyCU-DA pour les programmeurs de C++. Cette bibliothèque à l’image de la STL & fournit un ensemble de classes de conteneurs telles

que host_vector<T> ou device_vector<T> et d’algorithmes comme reduce() ou inclusive_scan(). L’installation est des plus simples puisqu’elle se résume à déposer un répertoire d’in-clude. C’est un environnement conseillé pour prototyper des ap-plications complexes si vous avez une bonne pratique de la STL. Passons rapidement en revue quelques aspects caractéristiques de cette bibliothèque. Les appels aux fonctions cudaMalloc et cudaMemcpy ont été masqués. Les codes gagnent en lisibilité comme le montrent ces quelques lignes:

// allocate host vector with two elementsthrust::host_vector<int> h_vec(2);

// copy host vector to devicethrust::device_vector<int> d_vec = h_vec;

// manipulate device values from the hostd_vec[0] = 13;d_vec[1] = 27;std::cout << "sum: " << d_vec[0] + d_vec[1] << std::endl;

host_vector désigne les vecteurs stockés sur CPU, device_vec-tor les vecteurs stockés sur GPU.

On trouve également un ensemble d’itérateurs. Citons le zip_iterator qui permet de construire à peu de frais des structures de données qui ne sont pas naturelles dans CUDA comme des n-uplet "tuple"// initialize vectorsdevice_vector<int> A(3);device_vector<char> B(3);A[0] = 10; A[1] = 20; A[2] = 30;B[0] = ’x’; B[1] = ’y’; B[2] = ’z’;

// create iterator (type omitted)first = make_zip_iterator(make_tuple(A.begin(), B.begin()));last = make_zip_iterator(make_tuple(A.end(), B.end()));

first[0] // returns tuple(10, ’x’)

On réduit ces données à la valeur du tuple maximum.

// maximum of [first, last]maximum< tuple<int,char> > binary_op;reduce(first, last, first[0], binary_op); // returns tuple(30, ’z’)

Calculer la norme d’un vecteur en Thrust c’est réduire les éléments d’un vecteur à une somme dont les éléments ont été élevés au carré ce qui s’écrit de façon relativement formelle comme:

sqrt( transform_reduce(A.begin(), A.end(), unary_op, init, binary_op) )

On a défini une fonction square avec une surcharge l’opérateur ():struct square{__host__ __device__float operator()(float x) { return x * x; }};

et les arguments de l’algorithme transform_reduce comme étant:

square unary_op;plus<float> binary_op;float init = 0;

GPU, environnements de programmation CUDA

ISSN 1420-7192

Conclusion

Ce panorama est loin d’être complet et nous ferons un second point après la conférence GPU  Technology  Conference (GTC 2010) qui se tiendra fin septembre. La soumission pour cette conférence vient de s’ouvrir et j’invite tous les membres de la communauté GPU de l’EPFL à participer.

GPU, environnements de programmation CUDA

https://secure-it.epfl.chcinquième épisode

N’oubliez pas de protéger aussi vos ordinateurs privés contre les virus.

Don’t forget to protect also your private computers against viruses.

Actualités

Antivirus à la maisonAntivirus at home

shared memory ou mémoire partagée désigne un large bloc de mémoire vive qui est accédé par différentes unités de calcul au sein d’un ordinateur parallèle.

STL (Standard Template Library): cette bi-bliothèque est un ensemble d’objets et de méthodes standards pour le C++; le code C++ normalisé pour certains objets classiques, garantissant un code source lisible, facilement réutilisable.

GLOSSAIRE &coalescence: action de fusionner 2 blocs

de mémoire libre adjacents.

GPU (Graphics Processing Unit): ce type de processeur graphique, issu du monde des jeux vidéos, est utilisé à présent pour le calcul scientifique, apprécié pour sa structure hautement parallèle.

LAPACK (Linear Algebra PACKage): biblio-thèque logicielle dédiée à la simulation numérique, très utilisée pour tester les performances (benchmark) d’un proces-seur pour le calcul numérique

QR: une des méthodes les plus utilisées en algèbre linéaire pour décomposer une matrice.

Nous sommes en cours d’évaluation de la consommation élec-trique par GigaFlops calculé sur des différentes cartes NVIDIA en vue d’évaluer si on peut atteindre le 1 Joule/GFlops sur ces archi-tectures. n