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
Making the System Operational
Advertisements

Construction process lasts until coding and testing is completed consists of design and implementation reasons for this phase –analysis model is not sufficiently.
Software Testing. Quality is Hard to Pin Down Concise, clear definition is elusive Not easily quantifiable Many things to many people You'll know it when.
1 CS 446 – Tutorial 6 Frid. Nov. 6 th, 2009 Implementation Tutorial.
Programming Paradigms and languages
Module R2 CS450. Next Week R1 is due next Friday ▫Bring manuals in a binder - make sure to have a cover page with group number, module, and date. You.
Trnsport Test Suite Project Tony Compton, Texas DOT Charles Engelke, Info Tech.
An Advanced Simulation & Computing (ASC) Academic Strategic Alliances Program (ASAP) Center at The University of Chicago The Center for Astrophysical Thermonuclear.
Automating with Open Source Testing Tools Corey McGarrahan rSmart 01-July-08.
ARCS Data Analysis Software An overview of the ARCS software management plan Michael Aivazis California Institute of Technology ARCS Baseline Review March.
An Advanced Simulation & Computing (ASC) Academic Strategic Alliances Program (ASAP) Center at The University of Chicago The Center for Astrophysical Thermonuclear.
An Accelerated Strategic Computing Initiative (ASCI) Academic Strategic Alliances Program (ASAP) Center at The University of Chicago The Center for Astrophysical.
Data Grids: Globus vs SRB. Maturity SRB  Older code base  Widely accepted across multiple communities  Core components are tightly integrated Globus.
An Advanced Simulation & Computing (ASC) Academic Strategic Alliances Program (ASAP) Center at The University of Chicago The Center for Astrophysical Thermonuclear.
Chapter 6. 2 Objectives You should be able to describe: Function and Parameter Declarations Returning a Single Value Pass by Reference Variable Scope.
Software Testing. “Software and Cathedrals are much the same: First we build them, then we pray!!!” -Sam Redwine, Jr.
An Advanced Simulation & Computing (ASC) Academic Strategic Alliances Program (ASAP) Center at The University of Chicago The Center for Astrophysical Thermonuclear.
Introduction to a Programming Environment
An Advanced Simulation & Computing (ASC) Academic Strategic Alliances Program (ASAP) Center at The University of Chicago The Center for Astrophysical Thermonuclear.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Chapter 2: Operating-System Structures Modified from the text book.
Testing - an Overview September 10, What is it, Why do it? Testing is a set of activities aimed at validating that an attribute or capability.
An Advanced Simulation & Computing (ASC) Academic Strategic Alliances Program (ASAP) Center at The University of Chicago The Center for Astrophysical Thermonuclear.
Automated Tests in NICOS Nightly Control System Alexander Undrus Brookhaven National Laboratory, Upton, NY Software testing is a difficult, time-consuming.
© 2006, Cognizant Technology Solutions. All Rights Reserved. The information contained herein is subject to change without notice. Automation – How to.
System Design/Implementation and Support for Build 2 PDS Management Council Face-to-Face Mountain View, CA Nov 30 - Dec 1, 2011 Sean Hardman.
Presented by Brian Griffin On behalf of Manu Goel Mohit Goel Nov 12 th, 2014 Building a dynamic GUI, configurable at runtime by backend tool.
M1G Introduction to Programming 2 4. Enhancing a class:Room.
Testing. What is Testing? Definition: exercising a program under controlled conditions and verifying the results Purpose is to detect program defects.
Systems Development Life Cycle Dirt Sport Custom.
© 2012 LogiGear Corporation. All Rights Reserved Robot framework.
ProCol~ A jEdit Plugin for Remote Project Collaboration Justin Dieters Spring 2004 CS470 Final Presentation.
London April 2005 London April 2005 Creating Eyeblaster Ads The Rich Media Platform The Rich Media Platform Eyeblaster.
Codeigniter is an open source web application. It occupies a very small amount of space in the memory and is most useful for developers who aim to develop.
Center for Magnetic Reconnection Studies The Magnetic Reconnection Code within the FLASH Framework Timur Linde, Leonid Malyshkin, Robert Rosner, and Andrew.
A First Book of C++: From Here To There, Third Edition2 Objectives You should be able to describe: Function and Parameter Declarations Returning a Single.
Chapter 6: Modularity Using Functions. In this chapter, you will learn about: – Function and parameter declarations – Returning a single value – Returning.
0 eCPIC User Training: Resource Library These training materials are owned by the Federal Government. They can be used or modified only by FESCOM member.
The european ITM Task Force data structure F. Imbeaux.
Advanced Simulation and Computing (ASC) Academic Strategic Alliances Program (ASAP) Center at The University of Chicago The Center for Astrophysical Thermonuclear.
Framework for MDO Studies Amitay Isaacs Center for Aerospace System Design and Engineering IIT Bombay.
NA-MIC National Alliance for Medical Image Computing UCSD: Engineering Core 2 Portal and Grid Infrastructure.
In the Labs… X-Bot 2003 by Overtech Technologies.
FRANEC and BaSTI grid integration Massimo Sponza INAF - Osservatorio Astronomico di Trieste.
Implementing and Using the SIRWEB Interface Setup of the CGI script and web procfile Connecting to your database using HTML Retrieving data using the CGI.
Deploying Software with Group Policy Chapter Twelve.
Workforce Scheduling Release 5.0 for Windows Implementation Overview OWS Development Team.
August 2003 At A Glance The IRC is a platform independent, extensible, and adaptive framework that provides robust, interactive, and distributed control.
9/12/99R. Moore1 Level 2 Trigger Software Interface R. Moore, Michigan State University.
G.Govi CERN/IT-DB 1 September 26, 2003 POOL Integration, Testing and Release Procedure Integration  Packages structure  External dependencies  Configuration.
Jean-Roch Vlimant, CERN Physics Performance and Dataset Project Physics Data & MC Validation Group McM : The Evolution of PREP. The CMS tool for Monte-Carlo.
23/2/2000Status of GAUDI 1 P. Mato / CERN Computing meeting, LHCb Week 23 February 2000.
B. Dalesio, N. Arnold, M. Kraimer, E. Norum, A. Johnson EPICS Collaboration Meeting December 8-10, 2004 Roadmap for IOC.
CHAPTER 8 Scope, Lifetime, and More on Functions.
OpenAccess Gear David Papa 1 Zhong Xiu 2, Christoph Albrecht, Philip Chong, Andreas Kuehlmann 3 Cadence Berkeley Labs 1 University of Michigan, 2 Carnegie.
WebScan: Implementing QueryServer 2.0 Karl Geiger, Amgen Inc. BRS NA UG August 1999.
SEAMCAT European Communications Office José Carrascosa - SEAMCAT Manager 5 April 2016.
Lecture 1 Page 1 CS 111 Summer 2013 Important OS Properties For real operating systems built and used by real people Differs depending on who you are talking.
Enterprise Library 3.0 Memi Lavi Solution Architect Microsoft Consulting Services Guy Burstein Senior Consultant Advantech – Microsoft Division.
Advanced Higher Computing Science
Product Training Program
GridOS: Operating System Services for Grid Architectures
How to Contribute to System Testing and Extract Results
Complex Geometry Visualization TOol
Software testing
Introduction of Week 3 Assignment Discussion
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
Outline Chapter 2 (cont) OS Design OS structure
Arrays.
Overview Activities from additional UP disciplines are needed to bring a system into being Implementation Testing Deployment Configuration and change management.
In Today’s Class.. General Kernel Responsibilities Kernel Organization
Presentation transcript:

An Advanced Simulation & Computing (ASC) Academic Strategic Alliances Program (ASAP) Center at The University of Chicago The Center for Astrophysical Thermonuclear Flashes Transitioning from FLASH2 to FLASH3 Katie Antypas June 4, 2006

The ASC/Alliances Center for Astrophysical Thermonuclear Flashes The University of Chicago Overview qFLASH3 Enhancements qTransitioning to FLASH3 qWhere to get help

The ASC/Alliances Center for Astrophysical Thermonuclear Flashes The University of Chicago FLASH3 Motivation qMake FLASH capable of being a community developed and supported code by cleaning up code architecture and defining clear unit interfaces qBuild on positive aspects of FLASH2 qMake FLASH code everlasting even if FLASH Center isn’t. qFirst opportunity to focus on design rather than capabilities

The ASC/Alliances Center for Astrophysical Thermonuclear Flashes The University of Chicago FLASH3 Goals qConfigurable q Flexibility to easily configure the code for new applications q A traditional strong point of FLASH qExtensible q Users can add functionality quickly qVerifiable q Users should be able to test their applications easily q The FLASH test suite was release as a stand alone application in FLASH3 qWell Documented q A necessity for any community code that hopes to gain broad acceptance q FLASH3 include: q Extensive online API documentation q Improved Users Guide q Examples of transitions between FLASH2 and FLASH3

The ASC/Alliances Center for Astrophysical Thermonuclear Flashes The University of Chicago FLASH3 Release qIncludes all infrastructure units (Grid, IO, Driver, etc) qIncludes basic physics units (Hydro, gamma EOS) qExtensive Web-based documentation q User’s guide q Reference Tips q Howto’s q Developer’s guide q Public Unit API documentation q Runtime parameters documentation qTest Suite, including use of unit test framework

