An Advanced Simulation & Computing (ASC) Academic Strategic Alliances Program (ASAP) Center at The University of Chicago The Center for Astrophysical Thermonuclear.

Slides:



Advertisements
Similar presentations
An Advanced Simulation & Computing (ASC) Academic Strategic Alliances Program (ASAP) Center at The University of Chicago The Center for Astrophysical Thermonuclear.
Advertisements

Stereotypes Stereotypes provide the capability to create a new kind of modeling element. –They can be used to classify or mark modeling elements. –A type.
An Advanced Simulation & Computing (ASC) Academic Strategic Alliances Program (ASAP) Center at The University of Chicago The Center for Astrophysical Thermonuclear.
Programming with Java © 2002 The McGraw-Hill Companies, Inc. All rights reserved. 1 Chapter 12 More OOP, Interfaces, and Inner Classes.
1 Frameworks. 2 Framework Set of cooperating classes/interfaces –Structure essential mechanisms of a problem domain –Programmer can extend framework classes,
File Management Systems
An Advanced Simulation & Computing (ASC) Academic Strategic Alliances Program (ASAP) Center at The University of Chicago The Center for Astrophysical Thermonuclear.
An Advanced Simulation and Computing (ASC) Academic Strategic Alliances Program (ASAP) Center at The University of Chicago The Center for Astrophysical.
Case, Arrays, and Structures. Summary Slide  Case Structure –Select Case - Numeric Value Example 1 –Select Case - String Value Example  Arrays –Declaring.
© 2006 Pearson Addison-Wesley. All rights reserved4-1 Chapter 4 Data Abstraction: The Walls.
June 1, 2000 Object Oriented Programming in Java (95-707) Java Language Basics 1 Lecture 3 Object Oriented Programming in Java Language Basics Classes,
An Advanced Simulation & Computing (ASC) Academic Strategic Alliances Program (ASAP) Center at The University of Chicago The Center for Astrophysical Thermonuclear.
An Advanced Simulation & Computing (ASC) Academic Strategic Alliances Program (ASAP) Center at The University of Chicago The Center for Astrophysical Thermonuclear.
An Advanced Simulation & Computing (ASC) Academic Strategic Alliances Program (ASAP) Center at The University of Chicago The Center for Astrophysical Thermonuclear.
An Advanced Simulation & Computing (ASC) Academic Strategic Alliances Program (ASAP) Center at The University of Chicago The Center for Astrophysical Thermonuclear.
An Advanced Simulation & Computing (ASC) Academic Strategic Alliances Program (ASAP) Center at The University of Chicago The Center for Astrophysical Thermonuclear.
7.1 © 2004 Pearson Education, Inc. Exam Managing and Maintaining a Microsoft® Windows® Server 2003 Environment Lesson 7: Introducing Group Accounts.
An Advanced Simulation & Computing (ASC) Academic Strategic Alliances Program (ASAP) Center at The University of Chicago The Center for Astrophysical Thermonuclear.
An Advanced Simulation & Computing (ASC) Academic Strategic Alliances Program (ASAP) Center at The University of Chicago The Center for Astrophysical Thermonuclear.
Bottom-Up Integration Testing After unit testing of individual components the components are combined together into a system. Bottom-Up Integration: each.
9.1 © 2004 Pearson Education, Inc. Lesson 9: Implementing Group Policy in Windows 2000 Server Exam Microsoft® Windows® 2000 Directory Services Infrastructure.
9.1 © 2004 Pearson Education, Inc. Exam Planning, Implementing, and Maintaining a Microsoft Windows Server 2003 Active Directory Infrastructure.
Using Data Active Server Pages Objectives In this chapter, you will: Learn about variables and constants Explore application and session variables Learn.
Session 24 Modeling the Development Environment Written by Thomas A. Pender Published by Wiley Publishing, Inc. October 27, 2011 Presented by Hyewon Lim.
1 Chapter 5: Names, Bindings and Scopes Lionel Williams Jr. and Victoria Yan CSci 210, Advanced Software Paradigms September 26, 2010.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Taken from slides of Starting Out with C++ Early Objects Seventh Edition.
1 Understanding Inheritance COSC 156 C++ Programming Lecture 8.
Cascading Style Sheets. Defines the presentation of one or more web pages Similar to a template Can control the appearance of an entire web site giving.
Programming in Java Unit 2. Class and variable declaration A class is best thought of as a template from which objects are created. You can create many.
1 CSC 221: Computer Programming I Spring 2010 interaction & design  modular design: roulette game  constants, static fields  % operator, string equals.
.NET Framework Danish Sami UG Lead.NetFoundry
Ch6: Software Verification. 1 Decision table based testing  Applicability:  Spec. is described by a decision table.  Tables describe:  How combinations.
11.1 © 2004 Pearson Education, Inc. Exam Designing a Microsoft ® Windows ® Server 2003 Active Directory and Network Infrastructure Lesson 11: Planning.
Planning a Group Policy Management and Implementation Strategy Lesson 10.
CS 346 – Chapter 4 Threads –How they differ from processes –Definition, purpose Threads of the same process share: code, data, open files –Types –Support.
Data Structures Using C++ 2E1 Inheritance An “is-a” relationship –Example: “every employee is a person” Allows new class creation from existing classes.
Advanced Simulation and Computing (ASC) Academic Strategic Alliances Program (ASAP) Center at The University of Chicago The Center for Astrophysical Thermonuclear.
Chapter 10 Chapter 10: Managing the Distributed File System, Disk Quotas, and Software Installation.
Page 1 System and Group Policies Lecture 7 Hassan Shuja 11/02/2004.
Processes Introduction to Operating Systems: Module 3.
Chapter 6 Introduction to Defining Classes. Objectives: Design and implement a simple class from user requirements. Organize a program in terms of a view.
DBT544. DB2/400 Advanced Features Level Check Considerations Database Constraints File Overrides Object and Record Locks Trigger Programs.
Introduction to c++ programming - object oriented programming concepts - Structured Vs OOP. Classes and objects - class definition - Objects - class scope.
1 Chapter Overview Managing Object and Container Permissions Locating and Moving Active Directory Objects Delegating Control Troubleshooting Active Directory.
Java Class Structure. Class Structure package declaration import statements class declaration class (static) variable declarations* instance variable.
Windows 2000 Security Yingzi Jin. Introduction n Active Directory n Group Policy n Encrypting File System.
Replica Management Kelly Clynes. Agenda Grid Computing Globus Toolkit What is Replica Management Replica Management in Globus Replica Management Catalog.
Testing OO software. State Based Testing State machine: implementation-independent specification (model) of the dynamic behaviour of the system State:
Application development with Java Lecture 21. Inheritance Subclasses Overriding Object class.
Java Software Solutions Lewis and Loftus Chapter 9 1 Copyright 1997 by John Lewis and William Loftus. All rights reserved. Enhanced Class Design -- Introduction.
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 12 Separate Compilation and Namespaces.
1 Use of SDD in Grid Deployment Based on GGF CDDLM Jun Tatemura NEC Laboratories America Sept 14, 2005.
1 FESA architecture v.1.0 Framework Configuration & Data-entry Tool 5 th December 2003.
Classes, Interfaces and Packages
INFSO-RI Enabling Grids for E-sciencE Using of GANGA interface for Athena applications A. Zalite / PNPI.
Silberschatz, Galvin and Gagne ©2011 Operating System Concepts Essentials – 8 th Edition Chapter 2: The Linux System Part 2.
10.1 © 2004 Pearson Education, Inc. Lesson 10: Specifying Group Policy Settings Exam Microsoft® Windows® 2000 Directory Services Infrastructure.
1 Enhanced Class Design Introduction zWe now examine several features of class design and organization that can improve reusability and system elegance.
GROUP POLICY. Group Policy is a hierarchical infrastructure which allows systems administrators to configure computer and user settings from a central.
Visual Programming Borland Delphi. Developing Applications Borland Delphi is an object-oriented, visual programming environment to develop 32-bit applications.
Classes CS 162 (Summer 2009). Parts of a Class Instance Fields Methods.
Inheritance Modern object-oriented (OO) programming languages provide 3 capabilities: encapsulation inheritance polymorphism which can improve the design,
CollegeSource Security Application &
INTRODUCING ADAMS/CAR
Understanding Inheritance
Interface.
Unit-1 Introduction to Java
Interfaces.
Separating Definition & Implementation
Introduction to Web Services
Presentation transcript:

An Advanced Simulation & Computing (ASC) Academic Strategic Alliances Program (ASAP) Center at The University of Chicago The Center for Astrophysical Thermonuclear Flashes Architecture, Inheritance and Naming Conventions

The ASC/Alliances Center for Astrophysical Thermonuclear Flashes The University of Chicago Basic Computational Unit : Block qThe grid is composed of blocks qFLASH 2 All blocks: same dimensions qFLASH3 : blocks can be different sized qCover different fraction of the physical domain.

The ASC/Alliances Center for Astrophysical Thermonuclear Flashes The University of Chicago First Look at FLASH q ‘source’ directories q Units or groups of units q Post-processing tools, bin, sites q Setup q FLASH architecture tool q Parses Config files in the units q Selects and sets up these units q Collecting variables, runtime parameters, etc

The ASC/Alliances Center for Astrophysical Thermonuclear Flashes The University of Chicago What’s a FLASH Unit? qFLASH basic architecture unit q Component of the FLASH code providing a particular functionality q Different combinations of units are used for particular problem setups q Publishes a public interface for other units’ use. q Ex: Driver, Grid, Hydro, IO etc qFake inheritance by use of directory structure qInteraction between units governed by the Driver qNot all units are included in all applications

The ASC/Alliances Center for Astrophysical Thermonuclear Flashes The University of Chicago FLASH Units Driver I/O Runtime Params Grid Profiling Logfile Simulation Infrastructure monitoring Hydro BurnGravity MHD physics

