What is Cactus? Cactus is a framework for developing portable, modular applications

Similar documents
Introduction to the Cactus Framework

Fourteen years of Cactus Community

High Performance and Grid Computing Applications with the Cactus Framework. HPCC Program Grand Challenges (1995)

Cactus Tutorial. Introduction to Cactus. Yaakoub El Khamra. Cactus Developer, Frameworks Group CCT 27 March, 2007

Cactus Framework: Scaling and Lessons Learnt

The Cactus Framework. Erik Schnetter September 2006

Parallelism. Wolfgang Kastaun. May 9, 2008

Cactus: Current Status and Future Plans

Integration of Trilinos Into The Cactus Code Framework

From Physics Model to Results: An Optimizing Framework for Cross-Architecture Code Generation

Introduction to the Einstein Toolkit Details

The Cactus Framework and Toolkit: Design and Applications

Datura The new HPC-Plant at Albert Einstein Institute

Grid Computing in Numerical Relativity and Astrophysics

Adaptive Mesh Astrophysical Fluid Simulations on GPU. San Jose 10/2/2009 Peng Wang, NVIDIA

Performance Profiling with Cactus Benchmarks

PHYSICS TOMORROW. The Grid from an Application Viewpoint. Ed Seidel

Parallel Programming with MPI on Clusters

Erik Schnetter Rochester, August Friday, August 27, 2010

A Scalable Adaptive Mesh Refinement Framework For Parallel Astrophysics Applications

Component Specification in the Cactus Framework: The Cactus Configuration Language

The Cactus Framework: Design, Applications and Future Directions. Cactus Code

Adaptive Mesh Refinement in Titanium

Application / User Viewpoint

Performance and Optimization Abstractions for Large Scale Heterogeneous Systems in the Cactus/Chemora Framework

Integrating Web 2.0 Technologies with Scientific Simulation Codes for Real-Time Collaboration

arxiv: v1 [physics.comp-ph] 24 Jul 2013

Dynamic Deployment of a Component Framework with the Ubiqis System

Large-scale Gas Turbine Simulations on GPU clusters

Optimising the Mantevo benchmark suite for multi- and many-core architectures

Introduction to Parallel Programming in OpenMp Dr. Yogish Sabharwal Department of Computer Science & Engineering Indian Institute of Technology, Delhi

6/20/16. Blue Waters User Monthly Teleconference

Fluent User Services Center

cdo Data Processing (and Production) Luis Kornblueh, Uwe Schulzweida, Deike Kleberg, Thomas Jahns, Irina Fast

Day 2 August 06, 2004 (Friday)

Introducing Overdecomposition to Existing Applications: PlasComCM and AMPI

Developing the TELEMAC system for HECToR (phase 2b & beyond) Zhi Shang

AstroGrid-D. Advanced Prototype Implementation of Monitoring & Steering Methods. Documentation and Test Report 1. Deliverable D6.5

Scientific Computing at Million-way Parallelism - Blue Gene/Q Early Science Program

ScalaIOTrace: Scalable I/O Tracing and Analysis

I/O Optimization Strategies in the PLUTO Code

Community Software Development with the Astrophysics Simulation Collaboratory

Scientific Components and Frameworks

Algorithms, System and Data Centre Optimisation for Energy Efficient HPC

SPH: Why and what for?

Python, Clawpack, PyClaw, and PetClaw (using PETSc)

Overview and Recent Developments of Dynamic Mesh Capabilities

Scientific Visualization Services at RZG

SC12 HPC Educators session: Unveiling parallelization strategies at undergraduate level

Tuning I/O Performance for Data Intensive Computing. Nicholas J. Wright. lbl.gov

Unstructured Grid Numbering Schemes for GPU Coalescing Requirements

ORAP Forum October 10, 2013

Cactus-Simulationen on the Grid

Pre- and post-processing in Nektar++

Semester Final Report

Introduction to High Performance Parallel I/O

Turbostream: A CFD solver for manycore

Development Environments for HPC: The View from NCSA

A Framework for Visualizing Hierarchical Computations

Compiler Technology for Problem Solving on Computational Grids

Improving Uintah s Scalability Through the Use of Portable

3D Resistivity Logging Instruments

The parallelization of a block-tridiagonal matrix system for an electromagnetic wave simulation in TOKAMAK(TORIC) by MPI Fortran

Communication-Avoiding Optimization of Geometric Multigrid on GPUs

Real Parallel Computers

CFDnet: Computational Fluid Dynamics on the Internet

Pratibha Gopalam, A. N. Cartwright, Bina Ramamurthy. University at Buffalo

Multi-Physics Multi-Code Coupling On Supercomputers

