computational steering

26
Computational Computational Steering Steering Sathish Vadhiyar Sathish Vadhiyar Sources/Credits: CUMULVS Sources/Credits: CUMULVS web sites and papers web sites and papers

Upload: macey-ramsey

Post on 30-Dec-2015

34 views

Category:

Documents


0 download

DESCRIPTION

Computational Steering. Sathish Vadhiyar Sources/Credits: CUMULVS web sites and papers. Introduction. Parameters of the computation are adjusted on-the-fly to gain understanding of the problem Respond to simulation results as they occur by manipulating the input parameters - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Computational Steering

Computational SteeringComputational Steering

Sathish VadhiyarSathish Vadhiyar

Sources/Credits: CUMULVS web Sources/Credits: CUMULVS web sites and paperssites and papers

Page 2: Computational Steering

IntroductionIntroduction

Parameters of the computation are adjusted on-Parameters of the computation are adjusted on-the-fly to gain understanding of the problem the-fly to gain understanding of the problem

Respond to simulation results as they occur by Respond to simulation results as they occur by manipulating the input parametersmanipulating the input parameters

For carrying out “what if” analysisFor carrying out “what if” analysis

For experimenting with program characteristics For experimenting with program characteristics whose effects are not easily understoodwhose effects are not easily understood

Allows interactive exploration of simulation in Allows interactive exploration of simulation in time and/or spacetime and/or space

Page 3: Computational Steering

Motivation: Falcon Molecular Motivation: Falcon Molecular Dynamics (MD)Dynamics (MD)

Simulation of system containing 4800 particles representing an Simulation of system containing 4800 particles representing an alkane film layered on 2700 particles representing a crystalline basealkane film layered on 2700 particles representing a crystalline baseSimulation stepsSimulation steps

Obtain location information from neighboring particlesObtain location information from neighboring particles Calculate intra-molecular forcesCalculate intra-molecular forces Calculate inter-molecular forcesCalculate inter-molecular forces Apply forces to yield new particle positionApply forces to yield new particle position Publish particle’s new positionPublish particle’s new position

Other stepsOther steps Determining system-wide characteristics such as atomic temperatureDetermining system-wide characteristics such as atomic temperature Performing on-line data analysis and visualizationPerforming on-line data analysis and visualization

Simulation algorithmSimulation algorithm Domain decompositionDomain decomposition Domains assigned to parallel processorsDomains assigned to parallel processors Cut-off radius in force calculationCut-off radius in force calculation

Page 4: Computational Steering

Steering opportunities in MDSteering opportunities in MD

Changing decomposition geometriesChanging decomposition geometries

Changing cut-off radius – speed/fidelity Changing cut-off radius – speed/fidelity tradeoffstradeoffs

Changing frequency of global temperature Changing frequency of global temperature calculations based on temperature stability calculations based on temperature stability of the systemof the system

Page 5: Computational Steering

Advantages of Steering in MDAdvantages of Steering in MD

Page 6: Computational Steering

Advantages of Steering in MDAdvantages of Steering in MD

Page 7: Computational Steering

CUMULVSCUMULVS

Collaborative User Migration, User Library for Collaborative User Migration, User Library for Visualization and SteeringVisualization and SteeringProvides 2 librariesProvides 2 libraries For application programFor application program For visualization and steering front endFor visualization and steering front end

Can dynamically attach multiple viewer front Can dynamically attach multiple viewer front ends to a running parallel applicationends to a running parallel applicationViewer programs can also steer one or more Viewer programs can also steer one or more user-defined parametersuser-defined parametersAlso provides fault tolerance and migration Also provides fault tolerance and migration across heterogeneous systemsacross heterogeneous systems

Page 8: Computational Steering

CUMULVS – Application and CUMULVS – Application and Visualization SpecificationVisualization Specification

Programmer specifiesProgrammer specifies Data distributionsData distributions Which parameters are allowed to be steeredWhich parameters are allowed to be steered

To reduce network traffic, front-end To reduce network traffic, front-end viewers can specify a region for viewers can specify a region for visualization including the granularity of visualization including the granularity of the desired datathe desired data

Page 9: Computational Steering

CUMULVS – Visualization and CUMULVS – Visualization and Steering – Coordination and Steering – Coordination and

SynchronizationSynchronizationConsistent view of the application’s state Consistent view of the application’s state by the viewer through loose by the viewer through loose synchronization with the applicationsynchronization with the application A viewer brackets the timesteps and ensures A viewer brackets the timesteps and ensures

