Title: Laurent Bobelin, CS-SI
1Du Client/Serveur aux architectures de grilles de
calculs et de données
2Plan du cours
- Motivation générale
- Les différents types de parallélisme
- Les architectures parallèles et distribuées
- Les environnements de programmation parallèle
- Les paradigmes systèmes distribués grande échelle
et de grille - Architecture des grilles de calcul et de données
- Perspectives pour les grilles de calcul et de
données
3Plan Motivation générale
- Les besoins
- Physique
- Des confins de la matière jusquà la simulation
des surfaces - Sciences de la terre
- Observation de la terre
- Biologie
- Analyse du génome humain
- Conception Assistée par Ordinateur
- Modélisation automobile
- Autres
- Débouchés industriels
- Industriels intéressés
- Les fournisseurs de services
- Les fournisseurs de ressources
- Les applications
- Les profils industriels
- Conseil
- Maîtrise dœuvre
- Conception, déploiement et administration
4Motivation générale Les besoins Physique
- Large Hadron Collider
- Modélisation de surface
- Applications nucléaires
5Motivation générale Les besoins Physique LHC
- Le CERN (Centre dEtude et de Recherche
Nucléaire) basé en Suisse, est le plus grand
centre mondial de recherche en Physique des
Hautes Energies et en physique des particules. - Le Large Hadron Collider (LHC) est un projet du
CERN construire le plus puissant accélérateur
de particule au monde, qui devrait être achevé en
2007. - Le but faire entrer en collision des protons et
analyser les traces de cette collision pour
prouver lexistence de particules sous-jacente,
les bosons de Higgs
6Motivation générale Les besoins Physique LHC
- Le LHC est constitué dune boucle de 20km de
diamètre, dans laquelle sont injectés des
protons. - Le long de cette boucle, des capteurs sont
disposés pour percevoir les traces de particules.
7The LHC Detectors
Le LHC
CMS
ATLAS
6-8 PetaBytes / year 108 events/year 103
batch and interactive users
LHCb
8Motivation générale Les besoins Physique LHC
- Lensemble des capteurs une fois le LHC
opérationnel générera plusieurs péta-octets de
données par an, quil faudra analyser et stocker. - Le CERN est donc de facto un des plus grands
acteurs des projets de recherche de grille
européen.
9Motivation générale Les besoins Physique
Modélisation de surface
- Modéliser une surface permet de prédire les
changements climatiques. - La structure des sols peut varier et induit des
changements - La végétation à une influence
- Plus le modèle est fin, plus la modélisation de
surface est pertinente. - ? Plus les ressources informatiques mises à
disposition de lapplication sont importantes,
meilleure sera la modélisation.
10Motivation générale Les besoins Physique
Application nucléaire
- Modéliser le comportement du cœur dun réacteur
nucléaire - Analyse des points chauds
- Modélisation des matériaux et de leur résistance
- Prédire le comportement en cas dincident
- ? De même que pour le cas précédent, plus les
ressources informatiques mises à disposition de
lapplication sont importantes, meilleure sera la
modélisation.
11Motivation générale Les besoins Observation
de la terre
- Envoi de satellite pour observer la terre
- Les challenges des projets ESA
- Environ 100 Gbytes de données par jour pour la
mission(ERS 1/2) - 500 Gbytes, pour la mission ENVISAT (2002).
Source L. Fusco, June 2001
12Motivation générale Les besoins Biologie
- Bio-informatique
- Phylogenetique
- Search for primers
- Statistiques génétiques
- Parasitologie
- Data-mining sur des bases ADN
- Comparaison géometrique protéinique
- Imagerie Médicale
- Modélisation et imagerie numérique
- Medical data and metadata management
- Analyse de mammographies
13Motivation générale Les besoins Conception
Assistée par Ordinateur
- Automobile
- Construire un prototype est dun coût très élevé
- Des défauts de conception peuvent apparaître à la
construction du prototype - De nombreux tests sur la sécurité, la vitesse,
etc, peuvent demander de construire de nombreux
prototypes. - ? Nécessité de modéliser finement les prototypes
pour baisser le coût de conception dun nouveau
modèle
14Motivation générale Les besoins Autres
- Renault
- simulations, modélisation,
- Météorologie et climatologie
- Industries Aéronautiques
- simulation et modélisation, réalité virtuelle
- Simulation grandes échelle tectonique, modèles
atmosphériques - EDF simulation Temps-réel
- ONERA simulation de phénomènes physiques
15Motivation générale Débouchés industriels
- Industriels intéressés
- Les fournisseurs de services
- Les fournisseurs de ressources
- Les applications
- Profils industriels
- Conseil
- Maîtrise dœuvre
- Conception, déploiement et administration
- Middlewares
- Application
- Exploitation
16Motivation générale Débouchés industriels
Industriels intéressés
- Les fournisseurs de services
- Entreprise ayant pour activité de vendre des
services (stockage, calcul, hébergement) IBM par
exemple. - Les fournisseurs de ressources
- Entreprise voulant rentabiliser les ressources
informatiques quelle possède, comme CGG. - Les applications
- Entreprise voulant entreprendre des calculs de
grande échelle
17Motivation générale Débouchés industriels
Industriels intéressés Les fournisseurs de
services
- Les besoins des ressources sont multiples
calcul, stockage, intégration, portage,
administration, mise en œuvre, développement de
solutions logicielles ad-hoc. - Quatre types
- Ressources
- Grandes entreprises informatiques proposant des
solutions tout-en-un (IBM) - Logiciels Entreprises fournissant des
logiciels génériques pour les grilles (Sun,
Microsoft, ) et voulant dominer le marché. - Les SSII conseil, développement,maintenance,
migration, etc. (CSSI, Atos, )
18Motivation générale Débouchés industriels
Industriels intéressés Les fournisseurs de
ressources
- Certains industriels possèdent un grand nombre de
ressources (calcul, stockage) inutilisées - Ordinateurs personnels
- Ressources aléatoires dans leur nombre et leur
disponibilités - Ressources contraintes par le temps
- Analyse à un instant T demandant beaucoup de
ressources, mais peu utilisées le reste de la
journée - CGG, météorologie
- Ces ressources peuvent être vendues aux
applications nécessitant beaucoup de ressources.
19Motivation générale Débouchés industriels
Industriels intéressés Les applications
- Industriels ayant besoin dun grand nombre de
ressources - Simulation PSA, EDF, CEA,
- Prédiction météorologie (Méteo de France, CGG)
- Nécessité de migrer leurs applications
- Nécessité daméliorer les performances de leurs
applications - Rester/devenir les leaders sur leur marché
20Motivation générale Débouchés industriels Les
profils industriels
- Conseil étude dopportunité, expression des
besoins, réalisation de cahier des charges. - Maîtrise dœuvre et assistance à la maîtrise
douvrage. - Conception, déploiement et administration des
infrastructures de grille. - Middlewares développement,adaptation,
installation. - Application développement, adaptation.
- Exploitation gestion, évolution.
21Motivation générale Débouchés industriels Les
profils industriels conseil
- Conseil
- étude dopportunité est-il utile pour une
application dêtre migrée vers une technologie de
grille ? - expression des besoins quels sont les besoins
dune application ? - réalisation de cahier des charges comment
peut-on faire, et dans quel délais peut on
obtenir un résultat ?
22Motivation générale Débouchés industriels Les
profils industriels maîtrise dœuvre et
assistance à la maîtrise douvrage
- Maîtrise dœuvre
- Coordination, relations entre la problématique
applicative et les technologies de grille - Besoins lors de la migration ou du portage
dapplication sur grille
23Motivation générale Débouchés industriels Les
profils industriels Conception, déploiement et
administration des infrastructures de grille
- Conception quelle est la meilleure architecture
pour un ensemble dapplications donné ? - Déploiement comment utiliser les ressources ?
- Administration comment faire en sorte que les
ressources restent opérationnelles ?
24Motivation générale Débouchés industriels Les
profils industriels middleware
- Développement un middleware adapté aux besoins
- Adaptation un middleware existant, ladapter
aux besoins - Déploiement rendre lutilisation effective
25Motivation générale Débouchés industriels Les
profils industriels Applications
- Développement
- Les grilles ont des spécificités qui sortent du
domaine du calcul parallèle classique - Nécessité de développer des applications tirant
un profit maximum des ressources - Adaptation
- Des applications peuvent bénéficier dune
gridification comment ladapter aux
problématiques grilles ?
26Motivation générale Débouchés industriels Les
profils industriels
- Exploitation
- Gestion gérer et administrer une grille dans
une entreprise, veiller a son bon
fonctionnement, gérer les utilisateurs - Évolution redimensionner une grille, faire
évoluer son middleware et les logiciels associés.
27Plan Les différents types de parallélisme
- Introduction au parallélisme
- Les différents types de parallélisme
- Granularité
28Introduction au parallélisme
- Parallélisme
- utiliser plusieurs ordinateurs ensemble pour
résoudre des problèmes - plus gros (taille mémoire, espace disque)
- plus rapidement (puissance CPU)
- Mot clé efficacité
- Différents domaines
- théoriques
- algorithmique
- ordonnancement
- pratiques
- supports
- modèles
- si on veut de l efficacité les deux sont
évidemment liées
29Les différents types de parallélisme
- Client/serveur
- Parallélisme de tâche application exhibant un
graphe de tâches dont certaines peuvent être
effectuées en parallèle - Parallélisme de données application qui traite
de la même façon plusieurs jeux de données. - Parallélisme mixte application exhibant du
parallélisme de données et de tâches - Parallélisme massif application exhibant un
gros potentiel parallèle
30Granularité
- On appelle granularité la taille dun
traitement séquentiel dans une application
parallèle - Cette granularité dépend non seulement de
lapplication, mais aussi de son implémentation - On parle de gros grain pour les applications
ayant une forte exécution séquentielle - Fréquence de communication moins grande
- Pas forcement moins gourmande en débit !
- On parle de grain fin pour les applications
ayant une forte exécution parallèle de tâche - Plus sensible à la latence du réseau
31Granularité
Sous-Populations
- Parallélisation à gros grain
SP1
SP2
Population
Division
SP4
SP3
- Parallélisation à grain fin
Processeurs
A
B
C
IndividusA B C D E F
Distribution
D
E
F
32Plan Les architectures parallèles et distribuées
- Les multiprocesseurs
- Les clusters
- Les environnements hétérogènes
- Les centres de calcul
33Les multiprocesseurs pourquoi
- En supposant que les microprocesseurs demeurent
la technologie dominante pour les uniprocesseurs,
il semble naturel dimaginer en connecter
plusieurs ensemble pour augmenter la performance - Il nest pas clair que le taux dinnovation au
niveau de larchitecture pourra se continuer
longtemps - Il semble quil y ait des progrès constants dans
les 2 domaines où les machines parallèles ont le
plus de difficulté le logiciel et les
interconnexions
34Notion daccélération
- Accélération gain de temps obtenu lors de la
parallélisation du programme séquentiel. - Définition Soit T1 le temps nécessaire à un
programme pour résoudre le problème A sur un
ordinateur séquentiel et soit Tp le temps
nécessaire à un programme pour résoudre le même
problème A sur un ordinateur parallèle contenant
p processeurs, alors l accélération (Speed-Up)
est le rapport S(p) T1 / Tp - Cette définition nest pas très précise
- Pour obtenir des résultats comparables il faut
utiliser les mêmes définitions d Ordinateur
Séquentiel et de Programme Séquentiel
35Notion daccélération
S(p)
Région des accélérations sur-linéaires
accélération linéaire
Région des accélérations sub-linéaires
0
P nombre de processeurs
36Notion defficacité
- Soit T1(n) le temps nécessaire à lalgorithme
pour résoudre une instance de problème de taille
n avec un seul processeur, soit Tp(n) celui que
la résolution prend avec p processeurs et soit
s(n,p) T1(n) / Tp(n) le facteur daccélération.
On appelle efficacité de l algorithme le nombre - E(n,p) S(n,p) / p
- Efficacité normalisation du facteur
d accélération
37Efficacité/Accélération
- Multiplication de matrices ( A moins bon que B)
- Algorithme A
- Temps en séquentiel 10 minutes
- Nombre de processeurs 10
- Temps en // 2 minutes
- Accélération 10/2 5 (l'application va 5 fois
plus vite) - Efficacité 5/10 1/2
- Algorithme B
- Temps en séquentiel 10 minutes
- Nombre de processeurs 3
- Temps en // 4 minutes
- Accélération 10/4 5/2 2,5 lt 5
- Efficacité (5/2)/3 0,8 gt 0,5
38Remarques
- Une accélération linéaire correspond à un gain
de temps égal au nombre de processeurs (100
activité) - Une accélération sub-linéaire implique un taux
d activité des processeurs lt 100
(communication, coût du parallélisme...) - Une accélération sur-linéaire implique un taux
dutilisation des processeurs gt à 100 ce qui
paraît impossible (en accord avec la loi
d Amdhal) - Cela se produit parfois (architecture, mémoire
cache mieux adaptée que les machines
mono-processeurs)
39Puissance de calcul
- Nous retrouvons couramment MIPS ou FLOPS
- MIPS (Machine Instructions Per Second)
représente le nombre d instructions effectuées
par seconde - FLOPS (FLoating Point Operations Per Second)
représente le nombre d opérations en virgule
flottante effectuées par seconde - Les multiplicatifs K 210 M 220 G 230
- Certains processeurs vectoriels ont une
puissance de calcul de 300 Mflops par exemple.
40Les types de multiprocesseurs
- Taxonomie proposée par Flynn dans les années 60
- SISD (Single Instruction Single Data)
uniprocesseur - SIMD (Single Instruction Multiple Data)
plusieurs processeurs, qui exécutent en parallèle
les mêmes instructions sur plusieurs données - MISD (Multiple Instruction Single Data) pas
dexemple connu - MIMD (Multiple Instruction Multiple Data)
plusieurs processeurs qui opèrent de façon
indépendantes ou semi-indépendantes sur leurs
données
41Les types de multiprocesseurs
42Les types de multiprocesseurs
- SIMD (Single Instruction Multiple Data)
- séquenceur unique
- tableau de processeurs
- MISD (Multiple Instruction Single Data)
- classe bizarre
- pipeline ?
- MIMD (Multiple Instruction Multiple Data)
- Classe la plus importante
- processeurs autonomes
- Mémoire partagée ou distribuée
- Cette classification nest pas en corrélation
avec les machines réelles
43MIMD la mémoire
- Les deux classes de multiprocesseurs MIMD sont
largement répandus le choix de MIMD-SD ou
MIMD-DM dépendant du nombre de processeurs dans
la machine - Mémoire partagée centralisée (centralized shared
memory) petit nombre de processeurs. - Mémoire distribuée grand nombre de
processeurs.
44Classification unifiée des types de
multiprocesseurs
- SIMD-SM
- Contrôle centralisé de données centralisées
- Machine vectorielles mono-processeurs
- Instruction unique appliquée de manière
séquentielle à des données de type vecteur - Fonctionnement en mode pipeline
- Pipeline
- Décomposition de l opérateur f f3 f2 f1
- On applique successivement f1, f2 puis f3 sur
cette donnée - circuits dans les processeurs
- circuit composant électronique qui prend d en
entrée et donne f(d) en sortie - séquence de circuits en étages
45Classification unifiée des types de
multiprocesseurs
- SIMD-DM
- Contrôle centralisé, données distribuées
- Processeurs de faible puissance éléments de
calcul - Séquenceur unique
- MIMD-DM
- Contrôle distribué, données distribuées
- Un processeur entité de calcul autonome
(processeur mémoire) - Communication par envoi de messages importance
du réseau d interconnexion - Avantage facile d augmenter le nb de proc
- Inconvénients performances étroitement liées
au réseau et besoin d OS nouveaux.
46Classification unifiée des types de
multiprocesseurs
- MIMD-SM
- Mémoire divisée en plusieurs bancs
- Synchronisation des accès à la mémoire, un seul
processeur peut accéder en lecture ou écriture à
un banc - Machine multi-processeurs Cray 2, NEC SX-3
- Faible nombre de processeurs
- Puissance de la machine repose sur la puissance
des processeurs et non sur le nombre
47Types de multiprocesseurs utilisés
- Les premiers multiprocesseurs étaient du type
SIMD, et cette architecture est encore utilisée
pour certaines machines spécialisées - Le type MIMD semble être la cible de choix de nos
jours pour des ordinateurs dapplication
courante - Les MIMD sont flexibles on peut les utiliser
comme machines à un seul utilisateur, ou comme
machines multi-programmées - Les MIMD peuvent être bâties à partir de
processeurs existants
48Architectures parallèles exemple MIMD
IBM SP IBM SP-2 (from MHPCC) IBM SP IBM SP 680
IBM SP 680 specs IBM X server Cray T3E
Compaq (DEC) Alpha Chips ( Alpha white paper )
Cray white paper SGI Origin 2000 ,
(3000) performance Tuning for the Origin2000
R10000 Chip , R10000 Brief , Other
MIPS Chips , MIPS
49Architectures parallèles exemple MIMD
Compaq Servers, GS320 server Distributed
Memory Vector NEC (Japan) Fujitsu (Japan)
Hitachi (Japan) Beowulf Projects Beowulf
slides (Modi) Intel Teraflop Machine , (
Performance Tuning ) Linux Intro , Installing
Linux , Linux Palmtops Windows NT/2000 based
Beowulf Systems , ( MPICH )
50Architectures parallèles exemple MIMD le Cray
T3E
- La machine de chez CRAY, deux types de modèles,
refroidissement à air (pas plus de 128
processeurs) ou par un liquide (jusqu'à 2048
processeurs). En amalgamant les deux de 16 à
2048 nœuds comprenant chacun - un DEC Alpha EV5 (600 MFlops) de 64 Mo à 2 Go de
mémoire vive - un réseau d'interconnexion en tore 3D (bande
passante de 2 à 128 Go/s).
Performance de crête de 9.6 GFlops à 1.2 TFlops,
jusqu'à 4 To de mémoire vive.
51Architectures parallèles exemple SIMD
- CM-1, CM-2, CM-200 ( NPAC )
- Maspar MP-1 MP-2
- Cambridge Parallel Processing ( NPAC pages ,
Overview ) - Oxford Micro
- Pentium 4
- Intel SIMD
- Intel MMX SIMD (UBC)
- Motorola 7450
- Motorola 7400 processor
- Motorola Altivec
52Architectures parallèles exemple SIMD
53Architectures de grappes de PC
54Définition
- Une grappe (cluster) est une collection de
machines interconnectées, utilisée comme une
ressource de calcul unifiée - Une grappe Beowulf se définit par les
propriétés suivantes - composants à grande diffusion
- composants réseau à faible coût
- système d exploitation open source
- hardware non propriétaire
- logiciel open source
55Des grappes de référence le Top500
- Sandia 592 procs alphas, myrinet, linux, 44
- NCSA 256 pentiums, myrinet, NT, 68
- Cornell 256 pentiums, giganet, NT, 198
- Los Alamos 140 alphas, Ether100/1000, linux, 265
- Paderborn 192 pentiums, SCI, solaris, 351
- Bonn 144 pentiums, myrinet, linux, 454
- Chiba, Los Lobos, CEA, FSL, en 2000
56Technologies
? IA64
57Linterconnexion réseau
Infiniband
SCI
HIPPI
VIA
ATM
Fibre Channel
WDM
Myrinet
PCI
...
FDDI
Ethernet
...
SCSI
...
SAN
LAN
WAN
MAN
58La technologie Myrinet
- Commutation de paquets
- Topologie très souple
- Carte réseau muni d un processeur RISC pilotant
plusieurs contrôleurs DMA
Local memory
PCI bus
PCI BRIDGE
DMA controller
RISC processor
Host interface
Packet Interface
network
59La technologie SCI
- réseau à capacité dadressage
- adressage des mémoires distantes
- lecture/écriture distante sans interrompre le
processeur distant - plus de nécessité de programmation par échanges
de messages - Topologie en grille
60La technologie VIA
Une interface logicielle dont lobjectif est de
limiter les accès au système et les copies de
buffers. Peut être implémentée en hardware
application
application
VI
données
contrôle
contrôle
Standard industriel proposé par Microsoft, Intel,
Compaq. Aujourdhui par Dell, Intel, Compaq
Système d exploitation
Système d exploitation
données
Contrôleur réseau
Contrôleur réseau VIA
Architecture VIA
Architecture TCP/IP
61Les autres
- Memory channel
- espace d adressage mémoire unique
- bonne latence
- passage à l échelle par SMP donc limité
- SupperHIPPI, FibreChannel, Infiniband, ATM, WDM,
Quadrics, ... - offre cluster balbutiante ou de luxe
62SCI pour/contre
- manque de maturité
- monopolise le CPU
- quelle fiabilité en cas de panne d un nœud
- espace d adressage mémoire unique
- latence/messages de petite taille
Myrinet pour/contre
- Plus grande maturité
- intégrateurs en France
- bande passante
- Autant de MPI/drivers/firmware que de grappes
63Les autres possibles
- ServerNet II
- VIA
- orienté haute disponibilité contrôle d erreurs
en hardware, redondance - support de Compaq
- Giganet
- VIA
- disponible sur NT/linux
- débit/messages de grande taille
Mais quelle maturité ? Quel avenir pour VIA ?
64Les autres possibles
- (Double) Fast Ethernet
- standard
- le moins cher
Mais latence importante et très forte utilisation
du CPU (en attendant VIA et des cartes avec
processeur)
- Gigabit Ethernet
- standard, plusieurs fournisseurs
- de moins en moins cher
- switches 64 ports
65Lintégrateur/vendeur
- support scientifique
- support technique
- maintenance
- intégration hardware
- intégration software
66Des options coûteuses
- Racks
- contrôle souhaité (BIOS, wake on line, boot PXE,
lien série, ) - concentrateurs d alimentation électrique
- écrans, switchs d écran ?
- disques locaux
- des serveurs supplémentaires contrôle, login,
fichier, développement, scheduler
67Les environnements hétérogènes
68Les environnements hétérogènes définition
- Un environnement distribué hétérogène est le
regroupement de ressources informatiques (CPU,
Disk, mémoire) dorigine, de taille et de type
divers. - Absence de réseau de communication spécifique
- Souvent appelé le cluster du pauvre , la
récupération de ressources informatique
inutilisée, par exemple les stations de travail
la nuit, pour former une machine multiprocesseurs
virtuelle hétérogène, est une pratique courante
des laboratoires
69Les environnements hétérogènes Caractéristiques
- Hétérogénéité
- Réseaux (couches de communications
multi-protocoles), processeurs, hiérarchies
mémoire profondes - Systèmes
- Équilibrage des charges (ordonnancement)
- Distribution des données (statique et dynamique)
- Évaluation des performances, modélisation des
architectures - Simulation
70Les environnements hétérogènes Problématique
spécifique
- Hétérogénéité des performances
- Lhétérogénéité des performances induit davoir
un modèle de description des performances pour
chaque architecture et des algorithmes
dordonnancements ad hoc. - Hétérogénéité des systèmes
- Les machines peuvent être sous Linux, Windows
- Perte de fiabilité
- Les réseaux locaux sont moins fiables quun
réseau dédié et les machines plus sujettes aux
pannes. - Perturbation par les utilisateurs
71Les centres de calcul une architecture pour le
calcul intensif et le stockage de masse le
centre de calcul de la Doua
72Centre de calcul de lIN2P3
- IN2P3 Institut National de la Physique
Nucléaire et de la Physique des Particules - Centre de calcul crée en 1986. Situé à Lyon sur
le campus de la DOUA - 35 ingénieurs pour la conception, la mise en
place et lexploitation de linfrastructure
informatique
73Qui sont les utilisateurs ?
- 2500 utilisateurs réguliers issus de la physique
des particules, nucléaire et astrophysique - 50 expériences, dont
- - LHC CERN à Genève 3 Po/an à partir de 2008
- - D0 FERMILAB à Chicago 150 To/an
- - BABAR SLAC en Californie 150 To/an
74Architecture
- Architecture distribuée
- Stockage et calcul sont séparés
- Réseau local Gbits Ethernet
75Cluster
- 1000 processeurs (90 Linux Redhat 7.2)
- 500 KSpecInt2000 (P3 1GHz 400 SpecInt2000)
- Soumission de job BQS
- Calcul parallèle
76Stockage sur bande
- 6 silos gérant
- 36000 cartouches
-
- 720 To avec cartouche 20 Go
- Données accessibles par HPSS
77Espace occupé sur serveur
- Serveur AFS 3 To
- Montage NFS1,5 To
- Cache HPSS6 To
- Serveur Objectivity20 To
- Capacité totale 60 To
78Réseau
- Hébergement dun nœud Renater International NRI
- Très bonne connectivité
- Domaine in2p3.fr
79La bio-informatique au centre de calcul de la Doua
- Biométrie évolutive - CPU pour calcul darbre
de philogénie - Prédiction de structure de protéine- CPU pour
comparaison de séquences - Aide au diagnostic pour dépistage cancer du
sein- STOCKAGE des images et des métadonnées - Recherche des facteurs génétiques impliqués dans
la polyarthrite rhumatoïde
- CPU pour identifier les
régions candidates
80Conclusion
- Le CC-IN2P3 est un centre multi-services
- Calcul, stockage de masse
- Réseau à haut-débit, User Support
- Service annexe
- Hébergement de service web (SFP,), webcasting
et visioconférence - Base de donnée, informatique administrative (DSI
du CNRS
81Les environnements de programmation parallèle
82Logiciels
- gestionnaire de batch/ressources
- Compilateurs
- MPI, OpenMP bibliothèques
- outils de trace et de debug
- outils de déploiement et d administration
- systèmes de fichiers
- image unique de système
83gestionnaire de batch/ressources
- gestionnaire de batch
- Logiciel coordonnant lactivité des nœuds dune
architecture distribuée - Responsable de lordonnancement effectif, et du
partage des ressources entre utilisateur - Fournit une abstraction dun ensemble de queues
dans lesquelles sont mises en attente les
applications des utilisateurs - PBS, BQS, Mosix, Sun Grid Engine
84Programmation parallèle et répartie
- Conception
- Modélisation
- Algorithmique
- Langage
- Compilation
- Exécution
- Gestion dactivités
- Communications
- Mise au point
- Régulation de charge
- Gestion de données
- Sécurité
-
Programme parallèle
Proc. 0
Proc. 1
Proc. 2
Proc. 3
85Supports et environnements dexécution (1)
- Pour les utilisateurs et leurs applications
- Abstractions de haut niveau
- Portabilité
- Efficacité !
Applications
Interface de programmation (API)
Support dexécution
Systèmes dexploitation (OS)
Grappes, grilles, machines parallèles, réseaux,
86Supports et environnements dexécution (2)
- Etendre et spécialiser les OS
- Centralisés et complétés pour le distribué
- Nouveaux modèles (tâches, communication,
fichiers,) - Exemple Stockage de fichiers, réplication,
cache,
Applications
Interface de programmation (API)
Support dexécution
Systèmes dexploitation (OS)
Grappes, grilles, machines parallèles, réseaux
87Plan Les paradigmes systèmes distribués grande
échelle et de grille
- LDAP
- Les systèmes peer to peer
- Internet computing
- Metacomputing
- Grille de service
- Grille ASP
- Grille de calcul
- Grille de données
88Pourquoi vous parler de LDAP ?
- Des quon passe dune échelle locale à une
échelle plus large, apparaît le besoin de
centraliser les connaissances à propos des
ressources qui sont à disposition - LDAP est un protocole standardisé dannuaire,
utilisée dans la plupart des entreprises qui ont
au moins plusieurs agences - LDAP est utilisé comme protocole de communication
dans plusieurs produits dannuaires (Active
Directory de Microsoft, Novell Directory Server
(NDS), Sun One)
89LDAP
- Lightweight Directory Access Protocol
- A lorigine un projet de lUniversité du Michigan
- Popularisé par Netscape
- Normalisé par lIETF
- LDAP v2 RFCs 1777 à 1779, RFC 1798, RFC 1960
- LDAP v3 Core RFCs 2251 à 2256
- LDAP C API RFC 1823
- 3 groupes de travail LDAPEXT, LDUP, LSD
- Initialement version light de DAP sur TCP/IP
- Evolution vers un service dannuaire complet
- communications serveur/serveur, sécurité
- Acceptation quasi globale comme protocole daccès
à un annuaire ...
90LDAP
- On parle dannuaire pour un système dinformation
permettant de stocker des données relativement
statiques sur un grand nombre dentités
(ressources, utilisateur) - Structure arborescente
- Standard de communication pour linterrogation
dun annuaire - Implémentation open LDAP, Active Directory
91Problématiques
- Au sein des Fortune 500, il existe en moyenne
plus de 150 référentiels stockant des données sur
les composants du système dinformation (source
Gartner Group)
92Référentiel de sécurité unique
Intranet
Authentification
Autorisation
Kerberos
Windows 2000
Ressources
RADIUS
X.509/PKI
Tickets Kerberos
Active Directory
Extranet
Certificats
- Windows 2000 supporte plusieurs modèles
dauthentification et un modèle dautorisation
unique - Active Directory fournit un point focal
dadministration, des services de certificats et
un serveur de clés Kerberos - Facilite la liaison des Intranets Extranets
93Administration des ressources
Domaine
Utilisateurs
Machines
Applications
Périphériques
Finance
RH
94Disponibilité globale des données
Domaine dentreprise
Trouver Tous les Dupont
Réponse
- Chaque réplique stocke une copie des données du
domaine - Chaque réplique peut résoudre une requête
- Support idéal des données didentité des
utilisateurs
95Intégration des applications
Domaine
Utilisateurs
Machines
Applications
Périphériques
Finance
RH
96Active Directory au cœur de lentreprise
- Utilisateurs
- Informations compte
- Privilèges
- Profils
- Stratégies
- Serveurs
- Profils de gestion
- Infos réseau
- Services
- Imprimantes
- Ressources partagées
- Stratégies
- Clients
- Profils de gestion
- Infos réseau
- Stratégies
- Point Central de Gestion
- Utilisateurs ressources
- Securité
- Délégation
- Stratégie
Active Directory
97Services de lActive Directory
Stockage hiérarchique des données
- Création darborescences possible
- Sadapter à la structure de lorganisation
Modélisation des éléments sous forme dobjets
- Ressources vues comme des objets
- Dotés dattributs définis ds 1 Schéma
Interrogation souple
- Modes daccès aux données multiples
- Optimisé pour traiter les requêtes
Contrôle daccès évolué et granulaire
- Sécurisation au niveau des attributs
- Délégation dadministration
Réplication multi-maître
- Serveurs accessibles en lecture/écriture
- Optimisé pour un fonctionnement WAN
98Stockage hiérarchique
Domaine
Machines
Utilisateurs
Applications
Périphériques
Marketing
RH
Organizational Unit
Objet
- Larborescence fournie un support pour modéliser,
chercher et administrer les informations au moyen
de stratégies
99Modélisation sous forme dobjets
Domaine
Utilisateurs
Machines
Applications
Périphériques
C
C
C
A
A
A
D
D
D
Marketing
- Object Class Computer
- Name JEAND01
- IP Address 12.34.56.78
- OS Windows 2000
- Object Class User
- Name Jean Dupont
- Email JeanD_at_abc.fr
- Phone 555-1234
U
U
U
100Méthodes daccès à linformation
LDAP Version 3
- Standard de lindustrie des protocoles daccès
aux annuaires - Support natif
- Expose lensemble des fonctionnalités
101Réplication
Site de Seattle
Site de Boston
Limite du domaine
DC 1
WAN
DC 8
DC 7
DC 3
DC 2
DC 4
DC 9
DC 5
DC 6
Site de Chicago
102LDAPUtilisation de LDP
103LDAPUtilisation de LDP
104LDAP quelques mots sur LDIF
- LDIF est le format le plus répandu de stockage de
LDAP. - Format texte, assez lisible
- Autant de versions des objets présents que
dimplémentation de ldap.
105Exemple de LDIF
- Define top-level entry
- dn dcmycompany,dccom
- objectClass dcObject
- dcmycompany
- Define an entry to contain people
- searches for users are based on this entry
- dn oupeople,dcmycompany,dccom
- objectClass organizationalUnit
- ou people
- Define a user entry for Janet Jones
- dn uidjjones,oupeople,dcmycompany,dccom
- objectClass inetOrgPerson
- uid jjones
- sn jones
- cn janet jones
- mail j.jones_at_mycompany.com
- userPassword janet
106LDIF exemple (suite)
- Define an entry to contain LDAP groups
- searches for roles are based on this entry
- dn ougroups,dcmycompany,dccom
- objectClass organizationalUnit
- ou groups
- Define an entry for the "tomcat" role
- dn cntomcat,ougroups,dcmycompany,dccom
- objectClass groupOfUniqueNames
- cn tomcat
- uniqueMember uidjjones,oupeople,dcmycompany,dc
com - uniqueMember uidfbloggs,oupeople,dcmycompany,d
ccom - Define an entry for the "role1" role
- dn cnrole1,ougroups,dcmycompany,dccom
- objectClass groupOfUniqueNames
- cn role1
- uniqueMember uidfbloggs,oupeople,dcmycompany,d
ccom
107Cas pratique utilisation de java pour
lauthentification et lautorisation en Java avec
JAAS
108 Plan
- Les différents aspects de la sécurité JAVA.
- Évolution de la sécurité depuis JAVA 1.0
- La protection de lutilisateur.
- La protection du système (JAAS).
- Authentification
- Autorisation
- Étude détaillé
- Démo
109La sécurité JAVA.
- Aspect fondamentale, dès la première version.
- Principe de Sand-Box.
- Évolution gt Granularité très fine
- Définition de stratégies de sécurité.
110La sécurité JAVA.
- Nouveaux dans JDK 1.4
- JCE 1.2 (Java Cryptography Extension).
- JSSE (Java Secure Socket Extension).
- JAAS (Java Authentification Autorisation
Service).
111Évolution de la sécurité JAVA
- JAVA 1.0 (1995)
- But Protéger lutilisateur du système.
- Concernait principalement les applets.
- Apparition du principe SandBox .
- Un code non approuvé est limité
- Pas daccès aux systèmes de fichiers.
- Pas daccès réseaux.
112Évolution de la sécurité JAVA
113Évolution de la sécurité JAVA
- JAVA 1.1 (1996)
- Raffinement du modèle de SandBox.
- Possibilité de signer une applet.
- Le code approuvé possède alors les même droits
quun code local. - Problème Violation du principe du moindre
privilège .
114Évolution de la sécurité JAVA
115Évolution de la sécurité JAVA
- JAVA 1.2 (1997)
- Évolution majeure en terme de sécurité
- Possibilité de définir une politique de sécurité
par lintermédiaire des fichiers policy .
116Évolution de la sécurité JAVA
117La protection de lutilisateur
118La protection de lutilisateur
- Quelques exemples de tout cela
- Une applet critique exécutée localement
fonctionne sans problème.
C\gt java WriteFileApplet
119La protection de lutilisateur
- Quelques exemples de tout cela
- Une applet critique exécutée localement
fonctionne sans problème. - Si on ajoute un Security Manager , rien ne va
plus.
C\gtjava -Djava.security.manager WriteFileApplet
120La protection de lutilisateur
- Quelques exemples de tout cela
- - Un outil permettant décrire facilement des
fichiers policy Policytool.exe
121La protection de lutilisateur
- Quelques exemples de tout cela
- Avec un fichier de configuration, le
SecurityManager ne pose plus de problème.
grant permission java.io.FilePermission
"ltltALL FILESgtgt", "write"
java -Djava.security.manager -Djava.security.polic
yall.policy WriteFileApplet
122La protection de lutilisateur
- Quelques exemples de tout cela
- Un dernier exemple avec un browser.
- Il est plus difficile de spécifier le fichier
policy à utiliser..
123Java Authentification Autorisation
- But
- Protéger le système de lutilisateur.
- Comment
- Créer un objet partagé par lauthentification et
lautorisation. - Étendre le modèle de sécurité standard ( security
policy) pour gérer cet objet.
124Java Authentification Autorisation
- Comment ça marche ?
- Authentification
- On branche des modules de connexion à une
entité. - Si lutilisateur passe tout ces modules, il
acquière alors une identité virtuelle. - Autorisation
- Il peut alors tenter dexécuter des actions
critiques . - Ces actions sont soumises au système de
restrictions daccès.
125JAAS Lauthentification
- Les classes importantes pour lidentification
- Subject
- Représente un individu ou une organisation avec
plusieurs identités de principal les décisions
en matières dautorisation sont prises en
fonction dun sujet authentifié. - Logincontext
- Fournit une API de base, permettant aux sujets de
se connecter/déconnecter du système. - LoginModule
- Définit linterface que les fournisseurs de
services dauthentifications qui supportent JAAS
doivent implémenter. - Configuration
- Encapsule lentité utilisée pour configurer une
application avec des connexion particulièrs.
126JAAS Lauthentification
- Les classes importantes pour lidentification
- CallbackHandler
- Définit linterface à implémenter par les
applications qui souhaitent autoriser le service
dauthentification à leur passer des
informations. - Callback
- Définit une interface de marqueurs implémentée
par les objets qui sont passés à une
implémentation CallbackHandler. Lobjet Callback
contient les données à passer à lapplication. - PrivilegedAction
- Les actions critiques y sont stockées
127JAAS Lauthentification (chronologie)
LoginContext
Configuration
new LoginContext( "Nom de configuration",
MyCallbackHandler)
128JAAS Lauthentification (chronologie)
LoginContext
Configuration
LoginModule 1
LoginModule 2
129JAAS Lauthentification (chronologie)
LoginContext
Configuration
Login( )
LoginModule 1
Login( )
USER
CallBackHandler
Login( )
LoginModule 2
130JAAS Lauthentification (chronologie)
LoginContext
Login( )
LoginModule 1
USER
CallBackHandler
LoginModule 2
Subject
Droits.policy
131JAAS Lauthentification (chronologie)
LoginContext
Login( )
LoginModule 1
USER
CallBackHandler
LoginModule 2
Subject
DoAsPrivileged( )
PrivilegedAction
132Focus sur les CallbackHandler
- Le but de lauthentification est de créer un
objet Subject . - Pour communiquer, les objects utilisent des
Callback. - Ces Callback sont gérés par les CallbackHandler.
133Focus sur les CallbackHandler
- - Le dialogue est délégué
134Focus sur les CallbackHandler
- Les callback sont utilisés pour compléter le
Subject .
135Focus sur les Callback
- Les differents types de Callbacks
- Language Callback
- Name Callback
- Password Callback
- TextInput Callback
- TextOutput Callback
- Choice Callback
- Confirmation Callback
136JAAS Lauthentification
- Le fichier de configuration des modules de
connexion - configuration.jaas
- Nom de configuration
- JndiLoginModule Requisite
- Krb5LoginModule Sufficient
- NTLoginModule Optional
- UnixLoginModule Optional
- SampleLoginModule Required debugtrue
-
- Autre type danalyse
- AnalyseRetineModule Required
137JAAS Lauthentification
- Les mots clés du fichier .jaas
- Required non bloquant
- Requisite bloquant
- Sufficient bloquant
- Optional non bloquant
138JAAS Lauthentification
Failed
139JAAS Lauthentification
Failed
140JAAS Lauthentification
- Comment définir lemplacement du fichier .jaas ?
- Ligne de commande
- Java Djava.security.auth.login.configltlocationgt
- Modification du fichier java.security
- Login.config.url.1ltlocationgt
141JAAS L autorisation
- Une fois lutilisateur reconnu...
- JAAS étend le modèle de sécurité JAVA2.
- On définit donc une politique de sécurité pour un
utilisateur spécifique ou pour un domaine.
142JAAS L autorisation
- Pour cela, on utilise des fichiers .policy
- Exemple
- grant Principal Administrateur "root"
- permission java.util.PropertyPermission
"java.home", "read" - permission java.util.PropertyPermission
"user.home", "read" - permission java.io.FilePermission
"c\\foo.txt", "write,read" -
- grant Principal Etudiant
- permission java.io.FilePermission "c\\foo.txt",
"read" -
143JAAS L autorisation
- Une fois identifié, le Subject utilise des
PrivilegedAction . - On lance le traitement avec la méthode static
suivante
Static Subject.doAsPrivileged(SujetCourant s,
PrivilegeAction x)
144JAAS L autorisation
public class SampleAction implements
PrivilegedAction public Object run()
try FileWriter writer new FileWriter(new
File("c/foo.txt")) writer.write("blabla
") catch (IOException ioe) return
null
145JAAS L autorisation
- Comment définir la source du fichier .policy ?
- Ligne de commande
- Java Djava.security.policyltlocationgt
- Modification du fichier java.security
- auth.policy.url1ltlocationgt
146JAAS Mise en place
- Mise en place dune authentification JAAS
- Implémenter les interfaces suivants
- CallBackHandler
- Handle()
- LoginModule
- initialize()
- login()
- commit()
- Abort()
147JAAS Mise en place
- Mise en place dune authentification JAAS
- Implémenter les interfaces suivants
- Principal
- getName()
- PrivilegedAction
- run()
148Java Authentification Autorisation
- Où trouver JAAS ?
- API dextension pour JAVA 1.3
- Incorporé à JAVA 1.4
- Incorporé aux spécifications J2EE 1.3
149Cas pratique sécuriser une application via JAAS
par un LDAP
150Example
import javax.security.auth. import
javax.security.auth.login. public class
CountFiles public static void main(String
args) LoginContext lc null try
lc new LoginContext(CountFiles)
catch (LoginException le) // handle it
try lc.login() catch
(Exception e) // login failed -- handle
and exit Object o Subject.doAs
(lc.getSubject(), new CountFilesAction())
System.out.println(User lc.getSubject()
found o files.)
151Example
import javax.security.auth. import
javax.security.auth.login. public class
CountFiles public static void main(String
args) LoginContext lc null try
lc new LoginContext(CountFiles)
catch (LoginException le) // handle it
try lc.login() catch
(Exception e) // login failed -- handle
and exit Object o Subject.doAs
(lc.getSubject(), new CountFilesAction())
System.out.println(User lc.getSubject()
found o files.)
- Establish a context by which a user can be
authenticated - Argument references a line in a config file
(later)
152Example
import javax.security.auth. import
javax.security.auth.login. public class
CountFiles public static void main(String
args) LoginContext lc null try
lc new LoginContext(CountFiles)
catch (LoginException le) // handle it
try lc.login() catch
(Exception e) // login failed -- handle
and exit Object o Subject.doAs
(lc.getSubject(), new CountFilesAction())
System.out.println(User lc.getSubject()
found o files.)
- Authenticate the user following steps in
configuration file
153Example
import javax.security.auth. import
javax.security.auth.login. public class
CountFiles public static void main(String
args) LoginContext lc null try
lc new LoginContext(CountFiles)
catch (LoginException le) // handle it
try lc.login() catch
(Exception e) // login failed -- handle
and exit Object o Subject.doAs
(lc.getSubject(), new CountFilesAction())
System.out.println(User lc.getSubject()
found o files.)
- A Subject represents an authenticated user
- Uses an array of Principal objects
- A Principal is an identifying characteristic
- Username
- Group
- Database username
- doAs attempts to execute the run method of the
named object on behalf of the Subject
154An example action
import java.security. class CountFilesAction
implements PrivilegedAction public Object
run() File f new File(File.separatorChar
files) File farray f.listFiles()
return new Integer(farray.length)
- Note partitioning of development into checks and
actions
155Configuration 1. Login
CountFiles com.sun.security.auth.module.LDAPLo
ginModule required
- pluggable
- loaded dynamically, poss 3rd party, so code is
not tied to a particular type of authentication,
and can introduce new ones as technology improves
(eg retinal scans, fingerprints) - stackable
- more than one can be specifiedeach returns one
or more Principals
156Configuration 1. Login
CountFiles com.sun.security.auth.module.Solari
sLoginModule required com.sun.security.auth.mod
ule.JndiLoginModule optional
required user must pass authentication sufficien
t if user passes this, no others need to be
called requisite if user passes, others called
but dont need to pass optional user allowed to
fail this (but must pass at least one!)
157Cas pratique Utilisation de LDAP pour une
authentification/autorisation avec JAAS avec JBoss
158Introduction aux Entreprise Java Beans
159Problème
- Construire des applications pour entreprises
- Sures
- Sécurisées
- Supportant la montée en charge (scalable)
- Disponibles
- Favorisant la réutilisation
- Maintenables et extensibles
- Pour moins cher
160Moyen
- Utiliser une architecture distribuée
- Plusieurs tiers
- Les clients (front end)
- Les sources de données (back end)
- Un ou plusieurs tiers entre eux pour
- Implanter les nouveaux services
- Int