Implementation of an integrated efficient parallel multiblock Flow solver

HPC Algorithms and Applications

The Icosahedral Nonhydrostatic (ICON) Model

Example 13 - Shock Tube

Parallel Languages: Past, Present and Future

Energy Efficiency for Exascale. High Performance Computing, Grids and Clouds International Workshop Cetraro Italy June 27, 2012 Natalie Bates

MRI Induced Heating of a Pacemaker. Peter Krenz, Application Engineer

Parallel Mesh Partitioning in Alya

Introduction to GT3. Introduction to GT3. What is a Grid? A Story of Evolution. The Globus Project

Achieving Efficient Strong Scaling with PETSc Using Hybrid MPI/OpenMP Optimisation

COSC6365. Introduction to HPC. Lecture 21. Lennart Johnsson Department of Computer Science

Experiences with ENZO on the Intel R Many Integrated Core (Intel MIC) Architecture

Scalable Computing: Practice and Experience Volume 11, Number 2, pp

Parallel I/O Performance Study and Optimizations with HDF5, A Scientific Data Package

First Steps of YALES2 Code Towards GPU Acceleration on Standard and Prototype Cluster

The State and Needs of IO Performance Tools

Development of an Integrated Modeling Framework for Simulations of Coastal Processes in Deltaic Environments Using High-Performance Computing

Grid Programming Models: Current Tools, Issues and Directions. Computer Systems Research Department The Aerospace Corporation, P.O.

General Plasma Physics

The Cactus Framework. Tom Goodale LSU Center for Computation and Technology and Cardiff University

Supercomputing and Science An Introduction to High Performance Computing

ALE and AMR Mesh Refinement Techniques for Multi-material Hydrodynamics Problems

LEHMAN COLLEGE OF THE CITY UNIVERSITY OF NEW YORK DEPARTMENT OF PHYSICS AND ASTRONOMY CURRICULUM CHANGE

High Performance Computing

Enzo-P / Cello. Formation of the First Galaxies. San Diego Supercomputer Center. Department of Physics and Astronomy

The Study of Ship Motions in Regular Waves using a Mesh-Free Numerical Method

THE NATIONAL DATA SERVICE(S) & NDS CONSORTIUM A Call to Action for Accelerating Discovery Through Data Services we can Build Ed Seidel

A Multiscale Non-hydrostatic Atmospheric Model for Regional and Global Applications

HDF5 and STEP/NRF Database for SINDA/G

Chapter 1: An Overview of Computers and Programming Languages. Objectives. Objectives (cont d.) Introduction

Introduction to 3D Scientific Visualization. Training in Visualization for PRACE Summer of HPC 2013 Leon Kos, University of Ljubljana, Slovenia

Towards Self-Verification in Finite Difference Code Generation

Transcription:

What is Cactus? Cactus is a framework for developing portable, modular applications

What is Cactus? Cactus is a framework for developing portable, modular applications focusing, although not exclusively, on high-performance simulation codes

What is Cactus? Cactus is a framework for developing portable, modular applications focusing, although not exclusively, on high-performance simulation codes designed to allow experts in different fields to develop modules based upon their experience and to use modules developed by experts in other fields with minimal knowledge of the internals or operation of the other modules

Cactus Goals Portable Different development machines Different production machines

Cactus Goals Portable Different development machines Different production machines Modular Standard interfaces for module interaction for easier code interaction, writing and debugging Interchangeable modules with same functionality

Cactus Goals Portable Different development machines Different production machines Modular Standard interfaces for module interaction for easier code interaction, writing and debugging Interchangeable modules with same functionality Easy to use Good documentation Try to let users program the way they are used to Support all major (HPC) programming languages

Philosophy Open code base to encourage community contributions

Philosophy Open code base to encourage community contributions Strict quality control for base framework

Philosophy Open code base to encourage community contributions Strict quality control for base framework Development always driven by real user requirements

Philosophy Open code base to encourage community contributions Strict quality control for base framework Development always driven by real user requirements Support and develop for a wide range of application domains

What is Cactus for? Assume: Computational problem Too large for single machine Distributed development Multiple programming languages

What is Cactus for? Assume: Computational problem Too large for single machine OpenMP MPI Distributed development Multiple programming languages

What is Cactus for? Assume: Computational problem Too large for single machine OpenMP MPI Distributed development Modularize Problem Versioning system(s) Multiple programming languages

What is Cactus for? Assume: Computational problem Too large for single machine OpenMP MPI Distributed development Modularize Problem Versioning system(s) Multiple programming languages Modularize Problem Interfaces for inter-language communication

