27
User Interfaces Development in openDIEL Argens Ng (HKU), Tanner Curren (Maryville College) Mentor: Kwai Wong (UTK)

User Interfaces Development in openDIEL · Timer – Background Group 1 x 5 Group 2x 3 Group 3x 2 Group 5x 1 Group 4x 2 Group Lastx 1} x3. Timer – Results Process 11. Timer –

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: User Interfaces Development in openDIEL · Timer – Background Group 1 x 5 Group 2x 3 Group 3x 2 Group 5x 1 Group 4x 2 Group Lastx 1} x3. Timer – Results Process 11. Timer –

UserInterfacesDevelopmentinopenDIEL

ArgensNg(HKU),TannerCurren (MaryvilleCollege)Mentor:Kwai Wong(UTK)

Page 2: User Interfaces Development in openDIEL · Timer – Background Group 1 x 5 Group 2x 3 Group 3x 2 Group 5x 1 Group 4x 2 Group Lastx 1} x3. Timer – Results Process 11. Timer –

OpenDIEL – Introduction

• OpenDistributiveInteroperableExecutableLibrary• UsesMPI(MessagePassingInterface)• Cooperationbetweenlooselycoupledmodules• Outputssingleexecutable• Crucialincombiningmultiplesimulationscenario!!

Page 3: User Interfaces Development in openDIEL · Timer – Background Group 1 x 5 Group 2x 3 Group 3x 2 Group 5x 1 Group 4x 2 Group Lastx 1} x3. Timer – Results Process 11. Timer –

OpenDIEL – Manual

• Userhastoprovide:• Modules (Executable,Cmodule,FortranModule,Executable)• ConfigurationFile (LibConfig)• Driver (C- File)

Page 4: User Interfaces Development in openDIEL · Timer – Background Group 1 x 5 Group 2x 3 Group 3x 2 Group 5x 1 Group 4x 2 Group Lastx 1} x3. Timer – Results Process 11. Timer –
Page 5: User Interfaces Development in openDIEL · Timer – Background Group 1 x 5 Group 2x 3 Group 3x 2 Group 5x 1 Group 4x 2 Group Lastx 1} x3. Timer – Results Process 11. Timer –

OpenDIEL – Enhancements

• ModMaker• Timer• I/OImprovements• FortranSupport

Page 6: User Interfaces Development in openDIEL · Timer – Background Group 1 x 5 Group 2x 3 Group 3x 2 Group 5x 1 Group 4x 2 Group Lastx 1} x3. Timer – Results Process 11. Timer –

ModMaker – Introduction

• Transformatsourcecodelevel• Nolongercompilesintostandaloneexecutable• Compilesintoalibrary

Page 7: User Interfaces Development in openDIEL · Timer – Background Group 1 x 5 Group 2x 3 Group 3x 2 Group 5x 1 Group 4x 2 Group Lastx 1} x3. Timer – Results Process 11. Timer –

ModMaker – Workflow

Page 8: User Interfaces Development in openDIEL · Timer – Background Group 1 x 5 Group 2x 3 Group 3x 2 Group 5x 1 Group 4x 2 Group Lastx 1} x3. Timer – Results Process 11. Timer –

ModMaker – Workflow#include"mpi.h”#include"stdio.h”#include"test.h”int main(int argc,char**argv){

int rank;int size;int rc;

rc |=MPI_Init (&argc,&argv);MPI_Comm_rank (MPI_COMM_WORLD,&rank);MPI_Comm_size (MPI_COMM_WORLD,&size);printf ("Iamprocess%doutofall%dprocesses\n",rank,size);MPI_Barrier (MPI_COMM_WORLD);MPI_Finalize();

return0;}

1

Page 9: User Interfaces Development in openDIEL · Timer – Background Group 1 x 5 Group 2x 3 Group 3x 2 Group 5x 1 Group 4x 2 Group Lastx 1} x3. Timer – Results Process 11. Timer –

ModMaker – Workflow

int main(int argc,char**argv){

int rank;int size;int rc;

rc |=MPI_Init (&argc,&argv);MPI_Comm_rank (MPI_COMM_WORLD,&rank);MPI_Comm_size (MPI_COMM_WORLD,&size);printf ("Iamprocess%doutofall%dprocesses\n",rank,size);MPI_Barrier (MPI_COMM_WORLD);MPI_Finalize();

return0;}

IdentifyingFeature 2

Page 10: User Interfaces Development in openDIEL · Timer – Background Group 1 x 5 Group 2x 3 Group 3x 2 Group 5x 1 Group 4x 2 Group Lastx 1} x3. Timer – Results Process 11. Timer –

ModMaker – Workflow

3

Page 11: User Interfaces Development in openDIEL · Timer – Background Group 1 x 5 Group 2x 3 Group 3x 2 Group 5x 1 Group 4x 2 Group Lastx 1} x3. Timer – Results Process 11. Timer –

ModMaker – UserParticipation

Page 12: User Interfaces Development in openDIEL · Timer – Background Group 1 x 5 Group 2x 3 Group 3x 2 Group 5x 1 Group 4x 2 Group Lastx 1} x3. Timer – Results Process 11. Timer –

ModMaker – UserParticipation

