Les Objets CORBA parallèles Travaux pratiques Lundi 22 mai 2000 ARC « Couplage » Christophe René (IRISA/IFSIC) Eric Lemoine (INSA Lyon)

Slides:



Advertisements
Présentations similaires
Hiver 2010JGA Beaulieu GEF 243B Programmation informatique appliquée Structure de base des programmes en C.
Advertisements

GEF 243B Programmation informatique appliquée
Cours n° 7 Standard Template Library II.
La sécurité dans Sharepoint
DOM Document Object Model. Généralités Standard du W3C Parseur XML – Génération dun arbre dobjet – Construction totale de larbre DOM est spécifié en IDL.
SAX Simple API for XML. Généralités API non standard développé par les membres du forum XML-DEV Parseur XML – Orienté événement – Parsing dynamique SAX.
EPU SI Mireille Blay-Fornarino
3- Le langage IDL Le contrat IDL Un « esperanto » pour les objets
Architecture CORBA réseau Objet Corba Application Serveur
Formation C débutant. Notion de compilation source.c executable Phase de compilation Fichier de texte brut, inexploitable directement par la machine Fichier.
1 Tableaux des objets C++ si on connaît le nombre dobjets nécessaires davance on peut utiliser des tableau dobjets dans les fonctions dusage class Personne.