What is Cactus for? Assume: Computational problem Too large for single machine OpenMP MPI Distributed development Modularize Problem Versioning system(s) Multiple programming languages Modularize Problem Interfaces for inter-language communication

Modularization Motivation Simulations are complex, may contain several models at once. Example: Long Gamma Ray Burst: General Relativity (black hole) Relativistic Hydrodynamics (star) Microphysics, equation of state (shock wave) Neutrino radiation (cooling, heating) Magnetic Fields (Jet formation) Photon radiation (afterglow)

Modularization Motivation Added Problems: Example: Einstein Toolkit (not untypical) Code 12+ years old Grad students leave after 3 productive years Most original authors not available anymore Developers distributed over many places in several continents Most physicists are not good programmers

Component Architecture Split program into independent components (as much as possible) Framework provides glue between these Components are developed independently by small groups End user assembles all code: no central control, no authorative version Framework itself does no real work Components don t interact directly with each other

Cactus History Direct descendant of many years of code development in Ed Seidel s group of researchers at NCSA 1995, Paul Walker, Joan Masso, Ed Seidel, and John Shalf: Cactus 1.0 Originally for numerical relativity Over the years generalized for use by scientists in other domains

Current Users and Developers

Covers

Cactus Funding Organizations: Max-Planck-Gesellschaft Center for Computation & Technology at LSU National Center for Supercomputing Applications Lawrence Berkeley National Laboratory Washington University University of Tübingen Grants: NSF (PHY-9979985, 0540374, 0653303, 0701491, 0701566, PIF-0904015, 0903973, 0903782) Europ. Commission (HPRN-CT-2000-00137, IST-2001-32133) DFN-Verein (TK 6-2-AN 200) DFG (TiKSL) ONR (COMI) DOE/BOR (OE DE-FG02-04ER46136, BOR DOE/LEQSF)

Cactus Awards IEEE SCALE09 Challenge Winner 2009 IEEE Sidney Fernback Award 2006 High-Performance Bandwidth Challenge SC2002 High-Performance Computing Challenge SC2002 Gordon Bell Prize for Supercomputing SC2001 HPC Most Stellar Challenge Award SC1998 Heinz Billing Prize for Scientific Computing 1998

The Flesh The flesh is the central component of Cactus. It interfaces with modular components called thorns. The flesh provides: Variables & Data Types Parameters Functions for: Parallelisation Input/Output Coordinates Reduction Interpolation Information Staggering Indexing Ghostzones

Thorns Some thorns provide additional functionality, while others serve as applications. Thorns are grouped into arrangements which supply some common functionality. Example thorns: CactusIO CactusIOJpeg CactusConnect HTTPD PUGH PUGH input and output operations JPEG image data compression and writing operations networking starts the HTTP daemon for remote connections unigrid driver + tools; reductions and interpolations unigrid driver handles grid scalars, arrays and functions

Application Toolkits The Einstein Toolkit is a collection of arrangements for computational relativity. The toolkit includes a vacuum spacetime solver (McLachlan), a relativistic hydrodynamics solver, along with thorns for initial data, analysis and computational infrastructure. The Cactus Computational Toolkit is a collection of arrangements that provides general computational infrastructure.

Typical list of component tasks Evolution systems Boundary conditions Initial conditions Time stepping method Finite Difference methods Simulation grid (distributed arrays) I/O (more on next slide) Simulation domain specification Termination condition Twitter client

I/O Capabilities Usual I/O and checkpointing in different formats: Screen output ASCII file output HDF5 file in-/output Online Jpeg rendering Online VisIt visualization

More Capabilities: Grids, Boundaries, Symmetries Grids Only structured meshes (at the moment) Unigrid (PUGH) Adaptive Mesh Refinement (Carpet) Boundaries / Symmetries Periodic Static Mirror symmetries Rotational symmetries Problemspecific boundaries

The Cactus Computational Toolkit Core modules (thorns) providing many basic utilities: I/O methods Boundary conditions Parallel unigrid driver Reduction and Interpolation operators Interface to external elliptic solvers Web-based interaction and monitoring interface Simple example thorns (wavetoy)

Many arrangements with many modules... CactusBase CactusBench CactusConnect CactusElliptic CactusExamples CactusExternal CactusIO CactusNumerical CactusPUGH CactusPUGHIO CactusTest CactusUtils CactusWave Basic utility and interface thorns Benchmark utility thorns Network utility thorns Elliptic solvers / interface thorns Example thorns External library interface thorns General I/O thorns General numerical methods Cactus Unigrid Driver thorn I/O thorns specifix for PUGH driver Thorns for Cactus testing Misc. utility thorns Wave example thorns