The ASC/Alliances Center for Astrophysical Thermonuclear Flashes The University of Chicago Unit Hierarchy Unit API stubs/localAPI Impl_1 Remaining API impl kernel UnitMain Common API implementation UnitSomething API implementation kernel Impl_2 Remaining API impl kernel Impl_3 Remaining API impl common More common impl

The ASC/Alliances Center for Astrophysical Thermonuclear Flashes The University of Chicago Example of a Unit - Grid Grid GridSolversGridMainGridParticles UG Paramesh2Paramesh3 paramesh PM3_package UGparamesh MoveSieveMoveTree MultipolemultigridPfft Paramesh local API Why Local API ? Grid_init calls init functions for all subunits, if subunit is not included code won’t build.

The ASC/Alliances Center for Astrophysical Thermonuclear Flashes The University of Chicago Inside a Unit The top level qThe first capitalized directory in a branch of the source tree is a unit qContains stubs for every public function (API) in the unit q Does not contain the data module (unit scope data) q Individual API functions may be implemented in different subunits q A unit has a minimum three functions in its API, no limit on the maximum q Unit_init, Unit_finalize and the “do-er” function for the unit qIf necessary, contains a directory for the local API qMay contain the unit test q Different Unit tests can reside at different levels in the unit hierarchy q The config file contains minimal information, no runtime parameters except “useUnit” defined qMakefile includes All the API functions.

The ASC/Alliances Center for Astrophysical Thermonuclear Flashes The University of Chicago Subunits qEvery unit has a UnitMain subunit, which must be included in the simulation if the unit is included. q Has the implementations for the init, finalize and the main “do-er” function q Also contains the unit scope data module qThe API functions and private functions implemented in different subunits are mutually exclusive qSubunits other than UnitMain may have private Unit scope functions that can be called by other subunits. q un_suInit and un_suFinalize are the most common ones q (naming convention explained later) qSubunits can also have private data modules, strictly within the scope limited to the specific subunit qSubunits can have their own unit tests

The ASC/Alliances Center for Astrophysical Thermonuclear Flashes The University of Chicago More on Subunits qA subunit may have multiple alternative implementations qAlternative implementations of UnitMain also act as alternative implementations of the Unit. qSome subunits have multiple implementations that could be included in the same simulation q GridSolver is one possible example. q Alternative implementations are specified using the “EXCLUSIVE” directive qThe “KERNEL” keyword indicates that subdirectories below that level need not follow FLASH architecture, and the entire subtree should be included in the simulation

The ASC/Alliances Center for Astrophysical Thermonuclear Flashes The University of Chicago Naming Convention qNamespace directories are capitalized, organizational directories are not qAll API functions of unit start with Unit_ (i.e.Grid_getBlkPtr, Driver_initFlash etc) qSubunits have composite names that include unit name followed by a capitalized word describing the subunit (i.e. ParticlesMain, ParticlesMapping, GridParticles etc) qPrivate unit functions and unit scope variables are named un_routineName (i.e. gr_createDomain, pt_numLocal etc) qPrivate functions in subunits other than UnitMain are encouraged to have names like un_suRoutineName, as are the variables in subunit scope data module qConstants are all uppercase, usually have preprocessor definition, multiple words are separated by an underscore. q There are two type of constants, permanent in “constants.h” or “Unit.h”, and the ones in “Flash.h” generated by the setup script. The significance of capitalizing unit names A new unit can be added without the need to modify the setup script. If the setup script encounters a top level capitalized directory without an API function to initialize the unit, it issues a warning.

The ASC/Alliances Center for Astrophysical Thermonuclear Flashes The University of Chicago Functional Component in Multiple Units qExample Particles q Position initialization and time integration in Particles unit q Data movement in Grid unit q Mapping divided between Grid and Particles qSolve the problem by moving control back and forth between units Driver Init Evolve Particles Init Map Evolve Grid Init Map Move

The ASC/Alliances Center for Astrophysical Thermonuclear Flashes The University of Chicago Inheritance qInheritance implemented through directory structure and Config file directives understood by the setup script qA child directory inherits all functions from the parent directory q If the child directory has its own implementation of a function, it replaces the inherited one. q The implementation in the lowest level offspring replaces all implementations in higher level directories. q An implementation in the “Simulation/MyProblem” directory overrides all implemenations when running MyProblem qConfig files arbitrate on multiple implementations through “Default” keyword qRuntime environment is created by taking a union of all variables, fluxes, and runtime parameters in Config files of included directories. q Value given to a runtime parameter in the “Simulation/MyProblem/Config” overrides any value given to it in other Config files q Value in “flash.par” overrides any value given in any Config file Multiple Config file initial values of a runtime parameter in units other than the simulation unit can lead to non-deterministic behavior since there are no other precedence rules.