Les entrées /sorties en Java François Bonneville
Cours Visual Basic pour Application
Parallel Programming in C with MPI and OpenMP
MPI et programmation par passage de messages
Injection de dépendances
1 Une introduction à Java IFT 287 (Semaine 1). 2 Java - Historique Développé par Sun Microsystems en 1994 –Inventeur James Gosling (canadien!) Objectif.
Common Gateway Interface
2ième Classe (Mercredi, 13 Octobre) C++ Intro CSI2572.
BlueJ_XI 1 Java, les objets : tout de suite ! Gestion des erreurs : les exceptions Notes de cours associées au chapitre 11 tutorial BlueJ
Regrouper des éléments de même type et pouvoir y accéder à laide dun identificateur et dun indice. Objectif des tableaux.
Faculté I&C, Claude Petitpierre, André Maurer 1 Java.
Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE
MPI (Message Passing Interface)
Objets Javascript Mécanismes internes Le concept et la construction dobjets
Interface CWIPI Thierry Morel Formation OpenPALM avril 2012
1 Les pointeurs et quelques rappels sur certains éléments du langage C.
Quelques notes sur CORBA F. Boyer, Oct Principes Programmation distribuée Multi-plateformes Notion de client et de serveur Notion de stub et de.
Historique de SystemC Regroupe 4 courants didées: SCENIC Project : Synopsys+UC Irvine Philips System-Level Data Types, VSIA SLD DWG IMEC, Hardware-Software.
Le patron de conception « Strategy » Simon Durocher ( )
Common Object Request Broker Architecture (CORBA)
Structures de données IFT-2000 Abder Alikacem La librairie STL du C++ Département dinformatique et de génie logiciel Édition Septembre 2009.
JUnit Présentation complète de JUnit et « guide d’utilisation » en 13 transparents.
Miguel Garzon CrUise Lab - SITE. Introduction Data Types and Sizes Constants Logic Operators Type conversions Example.
Design Pattern Memento. Principe : Enregistrer les changements d'états d'un objet Objectif : Pouvoir restituer les états précédents d'un objet.
1 1 Corba avec Java et C Jean-Marc Vanel Transiciel - Sogeti.
Multi-Thread Jian-Yun Nie
Une brève introduction à MPI Destinée à l usage des utilisateurs de CIMENT Laurent Desbat juin 2002.
OpenCV: Introduction au Traitement d’Images et Vidéo
Cours 5 Héritage, Interfaces, classes internes. POO-L3 H. Fauconnier2 La classe Object Toutes les classes héritent de la classe Object Object méthodes:
COURS DE PROGRAMMATION ORIENTEE OBJET :
Introduction au Langage C
1. 2 Toolkits Il existe 4 principales boites à outils (toolkits) graphiques : –Xt / Motif –Gtk –Windows –Qt Seul certaines fonctionnent sur toutes les.
CSI1502 Principes fondamentaux en conception des logiciels
Une introduction à Java
Structures de données IFT-2000 Abder Alikacem Introduction Semaine 1 Département d’informatique et de génie logiciel Édition Septembre 2009.
1 PtiLoo Compléments de Cours pour réaliser les Extensions version 20/08/ :51 Ajout à faire pour version 20/08/ :51 n "animation" pour.
Présentation de CORBA et de IIOP
Les collections. Gestion d’ensembles d’objets Tableaux Taille fixe Pas de manipulation aisée des objets dans le tableaux Base tab1[]= new Base[5]; for(int.
La notion de type revisitée en POO
Cycle de développement iup MIAGe 3° année Projet MIAGe Toulouse – Groupe 21 CORBA.
Notions avancées du C++
Argc et argv Utilisation des paramètres de la ligne de commande.
Programmation parallèle
Constructeurs H Batatia. Variable statique Une variable statique est partagée par tous les objets d’une classe.
PARALLÉLISATION AUTOMATIQUE D’ALGORITHMES
Développer avec ORBacus Partie 1 – Les préalables.
Les sockets.
Les surcharges d'opérateurs
France Télécom R&D Le présent document contient des informations qui sont la propriété de France Télécom. L'acceptation de ce document par son destinataire.
Pthread Ordonnancement. #define _MULTI_THREADED #include #ifndef _CHECK_H #define _CHECK_H /* headers used by a majority of the example program */ #include.
Chapitre VII Techniques plus avancées à travers le concept de classe.
Introduction à la programmation objet avec java
PaCO++ André Ribes Réunion Hydrogrid Rennes 15/09/03.
JAVA.
I-D-L Interface Definition Language Elaboré par Elaboré par : Mohamed Moncef SAAFI Sofien SAGHROUNI Mondher MOULAHI Marwen BALLOUMI LFSi-3.
I-D-L Interface Definition Language Elaboré par Elaboré par : Mohamed Moncef SAAFI Sofien SAGHROUNI Mondher MOULAHI Marwen BALLOUMI LFSi-3.
IDL interface définition langage. Plan Introduction Principaux éléments IDL Types de données IDL Déclaration de module Déclaration d'interface Déclaration.
STREAMS (et fichiers).
Transcription de la présentation:

Les Objets CORBA parallèles Travaux pratiques Lundi 22 mai 2000 ARC « Couplage » Christophe René (IRISA/IFSIC) Eric Lemoine (INSA Lyon)

Sommaire Exemple dutilisation des objets CORBA parallèles Résolution de léquation de la chaleur Encapsulation dun programme MPI Multiplication de deux matrices (algorithme de Fox) Démonstration dune application de couplage Simulation des interactions électromagnétiques

Avant de commencer utilisateur1utilisateur2 utilisateur3utilisateur4utilisateur5 utilisateur6utilisateur7utilisateur8 utilisateur9 Répertoire de travail dépend de votre poste Connexion au cluster xon paraski

Résolution de l équation de la chaleur Décomposition de domaine Utilisation de deux objets parallèles Exemple dutilisation des objets CORBA parallèles Objet CORBA parallèle serverC ORB Objet CORBA parallèle serverR Objet CORBA standard client_heat objet 1 objet 2 objet 1

Interface IDL des objets #include "Common.idl" interface[*] HeatEquationColDistrib { void ComputeColumnDistrib( inout dist[ * ][ BLOCK, 1 ] Matrix m ); void stop(); }; const long N = 10; typedef double Matrix[ N ][ N ]; #include "Common.idl" interface[*] HeatEquationRowDistrib { void ComputeRowDistrib( inout dist[ BLOCK ][ * ] Matrix m ); void stop(); }; Common.idl HeatEquationColDistrib.idl HeatEquationRowDistrib.idl

Script dactivation Fonctionnant du script Activation du service de nommage nsd... Activation de lobjet CORBA parallèle serverR mpirun./serverR... Activation de lobjet CORBA parallèle serverC mpirun./serverC... Activation du client séquentiel./client_heat... Localisation de l exemple ~/utilisateur?/HeatEquation Utilisation du script./run.sh serverC, serverR: 2 objs./run.sh 3 serverC, serverR: 3 objs./run.sh 3 2 serverC: 3 objs; serverR: 2 objs./run.sh 2 3 serverC: 2 objs; serverR: 3 objs

Fonctionnant interne des talons (stubs) et des squelettes (skeletons)

Programme original Multiplication de deux matrices en utilisant lalgorithme de Fox Mode de distribution de la matrice = BLOCK, BLOCK Nombre de processeurs = un carré parfait Code MPI lisant les données dans des fichiers Utilisation: (répertoire ~/utilisateur?/Encapsulation)./run_mpi.sh Encapsulation de code

Adaptation du code MPI int main( int argc, char* argv[] ) { /*... */ MPI_Init( &argc, &argv ); MPI_Comm_rank( MPI_COMM_WORLD, &id ); /*... */ MPI_Send(... ); MPI_Recv(... ); /*... */ MPI_Finalize(); } int main_mpi_pgm( int argc, char* argv[] ) { /*... */ /* MPI_Init( &argc, &argv ); */ MPI_Comm_rank( MPI_COMM_WORLD, &id ); /*... */ MPI_Send(... ); MPI_Recv(... ); /*... */ /* MPI_Finalize(); */ } fox.c (code original) newfox.c (code modifié)

Spécification et mise en œuvre du wrapper typedef sequence arg_type; interface[ n ^ 2 ] Wrapper { void compute( in string directory, in arg_type arguments ); void stop(); }; Wrapper.idl void Wrapper_impl::compute( const char* directory, const arg_type_DArray& arguments ) { int argc = arguments.length() + 1; char** argv = new (char *) [ argc ]; argv[ 0 ] = strdup( newfox ); /* Application name */ for( int i0 = 1; i0 < argc; ++i0 ) argv[ i0 ] = strdup( arguments[ i0 - 1 ] ); chdir( directory ); main_mpi_pgm( argc, argv ); for( int i1 = 0; i1 < argc; ++i1 ) free( argv[ i1 ] ); delete [] argv; } Wrapper_impl.cc

int main( int argc, char* argv[] ) { /*... */ orb = ORB_init( argc, argv ); /*... */ objc = rootctx->resolve_collection( name ); /*... */ arg_type arguments; arguments.length( argc - 4 ); for( int i = 1; i < (argc - 4 ); ++i ) arguments[ i ] = strdup( argv[ i + 4 ] ); pos->compute( working_directory, arguments ); /*... */ } Mise en œuvre du serveur et du client Client.cc int main( int argc, char* argv[] ) { /*... */ PaCO_DL_init( &argc, &argv ); /*... */ orb = ORB_init( argc, argv ); /*... */ server = new Wrapper_impl(); /*... */ rootctx->join_collection( name, server ); /*... */ orb->run(); /*... */ PaCO_DL_exit(); return 0; } Server.cc

Script dactivation Fonctionnant du script Activation du service de nommage nsd... Activation de lobjet CORBA parallèle mpirun./server_mtx... Activation du client séquentiel./client_mtx... Localisation de l exemple ~/utilisateur?/Encapsulation Utilisation du script./run_paco.sh server_mtx: 4 objs./run_paco.sh 4 server_mtx: 4 objs

Questions ?

Démonstration dune application de couplage