Laurent Bobelin, CS-SI - PowerPoint PPT Presentation

1 / 412
About This Presentation
Title:

Laurent Bobelin, CS-SI

Description:

Du Client/Serveur aux architectures de grilles de calculs et de donn es Laurent Bobelin, CS-SI – PowerPoint PPT presentation

Number of Views:306
Avg rating:3.0/5.0
Slides: 413
Provided by: Laurent116
Category:
Tags: jxta | bobelin | laurent

less

Transcript and Presenter's Notes

Title: Laurent Bobelin, CS-SI


1
Du Client/Serveur aux architectures de grilles de
calculs et de données
  • Laurent Bobelin, CS-SI

2
Plan 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

3
Plan 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

4
Motivation générale Les besoins Physique
  • Large Hadron Collider
  • Modélisation de surface
  • Applications nucléaires

5
Motivation 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

6
Motivation 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.

7
The LHC Detectors
Le LHC
CMS
ATLAS
6-8 PetaBytes / year 108 events/year 103
batch and interactive users
LHCb
8
Motivation 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.

9
Motivation 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.

10
Motivation 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.

11
Motivation 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
12
Motivation 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

13
Motivation 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

14
Motivation 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

15
Motivation 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

16
Motivation 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

17
Motivation 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, )

18
Motivation 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.

19
Motivation 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é

20
Motivation 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.

21
Motivation 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 ?

22
Motivation 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

23
Motivation 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 ?

24
Motivation 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

25
Motivation 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 ?

26
Motivation 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.

27
Plan Les différents types de parallélisme
  • Introduction au parallélisme
  • Les différents types de parallélisme
  • Granularité

28
Introduction 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

29
Les 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

30
Granularité
  • 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

31
Granularité
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
32
Plan Les architectures parallèles et distribuées
  • Les multiprocesseurs
  • Les clusters
  • Les environnements hétérogènes
  • Les centres de calcul

33
Les 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

34
Notion 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

35
Notion 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
36
Notion 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

37
Efficacité/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

38
Remarques
  • 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)

39
Puissance 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.

40
Les 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

41
Les types de multiprocesseurs
42
Les 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

43
MIMD 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.

44
Classification 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

45
Classification 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.

46
Classification 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

47
Types 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

48
Architectures 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
49
Architectures 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 )

50
Architectures 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.
51
Architectures 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

52
Architectures parallèles exemple SIMD
53
Architectures de grappes de PC
54
Dé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 

55
Des 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

56
Technologies
? IA64
57
Linterconnexion réseau
Infiniband
SCI
HIPPI
VIA
ATM
Fibre Channel
WDM
Myrinet
PCI
...
FDDI
Ethernet
...
SCSI
...
SAN
LAN
WAN
MAN
58
La 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
59
La 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

60
La 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
61
Les 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

62
SCI 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

63
Les 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 ?
64
Les 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

65
Lintégrateur/vendeur
  • support scientifique
  • support technique
  • maintenance
  • intégration hardware
  • intégration software

66
Des 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

67
Les environnements hétérogènes
68
Les 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

69
Les 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

70
Les 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

71
Les centres de calcul une architecture pour le
calcul intensif et le stockage de masse le
centre de calcul de la Doua
72
Centre 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

73
Qui 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

74
Architecture
  • Architecture distribuée
  • Stockage et calcul sont séparés
  • Réseau local Gbits Ethernet

75
Cluster
  • 1000 processeurs (90 Linux Redhat 7.2)
  • 500 KSpecInt2000 (P3 1GHz 400 SpecInt2000)
  • Soumission de job BQS
  • Calcul parallèle

76
Stockage sur bande
  • 6 silos gérant
  • 36000 cartouches
  • 720 To avec cartouche 20 Go
  • Données accessibles par HPSS

77
Espace occupé sur serveur
  • Serveur AFS 3 To
  • Montage NFS1,5 To
  • Cache HPSS6 To
  • Serveur Objectivity20 To
  • Capacité totale 60 To

78
Réseau
  • Hébergement dun nœud Renater International NRI
  • Très bonne connectivité
  • Domaine in2p3.fr

79
La 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

80
Conclusion
  • 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

81
Les environnements de programmation parallèle
82
Logiciels
  • 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

83
gestionnaire 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

84
Programmation 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
85
Supports 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,
86
Supports 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
87
Plan 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