The ASC/Alliances Center for Astrophysical Thermonuclear Flashes The University of Chicago Future Planned Releases q Closely spaced to make new functionality available to users as soon as possible q Alpha release September 2006 q Particles (Lagrangian and active) q Nuclear burning q Eos Helmholtz q Simple gravity q MHD q Beta release December 2006 q 3.0 release April 2007 q Full FLASH2 functionality with new FLASH3 capabilities

The ASC/Alliances Center for Astrophysical Thermonuclear Flashes The University of Chicago FLASH3 Enhancements : Interchangeable Grids Paramesh Uniform Grid  One block per processor  No AMR related overhead Patch Based Mesh (planned)  Adaptive mesh with variable block size  Block Structured  Fixed sized blocks  Specified at compile time  Not more than one level jump at fine course boundaries

The ASC/Alliances Center for Astrophysical Thermonuclear Flashes The University of Chicago FLASH3 Enhancements : API Interface qEach unit has a well defined API (in CS terms each unit has a set of public routines which other units can call) qExamples for Grid unit: q Grid_fillGuardCells q Grid_conserveFluxes q Grid_updateRefinement q Grid_moveParticles q Grid_get/putBlkData q Grid_getNumProcs qEach routine is fully documented with argument and algorithm descriptions!!

The ASC/Alliances Center for Astrophysical Thermonuclear Flashes The University of Chicago Robodocs API Grid_conserveFluxes

The ASC/Alliances Center for Astrophysical Thermonuclear Flashes The University of Chicago FLASH3 Enhancements : Decentralized Data qIn FLASH2 centralized database was the key way to access all data q Positives: easy for developers to get data they needed quickly and easily q Negatives: not clear who owned the data, when it was last modified or if it was safe to modify data qIn FLASH3 in lieu of a centralized database each unit contains a FORTRAN module to hold data specific to that unit q Still have accessor functions so developers can get data easily q Now more clear who owns the data q Much of the data stored in the FLASH2 database is located in the Grid_data module in FLASH3 or in the Flash.h file, (more later) q Holds myPE, numProcs, access to grid variables, coordinates etc.

The ASC/Alliances Center for Astrophysical Thermonuclear Flashes The University of Chicago Example Flash.h File #define DENS_VAR 1 #define EINT_VAR 2 #define ENER_VAR 3 #define GAMC_VAR 4 #define GAME_VAR 5 #define PRES_VAR 6 #define TEMP_VAR 7 #define VELX_VAR 8 #define VELY_VAR 9 #define VELZ_VAR 10 #define MFRAC_SPEC 11 #define NPROP_VARS 10 #define NSPECIES 1 #define NMASS_SCALARS 0 #define NUNK_VARS (NPROP_VARS + NSPECIES + NMASS_SCALARS) #define E_FLUX 1 #define EINT_FLUX 2 #define P_FLUX 3 #define RHO_FLUX 4 #define U_FLUX 5 #define UT_FLUX 6 #define UTT_FLUX 7 #define NPROP_FLUX 7 #define NSPECIES_FLUX 1 #define NMASS_SCALARS_FLUX 0 #define NFLUXES (NPROP_FLUX + NSPECIES_FLUX + NMASS_SCALARS_FLUX) #define NDIM 2 #define MAXBLOCKS 1000 #define TEMP_SCRATCH_GRID_VAR 1 #define NSCRATCH_GRID_VARS 1 qThe Flash.h file is written by the setup script for your specific application qDeclares variable and flux indices in multidimensional datastructures qDefines, number of dimensions, maximum blocks on a proc and much more... variable indices flux indicies

The ASC/Alliances Center for Astrophysical Thermonuclear Flashes The University of Chicago Example Putting Data onto Grid FLASH2 FLASH3 idens = dbaseKeyNumber(‘dens’) call dbasePutData(idens,....) use index directly call Grid_putBlkData(DENS_VAR,....)

The ASC/Alliances Center for Astrophysical Thermonuclear Flashes The University of Chicago Grid Directory Structure Grid API level Stub File ie. No implementation All routines called from other Units belong in the API GridMain UGparamesh PM2PM3 Grid_fillGuardCells Grid_getCellVolume Grid_conserveFluxes Grid_getBlkNeighbors Grid_getGlobalNumBlks and many more... Grid_getGlobalNumBlks Implementation levels All other levels hold the implementation for the API routines Both the Uniform Grid and Paramesh have the same implementation for Grid_getGlobalNumBlks The Uniform Grid has no implementation for Grid_conserveFluxes and so when that routine is called from the Hydro Unit, it just returns the empty stub Grid_getBlkNeighbors Grid_conserveFluxes

