Computational Steering in RealityGrid J M Brooke*, P V Coveney†, J Harting†, S Jha†, S M Pickles*, R L Pinning* and A R Porter* * Manchester Computing, University of Manchester † Centre for Computational Science, University College London http://www.realitygrid.org http://www.realitygrid.org Problems associated with demanding high performance computational science are not confined to merely finding resources with larger numbers of processors or memory. Simulations that require greater computational resources also require increasingly sophisticated and complex tools for the analysis and management of the output of the simulations. For a range of scientific applications, controlling the evolution of a computation based upon the realtime analysis and visualisation of the status of a simulation alleviates many of the limitations of a simple simulate-then-analyse approach. Computational steering is the functionality that enables the user to influence the otherwise sequential simulation and analysis phases by merging and interspacing them. A central theme of RealityGrid is the facilitation of distributed and interactive exploration of physical models and systems through computational steering of parallel simulation codes and simultaneous on-line, high-end visualisation. We provide design and implementation details of the RealityGrid steering library and toolkit. The capabilities of the library are outlined and the service-orientated architecture of the latest implementation based on the Open Grid Services Infrastructure is presented. Using the simulation of complex fluids by Lattice Boltzmann methods as an example, we show the advantages that a powerful, flexible computational steering framework provides the physical scientist, i.e, how it enables more effective utilization of computational resource and enhances a scientist's productivity. Implementation Computational Steering Large-scale simulations (and experiments) can generate in days data that takes months to understand. Computational steering aims to short circuit post facto analysis by enabling the scientist to navigate their simulation/experiment through interesting regions of parameter space. The provision of simultaneous, on-line visualisation develops and engages the scientist's intuition. Allowing the scientist to interact with their simulation/experiment thus helps him/her avoid wasting valuable computation/experiment time exploring barren regions or even doing the wrong calculation. These and other benefits of computational steering are explored further in [1]. Steering GS Steering library publish client connect Steering Steering library find Registry • Suitable for use in parallel programs – no restriction on programming paradigm or technology (e.g. MPI , OpenMP etc.). Bindings available for common scientific languages – F90, C and C++; • Combination of API and ‘reverse communication’ approach gives application scientist considerable flexibility in choosing how much steering functionality they wish to implement; • Single library API supports both local (file-based) and remote (via grid service using SOAP over HTTP) steering. Steering grid service implemented in Perl and hosted by the OGSI::Lite package by Mark Mc Keown [2]; Simulation bind Client • Steering functionality made available to application via subroutine library data transfer Functionality • Qt-based steering client for Linux and IRIX built on the steering library; • Support for: •Dynamic attach and detach from running simulation; •Parameter monitoring (and plotting); publish Steering library bind Steering GS •Parameter steering (with bounds); •Stop and Pause commands; Visualisation •Control of data-set emission (via globus_io); Figure 1: The RealityGrid steering architecture. •Control of checkpointing and restart; • vtk-based visualisation component using globus_io for data transfer. Architecture • RealityGrid applications consist of one or more software components (e.g. molecular dynamics simulation plus visualisation); • Public computational-steering interface for steerable components provided by a grid service (Figure 1); • Steerable components can be discovered and steered through standard grid-service technology; Grid-service framework allows automatic construction of inter-component connections (e.g. socket for large data transfers); • Components can be added to or removed from the application dynamically (e.g. introduce a data filter or a different visualisation). Figure 2: The Qt-based steering client. Lattice Boltzmann methods Complex Fluids Vortex Knot Evolution • The lattice Boltzmann method is a mesoscale method for simulating complex fluids. This is something traditional CFD cannot do. • Can simulate: • flow in porous media: industrial applications e.g. hydrocarbon recovery process (A). Using a 10243 simulation we can now model ~1cm3 of rock • non-equilibrium process of self-assembly of amphiphilic fluids into equilibrium liquid-crystalline cubic mesophases.(e.g. gyroid phase B). • sheared equilibrium mesophases (C). • Vorticity is the curl of the hydrodynamic velocity, and is strongest at the core of a swirling region of fluid. At high Reynolds number, regions of high vorticity tend to form filamentary structures • We study the dynamical behaviour of vortex knots and links for single phase fluids How Computational Steering helps: • Steering has proved useful for detecting and studying topological changes in vortex cores • Once a change is detected we can return to the last checkpoint and improve either the spatial or temporal resolution of the simulation • The figure below shows how steering through parameter space allows a computational scientist to uncover different binary phases Cubic micellar phase, high surfactant density gradient. Initial condition: Random water/ surfactant mixture. Figure 4:.Evolution of a (2,3) torus knot using Lattice Boltzmann on a 1003 grid B A Self-organization starts. Rewind and restart from checkpoint. Cubic micellar phase, low surfactant density gradient. Lamellar phase: surfactant bilayers between water layers. (Work on the Vortex Knot evolution is by Prof. Bruce Boghosian’s group at Tufts University) C Figure 3: Different physical systems studied. • A Grid infrastructure that permits the coordination of heterogeneous and distributed computing resources provides a natural testbed for demonstrating the effectiveness of computational steering References [1] J Chin, J Harting, S Jha, P V Coveney, A R Porter and S M Pickles, Steering in computational science: mesoscale modelling and simulation, Contemporary Physics, 44 (5), pp 417-434 [2] M Mc Keown, OGSI::Lite; a Perl OGSI-compliant hosting environment, http://www.sve.man.ac.uk/Research/AtoZ/ILCT.