Explaining StGermain: An aspect oriented environment for building extensible computational mechanics...
This presentation is the property of its rightful owner.
Sponsored Links
1 / 15

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


  • 61 Views
  • Uploaded on
  • Presentation posted in: General

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.

Download Presentation

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

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Explaining stgermain an aspect oriented environment for building extensible computational mechanics modeling software

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

HIPS-TOPMoDRS workshop – IPDPS 2007

Steve Quenette

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…

Outline

Steve Quenette,

Head of CSD / Senior Software Engineer


A picture of an outcome

A picture of an outcome

What makes this phenomena model hard to implement?

Steve Quenette,

Head of CSD / Senior Software Engineer


And another

And another

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

Steve Quenette,

Head of CSD / Senior Software Engineer


And some more

And some more

Different phenomena: different numerics and physics

Steve Quenette,

Head of CSD / Senior Software Engineer


Case study the path to underworld

Case-study: the path to Underworld

  • Convect1989, 2D, FE/FD, C, Stokes

  • CITCOM1994, 3D, FE, MG, FW, Stokes & Greens

    • CitcomT1997, 3D-spherical, zero-width-elements

    • Citcom-w-faults1997, sub-surfaces

    • CitcomS1997, 3D-spherical, better MG, parallel

  • CITCOM1997, better MG, better physics

  • Ellipsis1998, back to 2D, PIC

    • Ellipsis-3D 2005, 3D

  • Snark2003, parallel, no MG, better FW

  • Underworld2006, MG, plasticity, better FW

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 schemesand physics modelsrender code that cross both controlling and data aspects

And, statically typed object orientation does not handle this well

Lesson learnt with Snark

typedef struct {

double x;

double y;

int mat_I;

double slipDir[3];

} Particle;

void ConstitutiveUpdate( … ) {

if( material == plastic ) {

}

}

typedef struct {

double x;

double y;

int mat_I;

} Particle;

void ConstitutiveUpdate( … ) {

}

plasticity model:

- history dependant slip dir

- behaves according to …

Steve Quenette,

Head of CSD / Senior Software Engineer


Approach

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

Steve Quenette,

Head of CSD / Senior Software Engineer


Competencies of a comp mech code

Competencies of a comp. mech. code

Better encapsulation of concerns at each level

Steve Quenette,

Head of CSD / Senior Software Engineer


Stgermain to underworld

StGermain to Underworld

Software layers approximating roles

Steve Quenette,

Head of CSD / Senior Software Engineer


What does stgermain do

What does StGermain do?

Steve Quenette,

Head of CSD / Senior Software Engineer


Input files dictionaries

Input Files & Dictionaries

  • Your code “pulls” parameters

  • StGermain assembles components

Dictionary_GetBool_WithDefault(

self.dictionary,

“eta0”,

1.0f );

Dictionary

main() {

Stg_Component_Construct(

context,

…,

false

)

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

Components and Variables

Steve Quenette,

Head of CSD / Senior Software Engineer


Entrypoints extensions

Entrypoints & extensions

  • For real problems: cross cutting issue

ExtensionManager_Add(

particleExtMgr,

MYPLASTICITY_HANDLE,

sizeof(double)*3 );

… MyPlasticity_ConstitutiveUpdate {

}

EntryPoint_AppendHook(

Context_GetEntryPoint( cnxt, EP_CONSTITUTIVEUPDATE ),

MyPlasticity_ConstitutiveUpdate );

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

Conclusion

Steve Quenette,

Head of CSD / Senior Software Engineer


  • Login