220 likes | 423 Views
Result Reuse in Design Space Exploration: A Study in System Support for Interactive Parallel Computing. Siu-Man Yau, (smyau@cs.nyu.edu), New York University
E N D
Result Reuse in Design Space Exploration: A Study in System Support for Interactive Parallel Computing Siu-Man Yau, (smyau@cs.nyu.edu), New York University Steven G. Parker (sparker@cs.utah.edu), University of Utah Kostadin Damevski (damevski@cs.utah.edu), University of Utah Vijay Karamcheti (vijayk@cs.nyu.edu), New York University Denis Zorin (dzorin@cs.nyu.edu), New York University
Multi-Experiment Studies • Computational studies that require multiple runs of a simulation software. • Design Space Exploration
Interactive Parallel Computing • Ubiquitous computing power • Multi-core chips • GPU w/general computing power • Low-cost Supercomputing • Opportunity for interactive parallel computing • Requires new system paradigm
Outline • Design Space Exploration (DSE): Defibrillator Design Application • SimX System • Reuse opportunities in DSE & System support for reuse • Evaluation • Conclusion
Defibrillator Simulation Simulation (DefibSim): • Utah Torso model • Implemented on SCIRun Interactive Problem-Solving Environment • Place electrodes, set voltage Torso potential
Defibrillator Simulation Evaluation: • Torso potential heart current • Goal: • Maximize Activation (% tissue above act.) • Minimize Damage (% tissue above damage)
Defibrillator Study • Pareto Frontier: set of inputs that cannot be improved in all objectives Activation Damage
Design Space Exploration • Interactive Exploration of Pareto Frontier • Move the back electrode • Change current threshold for activation
SimX: Overview • System support for Interactive Multi-Experiment Studies (SIMECS) • View computational study as a whole • For parallel, distributed clusters • Workers (Simulation code & Evaluation code) • Manager (UI, Sampler, Resource Allocator) • Spatially-Indexed Shared Object Layer (SISOL)
SimX: Overview • Design space & slice • Performance space • General DSE formulation: • Simulation code Design Sim. result • Evaluation code Sim. result Perf. metric
SimX: Overview User Interface: Visualisation & Interaction Simulation code Data Server Sampler Xform Module Data Server FUEL Interface FUEL Interface Evaluation code Dir Server Data Server Task Queue Data Server SISOL Server Pool Resource Allocator Worker Process Pool Front-end Manager Process
Reuse Opportunities • Take application view • Gather information from earlier runs • Speed up or eliminate later runs • Use domain knowledge • 3 levels of information • Aggregate: Sampler, Cross-study • Individual: Simulation result, Performance metric • Internal: Intermediate result, Preconditioner
Aggregate Result: Sampler • Schedule runs from coarse to fine grid • Use coarse level results to identify promising regions • For Pareto Frontier discovery 2nd Level 3rd Level 1st Level
Support for Sampler Reuse User Interface: Visualisation & Interaction void setStudy(StudySpec) void registerResult(experiment, performance) experiment getNextPointToRun () SimX Sampler API Simulation code Data Server Active (Pareto) Sampler Random Sampler Sampler Custom Sampler Naïve (Sweep) Sampler Xform Module Data Server FUEL Interface FUEL Interface Evaluation code Dir Server Data Server Task Queue Data Server SISOL Server Pool Resource Allocator Worker Process Pool Front-end Manager Process
Individual Result: Simulation • Increase activation current threshold • Inputs to simulation code unchanged from previous study • Simulation results may be reused • Only Evaluation code needs running
Support for Sim. Result Reuse User Interface: Visualisation & Interaction Simulation code SISOL API: object StartRead(objSet, coord) void EndRead(object) object StartWrite(objSet, coord) void EndWrite(objSet, object) !!Spatially Indexed!! Data Server Sampler Xform Module FUEL Interface FUEL Interface Data Server Dir Server Data Server Task Queue Evaluation code Data Server SISOL Server Pool Resource Allocator Worker Process Pool Front-end Manager Process
Internal Reuse: Intermediate Result • DefibSim solves 3 systems of equations • Linearly combine solutions • Same system needed by different experiments • Cache the solutions Aax=ba Acx=bc Abx=bb Store Ac-1bc and Ab-1bb Adx=bd
Intermediate Result Reuse User Interface: Visualisation & Interaction SISOL API: object StartRead(objSet, coord) void EndRead(object) object StartWrite(objSet, coord) void EndWrite(objSet, object) Simulation Code Aa-1ba Data Server Sampler Ab-1bb Xform Module Data Server FUEL Interface FUEL Interface Dir Server Data Server Task Queue Data Server Evaluation code SISOL Server Pool Resource Allocator Worker Process Pool Front-end Manager Process
Evaluation • 2 scenarios: • Increase activation current threshold • Move back electrode • Measure response time • Characterise reuse benefits • 5 SISOL processes, 1 manager process, 1-128 worker processes
Increase Activation Threshold 65K sims @ 2 secs 1.6K sims @ 2 secs 1.2K sims @ 0.3 secs 1.2K sims @ 1.5 secs
Move Back Electrode 65K sims @ 2 secs 7.3K sims @ 2 secs 6.5K sims @ 1.5 secs
Conclusion • Result Reuse yields 8x-100x improvement in response time • Interactive rate: 12-120 secs • Conclusions: • View from application level important • Domain knowledge important • System infrastructure to exploit domain knowledge important