that all tasks are on one of the timestepsthat all tasks are on one of the timesteps Tasks A, B, and C can be at timesteps Tasks A, B, and C can be at timesteps

10,12,1110,12,11

Steering parameter updates are marked Steering parameter updates are marked with “apply-at” timestepwith “apply-at” timestep

Page 10: Computational Steering

Execution orderExecution order

Page 11: Computational Steering

ExampleExample

Page 12: Computational Steering

Interface DescriptionsInterface Descriptions

Page 13: Computational Steering

Viewer and steering interfaceViewer and steering interface

Viewer programsViewer programs Text-basedText-based AVS-compatible viewerAVS-compatible viewer Custom TCL/TK viewerCustom TCL/TK viewer

Token scheme prevents conflicting Token scheme prevents conflicting adjustments to the same steering adjustments to the same steering parameter by different usersparameter by different usersAll tasks apply the steering changes in All tasks apply the steering changes in unisonunison

Page 14: Computational Steering

Viewer and Steering InterfaceViewer and Steering Interface

Interfaces forInterfaces for Initializing communications with the user applicationInitializing communications with the user application Requesting data fieldsRequesting data fields Collecting data framesCollecting data frames Allocating data frame storageAllocating data frame storage Dumping data field valuesDumping data field values

User’s data field requests:User’s data field requests: Set of data fieldsSet of data fields Specific region of computational domainSpecific region of computational domain Frequency of “data frames”Frequency of “data frames” Cell size for each axis, i.e., data strideCell size for each axis, i.e., data stride

Supports different Data decompositionsSupports different Data decompositions

Page 15: Computational Steering

Viewer interfacesViewer interfaces

stv_viewer_initstv_viewer_init Initializes link with a specific user application Initializes link with a specific user application Gathers information about the data fields and Gathers information about the data fields and

parameters that are available from that applicationparameters that are available from that application Returns instance identifying a particular applicationReturns instance identifying a particular application

Another call for selecting data fields and Another call for selecting data fields and specifying visualization regionsspecifying visualization regions Data type and storage order can be specifiedData type and storage order can be specified Set of fields specified in a single field request is called Set of fields specified in a single field request is called

“view field group”“view field group” Also specifies visualization regions – bounds and cell Also specifies visualization regions – bounds and cell

sizes of data fieldssizes of data fields

Page 16: Computational Steering

Viewer InterfacesViewer Interfaces

stv_viewer_request_field()stv_viewer_request_field() Field requestField request Returns VFG instance that represents the Returns VFG instance that represents the

group of data fields requestedgroup of data fields requested

stv_viewer_send_XONstv_viewer_send_XON Sends “XON” to the applicationSends “XON” to the application Application waits for XON message, polls for Application waits for XON message, polls for

permission to continue with the next iterationpermission to continue with the next iteration

Page 17: Computational Steering

Viewer Interfaces - MiscellaniousViewer Interfaces - Miscellanious

stv_viewer_set_VisRegion()stv_viewer_set_VisRegion() For modifying visualization region of a VFG on For modifying visualization region of a VFG on

the flythe fly Records new set of visualization bounds and Records new set of visualization bounds and

cell sizes and sends update to the applicationcell sizes and sends update to the application

set_viewer_set_VisFrequency()set_viewer_set_VisFrequency() Controlling frequency of data framesControlling frequency of data frames

Page 18: Computational Steering

Steering interfacesSteering interfaces

For iterative controlFor iterative control

stv_viewer_steering_initstv_viewer_steering_init Creates loosely synchronized connection with the Creates loosely synchronized connection with the

user applicationuser application Performs equivalent of special data field requestPerforms equivalent of special data field request

stv_viewer_steering_requeststv_viewer_steering_request Obtains steering token for a particular parameterObtains steering token for a particular parameter If token unavailable, i.e. another viewer possesses itIf token unavailable, i.e. another viewer possesses it

When the possessing viewer releases the token, CUMULVS When the possessing viewer releases the token, CUMULVS will broadcast a message informing all the requesting will broadcast a message informing all the requesting viewersviewers

Page 19: Computational Steering

Steering InterfacesSteering Interfaces

stv_viewer_steer_parameter, stv_viewer_steer_parameter, stv_viewer_steer_vparameterstv_viewer_steer_vparameter Changes values of parametersChanges values of parameters The routines copy viewer data to an internal The routines copy viewer data to an internal

data structuredata structure

