Explaining StGermain: An aspect oriented environment for building extensible computational mechanics...

15
Steve Quenette, Head of CSD / Senior Software Engineer Explaining StGermain: An aspect oriented environment for building extensible computational mechanics modeling software HIPS-TOPMoDRS workshop – IPDPS 2007 Steve Quenette

description

Explaining StGermain: An aspect oriented environment for building extensible computational mechanics modeling software. HIPS-TOPMoDRS workshop – IPDPS 2007 Steve Quenette. … for those interested in large-scale HPC software… Drivers Approach Technology itself. - PowerPoint PPT Presentation

Transcript of Explaining StGermain: An aspect oriented environment for building extensible computational mechanics...

Page 1: Explaining StGermain: An aspect oriented environment for building extensible computational mechanics modeling software

Steve Quenette, Head of CSD / Senior Software Engineer

Explaining StGermain: An aspect oriented environment for building extensible computational mechanics modeling software

HIPS-TOPMoDRS workshop – IPDPS 2007

Steve Quenette

Page 2: Explaining StGermain: An aspect oriented environment for building extensible computational mechanics modeling software

Steve Quenette, Head of CSD / Senior Software Engineer

Outline

… for those interested in large-scale HPC

software…

• Drivers

• Approach

• Technology itself

… for those whose interests are closer to

hardware…

Page 3: Explaining StGermain: An aspect oriented environment for building extensible computational mechanics modeling software

Steve Quenette, Head of CSD / Senior Software Engineer

A picture of an outcome

What makes this phenomena model hard to implement?

Page 4: Explaining StGermain: An aspect oriented environment for building extensible computational mechanics modeling software

Steve Quenette, Head of CSD / Senior Software Engineer

And another

What’s different here? Why is the “difference” hard?

Page 5: Explaining StGermain: An aspect oriented environment for building extensible computational mechanics modeling software

Steve Quenette, Head of CSD / Senior Software Engineer

And some more

Different phenomena: different numerics and physics

Page 6: Explaining StGermain: An aspect oriented environment for building extensible computational mechanics modeling software

Steve Quenette, Head of CSD / Senior Software Engineer

Case-study: the path to Underworld• Convect 1989, 2D, FE/FD, C, Stokes

• CITCOM 1994, 3D, FE, MG, FW, Stokes & Greens– CitcomT 1997, 3D-spherical, zero-width-elements– Citcom-w-faults 1997, sub-surfaces– CitcomS 1997, 3D-spherical, better MG, parallel

• CITCOM 1997, better MG, better physics

• Ellipsis 1998, back to 2D, PIC– Ellipsis-3D 2005, 3D

• Snark 2003, parallel, no MG, better FW

• Underworld 2006, MG, plasticity, better FW

Page 7: Explaining StGermain: An aspect oriented environment for building extensible computational mechanics modeling software

Steve Quenette, Head of CSD / Senior Software Engineer

Lesson learnt with Snark• Snark: our first

involvement

• Observation: – new features needed to

insert themselves within existing other features

– New features needed to extend existing other data structures

• Numerical schemes and physics models render code that cross both controlling and data aspects

• And, statically typed object orientation does not handle this well

typedef struct {double x;double y;int mat_I;

} Particle;

void ConstitutiveUpdate( … ) {…

}

plasticity model:- history dependant slip dir- behaves according to …

typedef struct {double x;double y;int mat_I;double slipDir[3];

} Particle;

void ConstitutiveUpdate( … ) {…if( material == plastic ) {

…}…

}

Page 8: Explaining StGermain: An aspect oriented environment for building extensible computational mechanics modeling software

Steve Quenette, Head of CSD / Senior Software Engineer

Approach• The spectrum of laptop to HPC

– Parallelisation and portability

• Aim: the ability to change a numerical scheme or physics model without needing to change the phenomena model code– phenomena model code becomes our “OO

design”

• Realization that this is about people with different roles and expectations working together

Page 9: Explaining StGermain: An aspect oriented environment for building extensible computational mechanics modeling software

Steve Quenette, Head of CSD / Senior Software Engineer

Competencies of a comp. mech. code

Better encapsulation of concerns at each level

Page 10: Explaining StGermain: An aspect oriented environment for building extensible computational mechanics modeling software

Steve Quenette, Head of CSD / Senior Software Engineer

StGermain to Underworld

Software layers approximating roles

Page 11: Explaining StGermain: An aspect oriented environment for building extensible computational mechanics modeling software

Steve Quenette, Head of CSD / Senior Software Engineer

What does StGermain do?

Page 12: Explaining StGermain: An aspect oriented environment for building extensible computational mechanics modeling software

Steve Quenette, Head of CSD / Senior Software Engineer

Input Files & Dictionaries• Your code “pulls” parameters

• StGermain assembles components

Dictionary_GetBool_WithDefault(self.dictionary,“eta0”,1.0f );

main() { … Stg_Component_Construct(

context,…,false

)

Dictionary

Page 13: Explaining StGermain: An aspect oriented environment for building extensible computational mechanics modeling software

Steve Quenette, Head of CSD / Senior Software Engineer

Components and Variables• Components

– “Light weight”– Have fixed services– Source code has a meta file

with validation information

• Variables– Cross component associations

of data without source code– Allows totally declarative

creation of state storage

Page 14: Explaining StGermain: An aspect oriented environment for building extensible computational mechanics modeling software

Steve Quenette, Head of CSD / Senior Software Engineer

Entrypoints & extensions• For real problems: cross cutting issue

… MyPlasticity_ConstitutiveUpdate {…

}

EntryPoint_AppendHook( Context_GetEntryPoint( cnxt, EP_CONSTITUTIVEUPDATE ), MyPlasticity_ConstitutiveUpdate );

ExtensionManager_Add( particleExtMgr,MYPLASTICITY_HANDLE, sizeof(double)*3 );

Page 15: Explaining StGermain: An aspect oriented environment for building extensible computational mechanics modeling software

Steve Quenette, Head of CSD / Senior Software Engineer

Conclusion• Took a punt with a

different approach to large scale HPC software design

• Usage of aspect concepts in a HPC setting

• People are coming on board because of the continuous evolution in numerics and physics capabilities

• Acknowledgements:– CSD crew: Pat Sunter, Luke

Hodkinson, Alan Lo, Raquibul Hassan, Kathleen Humble, John Spencer

• Louis Moresi’s group– Dave May, Dave Stegman,

Vincent Meriaux, Cecile Duboz, Julian Giodani, Rob Turnbull

• CIG– Mike Gurnis, Walter

Laundry