Page 13: User Interfaces Development in openDIEL · Timer – Background Group 1 x 5 Group 2x 3 Group 3x 2 Group 5x 1 Group 4x 2 Group Lastx 1} x3. Timer – Results Process 11. Timer –

ModMaker – UserParticipation

Page 14: User Interfaces Development in openDIEL · Timer – Background Group 1 x 5 Group 2x 3 Group 3x 2 Group 5x 1 Group 4x 2 Group Lastx 1} x3. Timer – Results Process 11. Timer –

ModMaker – UserParticipation

Page 15: User Interfaces Development in openDIEL · Timer – Background Group 1 x 5 Group 2x 3 Group 3x 2 Group 5x 1 Group 4x 2 Group Lastx 1} x3. Timer – Results Process 11. Timer –

ModMaker – PatternMatching

• Twooptionswereconsidered• Matchingbycharacter• Matchingbystring

• Matchingbystringisused• Simplicity• Similarperformance

n=stringsize,s=documentsize(measuredincharacter)

Page 16: User Interfaces Development in openDIEL · Timer – Background Group 1 x 5 Group 2x 3 Group 3x 2 Group 5x 1 Group 4x 2 Group Lastx 1} x3. Timer – Results Process 11. Timer –

ModMaker – SyntacticFreedom

• Locating• Spaces• VariableDeclaration

Page 17: User Interfaces Development in openDIEL · Timer – Background Group 1 x 5 Group 2x 3 Group 3x 2 Group 5x 1 Group 4x 2 Group Lastx 1} x3. Timer – Results Process 11. Timer –

ModMaker – Modularization

• FunctionTitle• Statement• Variable

• BaseCheck (line,tokenList,prevSep,nextSep,msgBundle,replacement,returnValue)

Page 18: User Interfaces Development in openDIEL · Timer – Background Group 1 x 5 Group 2x 3 Group 3x 2 Group 5x 1 Group 4x 2 Group Lastx 1} x3. Timer – Results Process 11. Timer –

ModMaker – Testing

• Tester.c• Dummy“IEL.h”

Page 19: User Interfaces Development in openDIEL · Timer – Background Group 1 x 5 Group 2x 3 Group 3x 2 Group 5x 1 Group 4x 2 Group Lastx 1} x3. Timer – Results Process 11. Timer –

Timer– Background

Group1x5

Group2 x3 Group3 x2

Group4 x2Group5 x1

GroupLast x1} x3

Page 20: User Interfaces Development in openDIEL · Timer – Background Group 1 x 5 Group 2x 3 Group 3x 2 Group 5x 1 Group 4x 2 Group Lastx 1} x3. Timer – Results Process 11. Timer –

Timer– Results

Process11

Page 21: User Interfaces Development in openDIEL · Timer – Background Group 1 x 5 Group 2x 3 Group 3x 2 Group 5x 1 Group 4x 2 Group Lastx 1} x3. Timer – Results Process 11. Timer –

Timer– Background

Group1x5

Group2 x3 Group3 x2

Group4 x2Group5 x1

GroupLast x1} x3

Page 22: User Interfaces Development in openDIEL · Timer – Background Group 1 x 5 Group 2x 3 Group 3x 2 Group 5x 1 Group 4x 2 Group Lastx 1} x3. Timer – Results Process 11. Timer –

Timer– Modularity

• voidtimestamp(char*tag,char*function,int level_change)• voidtimer_finalize (int rank)

Page 23: User Interfaces Development in openDIEL · Timer – Background Group 1 x 5 Group 2x 3 Group 3x 2 Group 5x 1 Group 4x 2 Group Lastx 1} x3. Timer – Results Process 11. Timer –

Timer– Modularity

• Driver.c• Group_1

• Function_1• Function_2

[Begin] Driver.c[Begin] Group_1

[Begin] Function_1[End] Function_1[Begin] Function_2[End] Function_2

[End] Group_1[End] Driver.c

Level1 Level2 Level3

Level1

Level2

Level3

Page 24: User Interfaces Development in openDIEL · Timer – Background Group 1 x 5 Group 2x 3 Group 3x 2 Group 5x 1 Group 4x 2 Group Lastx 1} x3. Timer – Results Process 11. Timer –

Timer– Example

• -ve means:possibleoverhead• +ve means:processruntime

Page 25: User Interfaces Development in openDIEL · Timer – Background Group 1 x 5 Group 2x 3 Group 3x 2 Group 5x 1 Group 4x 2 Group Lastx 1} x3. Timer – Results Process 11. Timer –

FutureWork

• MultipleI/O• ModMaker – FortranSupport

Page 26: User Interfaces Development in openDIEL · Timer – Background Group 1 x 5 Group 2x 3 Group 3x 2 Group 5x 1 Group 4x 2 Group Lastx 1} x3. Timer – Results Process 11. Timer –

Reference

• openDIEL• http://cfdlab.utk.edu/openDIEL/opendiel.php

• StackOverflow• http://stackoverflow.com

Page 27: User Interfaces Development in openDIEL · Timer – Background Group 1 x 5 Group 2x 3 Group 3x 2 Group 5x 1 Group 4x 2 Group Lastx 1} x3. Timer – Results Process 11. Timer –

Acknowledgement

ThisprojectismadepossibleonlywiththesupportofourmentorDr.K.Wong,theNSF,theUniversityofTennesseeandOakRidgeNationalLaboratory