stv_viewer_send_NewParams()stv_viewer_send_NewParams() Changed parameters are sentChanged parameters are sent

stv_viewer_steering_releasestv_viewer_steering_release Will relinquish steering tokenWill relinquish steering token

Page 20: Computational Steering

Protocols for attaching to running Protocols for attaching to running applicationapplication

CUMULVS uses application name CUMULVS uses application name supplied in the init call in the application supplied in the init call in the application for attachingfor attaching

Application name registered in a database Application name registered in a database that indicates how to contact instance 0 of that indicates how to contact instance 0 of the applicationthe application

Different phases – inquiry, request for Different phases – inquiry, request for attachment, data transfer, detachmentattachment, data transfer, detachment

Page 21: Computational Steering

Protocols - InquiryProtocols - Inquiry

InquiryInquiry Viewer looks up the application name, Viewer looks up the application name,

message contextmessage context Sends init0 message to task 0.Sends init0 message to task 0. Task0 reply: total number of tasks, data Task0 reply: total number of tasks, data

decompositions, steering parameter decompositions, steering parameter particulars, current time stepparticulars, current time step

Task0 forwards init0 message to other tasksTask0 forwards init0 message to other tasks Other tasks contact the viewer and send their Other tasks contact the viewer and send their

data and steering parametersdata and steering parameters

Page 22: Computational Steering

Protocols – Field RequestProtocols – Field Request

Field request – 3 phasesField request – 3 phases1.1. Viewer sends which fields are required. Viewer sends which fields are required.

Tasks return their current time steps, Tasks return their current time steps, timestep0. tasks compute till timestep0+1.timestep0. tasks compute till timestep0+1.

2.2. After viewer hears from all tasks, it After viewer hears from all tasks, it calculates maximum of timestep0s, calculates maximum of timestep0s, timestep1. sends timestep1 to taskstimestep1. sends timestep1 to tasks

3.3. Tasks compute until timestep1 and then Tasks compute until timestep1 and then send requested data fields to viewerssend requested data fields to viewers

Page 23: Computational Steering

ExampleExample

Simulating propagation of an acoustic Simulating propagation of an acoustic signal through a heterogeneous mediasignal through a heterogeneous media

Solved by finite difference equationsSolved by finite difference equations

Equation has pressure fields and sourcesEquation has pressure fields and sources

CUMULVS used to introduce arbitrary CUMULVS used to introduce arbitrary “thumps” “thumps”

Page 24: Computational Steering

OutputOutput

Page 25: Computational Steering

Example – CFD code Example – CFD code Supercomputing Conference (from Supercomputing Conference (from

CUMULVS web site)CUMULVS web site)

CFD code for simulation of airflow over jet wing

Peak in residual field due to an omitted column in computation

Page 26: Computational Steering

References / Sources / CreditsReferences / Sources / Credits

P. M. Papadopoulos, J. A. Kohl, B. D. Semeraro, ``CUMULVS: P. M. Papadopoulos, J. A. Kohl, B. D. Semeraro, ``CUMULVS: Extending a Generic Steering and Visualization Middleware for Extending a Generic Steering and Visualization Middleware for Application Fault-Tolerance,'' Proceedings of the 31st Hawaii Application Fault-Tolerance,'' Proceedings of the 31st Hawaii International Conference on System Sciences (HICSS-31), Kona, International Conference on System Sciences (HICSS-31), Kona, Hawaii, January 1998.Hawaii, January 1998.G. A. Geist, J. A. Kohl, P. M. Papadopoulos, ``CUMULVS: Providing G. A. Geist, J. A. Kohl, P. M. Papadopoulos, ``CUMULVS: Providing Fault-Tolerance, Visualization and Steering of Parallel Applications,'' Fault-Tolerance, Visualization and Steering of Parallel Applications,'' International Journal of High Performance Computing Applications, International Journal of High Performance Computing Applications, Volume 11, Number 3, August 1997, pp. 224-236.Volume 11, Number 3, August 1997, pp. 224-236.Falcon: On-line Monitoring and Steering of Parallel ProgramsFalcon: On-line Monitoring and Steering of Parallel Programs, , Weiming Gu, Greg Eisenhauer and Karsten Schwan, submitted to Weiming Gu, Greg Eisenhauer and Karsten Schwan, submitted to the the IEEE Transactions on Parallel and Distributed Systems IEEE Transactions on Parallel and Distributed Systems November 1994, revised September 1995. November 1994, revised September 1995.