Page 1 CompFrame 2003 Workshop A development platform for parallel applications
Page 2 Plan Origin and concepts Building a PALM application Supervision tools Some applications using PALM
Page 3 Plan Origin and concepts Building a PALM application Supervision tools Some applications using PALM
Page 4 Origin buis: -> Cest le but de palm buis: -> Cest le but de palm buis: projet créé dans le milieu des annees 90 à partir dun constat ou pour répondre a un problème précis -> exemple : en NWP : modele de plus en plus complexe prenant en compte de plus en plus de composants physique mais aussi des composants mathematique : assimilation de donnees, desfois aussi avec des resolution ou des dommaines differents, le tout gere avec cle CPP, … buis: projet créé dans le milieu des annees 90 à partir dun constat ou pour répondre a un problème précis -> exemple : en NWP : modele de plus en plus complexe prenant en compte de plus en plus de composants physique mais aussi des composants mathematique : assimilation de donnees, desfois aussi avec des resolution ou des dommaines differents, le tout gere avec cle CPP, … Scientific computing applications Scientific research Supercomputer technology Scientific computing applications Scientific computing applications Scientific computing applications Scientific computing applications
Page 5 Origin buis: -> Cest le but de palm buis: -> Cest le but de palm buis: projet créé dans le milieu des annees 90 à partir dun constat ou pour répondre a un problème précis -> exemple : en NWP : modele de plus en plus complexe prenant en compte de plus en plus de composants physique mais aussi des composants mathematique : assimilation de donnees, desfois aussi avec des resolution ou des dommaines differents, le tout gere avec cle CPP, … buis: projet créé dans le milieu des annees 90 à partir dun constat ou pour répondre a un problème précis -> exemple : en NWP : modele de plus en plus complexe prenant en compte de plus en plus de composants physique mais aussi des composants mathematique : assimilation de donnees, desfois aussi avec des resolution ou des dommaines differents, le tout gere avec cle CPP, … modular parallel performantevolutive & maintainable
Page 6 Concepts Source code library Applications INTEGRATIONINTEGRATION UNIT BRANCH OBJECTS COMMUNICATION buis: -> lidée de PALM cest de pouvoir construire des applications a partir de briques de bases indépendante entre elles (code source avec donnees quelles consomme et produise) et indépendante de lapplication. Subroutine fortran pour 1ere version PALM, exe C, fort C++ pour MP -> a partir dun jeu dunites, les assembler en sequences pour créer des appli modulaire et facilement evolutive (integration de nouveaux composants, …) sans changer le code source. buis: -> lidée de PALM cest de pouvoir construire des applications a partir de briques de bases indépendante entre elles (code source avec donnees quelles consomme et produise) et indépendante de lapplication. Subroutine fortran pour 1ere version PALM, exe C, fort C++ pour MP -> a partir dun jeu dunites, les assembler en sequences pour créer des appli modulaire et facilement evolutive (integration de nouveaux composants, …) sans changer le code source. buis: 1)Unites indep 2)Integration de lappli -> facilement modifiable, extensible, … 3)Voc PALM buis: 1)Unites indep 2)Integration de lappli -> facilement modifiable, extensible, … 3)Voc PALM
Page 7 How PALM ensures the independency between the units ? end-point communication scheme automatic remapping during the communications no reference to the application algorithm in the units : the description of the application algorithm is made in the GUI, during the integration phase A same framework can be used for several applications by changing the units, and the same units can be used in several applications without any modification buis: Faire animation remapping buis: Faire animation remapping
Page 8 How PALM ensures the performance of the applications 2 levels of parallelism Sequences: branches Distributed components:units
Page 9 How PALM ensures the performance of the application High performance communication mechanism memory copies MPI messages
Page 10 Plan Origin and concepts Building a PALM application Supervision tools Some applications using PALM
Page 11 On units side Units instrumentation: Source end-point CALL PALM_Put (space1, obj1, time, tag, array, error) Target end-point CALL PALM_Get (space2, obj2, time, tag, array, error) Units IDCARD: !PALM_UNIT -sub create\ ! !PALM_SPACE –name space1\ ! -shape (10,10)\ ! -element_size PL_DOUBLE_PRECISION\ ! !PALM_OBJECT -name obj1\ ! -space space1\ ! -intent OUT\
Page 12 Definition of the algorithm in PrePALM Launch units Conditional execution DO, While loops Communications
Page 13 Definition of the communication scheme
control structures physic algebra task parallelism data parallelism buis: General overview of the application Algorithm : components decomposition, control structure, Data flux Parallelism : branches, units Physics, algebra Mettre des fleches ??? buis: General overview of the application Algorithm : components decomposition, control structure, Data flux Parallelism : branches, units Physics, algebra Mettre des fleches ??? components data flux
Page 15 Plan Origin and concepts Building a PALM application Supervision tools Some applications using PALM
Page 16 Supervision tools debug functions can be called during PALM_PUT and PALM_GET to verify the objects values buis: Faire une animation pour passer de graphical stat a limage, … buis: Faire une animation pour passer de graphical stat a limage, … an output file per processes of the application containing information about the run with several levels of verbosity per message category performance analyser with graphical statistic summaries graphical animation
Page 17 Performance analyser
Page 18 Graphical animation
Page 19 Plan Origin and concepts Building a PALM application Supervision tools Some applications using PALM
Page 20 French contribution to the international experiment GODAE (Global Ocean Data Assimilation Experiment). Partners: Aim: implement an operational oceanic forecast system able to simulate the global ocean with a high resolution model by assimilating in-situ and satellite data Strategy: from regional to global model from simple (OI) to complex (SEEK, 4DVAR) assimilation method
Page 21 The operational system
Page 22 HIGH RESOLUTION REGIONAL PROTOTYPE 1/15° Mediterranean-North-Atlantic model assimilating altimeter data The MERCATOR bulletin 4D description of the ocean: Temperature, Salinity, Currents, SSH, movements of water masses… Each Wednesday (analyses and 7 days and 14 days forecast).
Page 23 The MERCATOR website global mappings sections moorings Gulf Stream Gulf of Mexico and Carribean North Brazil Tropics Northern Europe Eastern North Atlantic POMME campaign area Med Sea Outflow 8 Regional Zooms
Page 24 ASSET: Assimilation of Envisat Data a European project to exploit and develop earth observation data from Envisat satellite using data assimilation (January 2003 December 2005) aims: odevelop a European capability for chemical and UV forecasting oprovide analyses for coupled climate / chemistry studies partners:, ….
Page 25 Data Assimilation Methods buis: Rajouter PALM dans le schema buis: Rajouter PALM dans le schema assimilation of retrieved Envisat data into a coupled NWP/chemistry system ASSET: Assimilation of Envisat Data DataModel
Page 26 A Fluid – structure coupling application elsA: an ONERA – AIRBUS – CERFACS oriented object compressible flows simulation software
Page 27 Information and Documentations A website: A software: PALM_Research: already available and free PALM_MP: beta version in April A course: A 3 days free course is regularly organised An
Page 28 Difference between SPMD and MPMD Program model … end Program assim … end True MPMD model.exe model memory assim.exe assim memory Proc 1 SPMD Proc 2 MPI 1 palm.exe assim memory model memory palm.exe assim memory model memory MPMD MPI 2 model.exe model memory assim.exe assim memory SPMD with MPMD emulation Program PALM If (model) call model Elseif (assim) call assim Endif end Subroutine model … end Subroutine assim … End palm.exe assim memory model memory