Cactus Workshop - NCSA Sep 27 - Oct 1 1999 Adding a Driver Thorn to Cactus Tom Goodale Albert Einstein Institute

Slides:



Advertisements
Similar presentations
Subroutines – parameter passing passing data to/from a subroutine can be done through the parameters and through the return value of a function subroutine.
Advertisements

Register Allocation Zach Ma.
Slides revised 3/25/2014 by Patrick Kelley. 2 Procedures Unlike other branching structures (loops, etc.) a Procedure has to return to where it was called.
Operating Systems Lecture 10 Issues in Paging and Virtual Memory Adapted from Operating Systems Lecture Notes, Copyright 1997 Martin C. Rinard. Zhiqing.
ArrayLists David Kauchak cs201 Spring Extendable array Arrays store data in sequential locations in memory Elements are accessed via their index.
1/1/ / faculty of Electrical Engineering eindhoven university of technology Architectures of Digital Information Systems Part 1: Interrupts and DMA dr.ir.
Computer Systems/Operating Systems - Class 8
11/13/01CS-550 Presentation - Overview of Microsoft disk operating system. 1 An Overview of Microsoft Disk Operating System.
Cactus in GrADS (HFA) Ian Foster Dave Angulo, Matei Ripeanu, Michael Russell.
DISTRIBUTED AND HIGH-PERFORMANCE COMPUTING CHAPTER 7: SHARED MEMORY PARALLEL PROGRAMMING.
ECE669 L5: Grid Computations February 12, 2004 ECE 669 Parallel Computer Architecture Lecture 5 Grid Computations.
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Parallel Programming in C with MPI and OpenMP Michael J. Quinn.
Efficient Parallelization for AMR MHD Multiphysics Calculations Implementation in AstroBEAR.
1 Lecture 24: Parallel Algorithms I Topics: sort and matrix algorithms.
1 Contents. 2 Run-Time Storage Organization 3 Static Allocation In many early languages, notably assembly and FORTRAN, all storage allocation is static.
Shekoofeh Azizi Spring  CUDA is a parallel computing platform and programming model invented by NVIDIA  With CUDA, you can send C, C++ and Fortran.
Fortran- Subprograms Chapters 6, 7 in your Fortran book.
1 LiveViz – What is it? Charm++ library Visualization tool Inspect your program’s current state Client runs on any machine (java) You code the image generation.
Chapter TwelveModern Programming Languages1 Memory Locations For Variables.
Ohio State University Department of Computer Science and Engineering Automatic Data Virtualization - Supporting XML based abstractions on HDF5 Datasets.
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 3: Operating Systems Computer Science: An Overview Tenth Edition.
Grads Meeting - San Diego Feb 2000 The Cactus Code Gabrielle Allen Albert Einstein Institute Max Planck Institute for Gravitational Physics
1-1 Embedded Network Interface (ENI) API Concepts Shared RAM vs. FIFO modes ENI API’s.
Chapter 3 Parallel Algorithm Design. Outline Task/channel model Task/channel model Algorithm design methodology Algorithm design methodology Case studies.
(Superficial!) Review of Uniprocessor Architecture Parallel Architectures and Related concepts CS 433 Laxmikant Kale University of Illinois at Urbana-Champaign.
Model Coupling Environmental Library. Goals Develop a framework where geophysical models can be easily coupled together –Work across multiple platforms,
Overview for Application Programmer The Cactus Team Albert Einstein Institute
1-1 NET+OS Software Group Flash API Multiple flash memory bank support New Flash API introduction Detailed Flash API Function presentation Supporting.
Understanding the TigerSHARC ALU pipeline Determining the speed of one stage of IIR filter – Part 3 Understanding the memory pipeline issues.
Chapter 11 Heap. Overview ● The heap is a special type of binary tree. ● It may be used either as a priority queue or as a tool for sorting.
Storage Management - Chap 10 MANAGING A STORAGE HIERARCHY on-chip --> main memory --> 750ps - 8ns ns. 128kb - 16mb 2gb -1 tb. RATIO 1 10 hard disk.
Supporting Systolic and Memory Communication in iWarp CS258 Paper Summary Computer Science Jaein Jeong.
GridLab WP-2 Cactus GAT (CGAT) Ed Seidel, AEI & LSU Co-chair, GGF Apps RG, Gridstart Apps TWG Gabrielle Allen, Robert Engel, Tom Goodale, *Thomas Radke.
Lecture 4 TTH 03:30AM-04:45PM Dr. Jianjun Hu CSCE569 Parallel Computing University of South Carolina Department of.
Computer Hardware A computer is made of internal components Central Processor Unit Internal External and external components.
Functions in Assembly CS 210 Tutorial 7 Functions in Assembly Studwww.cs.auckland.ac.nz/ ~mngu012/public.html/210/7/
Example Application: 3D Scalar Wave Equation
1 Computer Systems II Introduction to Processes. 2 First Two Major Computer System Evolution Steps Led to the idea of multiprogramming (multiple concurrent.
© David Kirk/NVIDIA, Wen-mei W. Hwu, and John Stratton, ECE 498AL, University of Illinois, Urbana-Champaign 1 CUDA Lecture 7: Reductions and.
Connections to Other Packages The Cactus Team Albert Einstein Institute
Linked List Containers. Linked Lists List consists of multiple listnodes List consists of multiple listnodes Each listnode consists of Each listnode consists.
4P13 Week 12 Talking Points Device Drivers 1.Auto-configuration and initialization routines 2.Routines for servicing I/O requests (the top half)
Data Structures - Part I CS 215 Lecture 7. Motivation  Real programs use abstractions like lists, trees, stacks, and queues.  The data associated with.
Threaded Programming Lecture 1: Concepts. 2 Overview Shared memory systems Basic Concepts in Threaded Programming.
2005MEE Software Engineering Lecture 7 –Stacks, Queues.
Slide 1 NEMOVAR-LEFE Workshop 22/ Slide 1 Current status of NEMOVAR Kristian Mogensen.
Dynamic Grid Computing: The Cactus Worm The Egrid Collaboration Represented by: Ed Seidel Albert Einstein Institute
1 Introduction to Object Oriented Programming Chapter 10.
3/12/2013Computer Engg, IIT(BHU)1 OpenMP-1. OpenMP is a portable, multiprocessing API for shared memory computers OpenMP is not a “language” Instead,
Cactus Workshop - NCSA Sep 27 - Oct Generic Cactus Workshop: Summary and Future Ed Seidel Albert Einstein Institute
Barnes Hut – A Broad Review Abhinav S Bhatele The 27th day of April, 2006.
Array and Pointers An Introduction Unit Unit Introduction This unit covers the usage of pointers and arrays in C++
ECE 456 Computer Architecture Lecture #9 – Input/Output Instructor: Dr. Honggang Wang Fall 2013.
1 Chapter 4 Unordered List. 2 Learning Objectives ● Describe the properties of an unordered list. ● Study sequential search and analyze its worst- case.
LECTURE 19 Subroutines and Parameter Passing. ABSTRACTION Recall: Abstraction is the process by which we can hide larger or more complex code fragments.
System Components Operating System Services System Calls.
Constructors and Destructors
Homework Assignment #2 J. H. Wang Oct. 25, 2016.
Procedures 101: There and Back Again
In-situ Visualization using VisIt
Atomic Operations in Hardware
Computer Engg, IIT(BHU)
This pointer, Dynamic memory allocation, Constructors and Destructor
Arrays and Linked Lists
Constructors and Destructors
ECE 498AL Lecture 15: Reductions and Their Implementation
Parallel Programming in C with MPI and OpenMP
Fetch And Add – switching network
Presentation transcript:

Cactus Workshop - NCSA Sep 27 - Oct Adding a Driver Thorn to Cactus Tom Goodale Albert Einstein Institute

n Allocates all memory of all grid variables l Flesh doesn't know how things are stored in memory n Communicates grid variables l Flesh doesn't know what parallisation, if any, is in operation n May take charge of the evolution l Flesh knows nothing about multiple patches, AMR, etc. What does a Driver do?

Anatomy of a driver n Startup n GH Extension n Memory allocation/deallocation n Communication enabling/disabling n Evolution n Reduction n Interpolation

Startup n Must register itself as a GH Extension l Adds data to the GH structure n Overload functions l Synchronisation and communication l Memory allocation l Parallel functions l Evolution Step n May register reduction operators n May register interpolation functions

GH Extensions n Used to associate data with a GH n Three functions l SetupGH – Returns the memory structure to hold data l InitGH – Initialises the data structure l ScheduleTraverse – Used for traversing the scheduling trees

Memory n The flesh provides information about the types of variables, but doesn't, itself, store allocate any memory for them. n A driver must overload l CCTK_EnableGroupStorage l CCTK_DisableGroupStorage n Driver can store the grids however it likes, as long as thorns are passed arrays in Fortran order of size cctk_sh(1),... n Also must overload query functions which return the status of the storage, and the size in each direction

Communication n The Driver must provide functions to synchronise the variable groups, so must overload l CCTK_SyncGroup l CCTK_EnableGroupComm l CCTK_DisableGroupComm n The flesh provides default empty ones for these if there is no parallelism.

n The flesh provides a simple unigrid evolution stepper. This assumes one grid. n A driver could support multiple grids, in which case it needs to overload the CCTK_Evolution routine. n On each grid it should make sure it calls CCTK_Schedule(GH, point) on l CCTK_PRESTEP l CCTK_EVOL l CCTK_BOUND l CCTK_POSTSTEP l CCTK_ANALYSIS n The timestep should be updated after bound. Evolution

Reduction and Interpolation n Some thorns need to do global operations like getting the maximum of a grid function across all grids. It provides these by registering reduction operators, and should at least define the maximum, minimum, L1 and L2 norms. n Additionally, since a driver is in principle the only thing which needs to know the grid structure, it should provide a means of getting the value of a grid function at a particular point in coordinate space irrespective of which processor it's on. This can be provided by registering an interpolation routine.