The ASC/Alliances Center for Astrophysical Thermonuclear Flashes The University of Chicago FLASH3 Unit Structure qDistinguish between public and private routines q Public Routines q Must have stub implementation q Naming convention, start with “Unit_verbWhatUnitDoes” ie “Grid_putBlkData” q Private Routines q No stubs unless necessary for inter-subunit communication q Naming convention, small case abrev. for unit ie “gr_createDataTypes” qEach unit has a ‘UnitName’_data module to hold unit scope data qEach unit has a ‘UnitName’_init routine to initialize data stored in ‘UnitName’_data module q All initializations that were in “if firstcall =.true.” blocks, now belong in the “UnitName_init” routine which is called once at initialization time In FLASH2, the user was free to organize a code unit however he or she wanted with very few constraints. In FLASH3 we implemented a number of ‘strong conventions’ (rules) for easier code maintenance, development and usability.

The ASC/Alliances Center for Astrophysical Thermonuclear Flashes The University of Chicago Moving a FLASH2 module to FLASH3 qCreate a ‘UnitName’_data FORTRAN module to store data needed from other units in the code. qCreate storage in ‘UnitName’_data for all necessary variables storing runtime parameters or physical constants. qEliminate the “first call” constructs, move them to the UnitName_init. qUse wraper functions to fill up the remaining variables in Unit_data.

The ASC/Alliances Center for Astrophysical Thermonuclear Flashes The University of Chicago Impact on user qWe’ve taken steps to assure the transition isn’t too painful q Lots of documentation of Flash code support website q If you are having any problems please us. We can help. qMost kernels are the same as in FLASH2 qA user, who has modified source files in setup: q should be able to read Unit API documentation to clearly determine how to make the code compatible with FLASH3 or q Look at the new source file implementation for how to start on converting to FLASH3 qIf you’re in the process of developing a deep functional module for FLASH2 that you want to contribute, talk to us now

The ASC/Alliances Center for Astrophysical Thermonuclear Flashes The University of Chicago FLASH3 Enhancements: Unit Testing qFLASH3 has a unit testing framework and comes with several unit tests for the Grid, RuntimeParmeters, EOS, Multispecies and PhysicalConstants qUsers can easily add in new unit tests qAttempt to test units independently, however some units can not be meaningfully tested alone q Most unit tests require the Grid unit q Multigamma Eos, requires Eos and Multispecies qSetup examples: q./setup unitTest/Eos -auto q./setup unitTest/Grid -auto qSimple Driver can be written to test unit In any large complex code it is often difficult pin point where coding problems exist. Unit testing allows small sections of code to be tested independently, targeting the debugging process and giving the user more confidence in the complete application.

The ASC/Alliances Center for Astrophysical Thermonuclear Flashes The University of Chicago FLASH3 Enhancements: The New Test Suite qFlash test suite runs a variety of problems to validate the code on a daily basis qEssential for immediately identifying bugs unintentionally introduced into the code qNew test suite was released with FLASH3 so users can monitor their own research problems and performance q test parameters easily modified through GUI q handles unit tests, compilation tests, comparison tests q automatically uploads test suite data to benchmarks database Green light indicates all runs were successful Date of run Platform Floating statistics box gives immediate overview of results Red light indicates 1 or more tests failed

The ASC/Alliances Center for Astrophysical Thermonuclear Flashes The University of Chicago Editing of “test.info” file done right in browser “test.info” file holds all necessary information for running a FLASH problem Expandable graphic allows user to easily modify all problems in test suite Control Panel for modification of “test.info” file tree Info File Manager

The ASC/Alliances Center for Astrophysical Thermonuclear Flashes The University of Chicago Test Suite Performance History The new test suite adds the ability to upload selected test log files to the database to track daily code performance. History of 2D and 3D Sedov ProblemsDetails of 2D History

The ASC/Alliances Center for Astrophysical Thermonuclear Flashes The University of Chicago FLASH3 Enhancements : Enhanced Setup Script qSeamless library management qAbility to retain object files from one setup to the next qSuggests units a user might have neglected qUsers can setup shortcuts More about setup script options in next talk

The ASC/Alliances Center for Astrophysical Thermonuclear Flashes The University of Chicago FLASH3 Framework How do you get the Framework out of FLASH 3? q Include the source tree up to the top level of each Unit. q Stub implementations q Config files q Include source/Simulation/SimulationMain/Default directory q Include the setup tool q Include the Driver q Unit tests could be included, but have no meaning with stubs

The ASC/Alliances Center for Astrophysical Thermonuclear Flashes The University of Chicago … which brings us to Discussion and Questions