88
Pourquoi 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)

89
LDAP
  • 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 ...

90
LDAP
  • 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

91
Problé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)

92
Ré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

93
Administration des ressources
Domaine
Utilisateurs
Machines
Applications
Périphériques
Finance
RH
94
Disponibilité 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

95
Intégration des applications
Domaine
Utilisateurs
Machines
Applications
Périphériques
Finance
RH
96
Active 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
97
Services 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

98
Stockage 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

99
Modé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
100
Méthodes daccès à linformation
LDAP Version 3
  • Standard de lindustrie des protocoles daccès
    aux annuaires
  • Support natif
  • Expose lensemble des fonctionnalités

101
Ré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
102
LDAPUtilisation de LDP
103
LDAPUtilisation de LDP
104
LDAP 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.

105
Exemple 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

106
LDIF 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

107
Cas 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

109
La 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é.

110
La 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
  • La SandBox 1.0

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
117
La protection de lutilisateur
118
La protection de lutilisateur
  • Quelques exemples de tout cela
  • Une applet critique exécutée localement
    fonctionne sans problème.

C\gt java WriteFileApplet 
119
La 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 
120
La protection de lutilisateur
  • Quelques exemples de tout cela
  • - Un outil permettant décrire facilement des
    fichiers  policy  Policytool.exe

121
La 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
122
La 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..

123
Java 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.

124
Java 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.

125
JAAS 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.

126
JAAS 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

127
JAAS Lauthentification (chronologie)
LoginContext
Configuration
new LoginContext( "Nom de configuration",
MyCallbackHandler)
128
JAAS Lauthentification (chronologie)
LoginContext
Configuration
LoginModule 1
LoginModule 2
129
JAAS Lauthentification (chronologie)
LoginContext
Configuration
Login( )
LoginModule 1
Login( )
USER
CallBackHandler
Login( )
LoginModule 2
130
JAAS Lauthentification (chronologie)
LoginContext
Login( )
LoginModule 1
USER
CallBackHandler
LoginModule 2
Subject
Droits.policy
131
JAAS Lauthentification (chronologie)
LoginContext
Login( )
LoginModule 1
USER
CallBackHandler
LoginModule 2
Subject
DoAsPrivileged( )
PrivilegedAction
132
Focus 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.

133
Focus sur les CallbackHandler
  • - Le dialogue est délégué

134
Focus sur les CallbackHandler
  • Les callback sont utilisés pour compléter le
     Subject .

135
Focus sur les Callback
  • Les differents types de Callbacks
  • Language Callback
  • Name Callback
  • Password Callback
  • TextInput Callback
  • TextOutput Callback
  • Choice Callback
  • Confirmation Callback

136
JAAS 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

137
JAAS Lauthentification
  • Les mots clés du fichier .jaas
  • Required non bloquant
  • Requisite bloquant
  • Sufficient bloquant
  • Optional non bloquant

138
JAAS Lauthentification
Failed
  • Exemple

139
JAAS Lauthentification
Failed
  • Exemple

140
JAAS 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

141
JAAS 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.

142
JAAS 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"

143
JAAS 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)
144
JAAS L autorisation
  • Exemple

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
145
JAAS 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

146
JAAS Mise en place
  • Mise en place dune authentification JAAS
  • Implémenter les interfaces suivants
  • CallBackHandler
  • Handle()
  • LoginModule
  • initialize()
  • login()
  • commit()
  • Abort()

147
JAAS Mise en place
  • Mise en place dune authentification JAAS
  • Implémenter les interfaces suivants
  • Principal
  • getName()
  • PrivilegedAction
  • run()

148
Java Authentification Autorisation
  • Où trouver JAAS ?
  • API dextension pour JAVA 1.3
  • Incorporé à JAVA 1.4
  • Incorporé aux spécifications J2EE 1.3

149
Cas pratique sécuriser une application via JAAS
par un LDAP
150
Example
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.)
151
Example
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)

152
Example
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

153
Example
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

154
An 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

155
Configuration 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

156
Configuration 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!)
157
Cas pratique Utilisation de LDAP pour une
authentification/autorisation avec JAAS avec JBoss
158
Introduction aux Entreprise Java Beans
159
Problè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

160
Moyen
  • 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
Write a Comment
User Comments (0)
About PowerShow.com