Interfaces for Runtime Correctness Checking of Parallel Programs
Joachim Protze (protze@itc.rwth-aachen.de)
Interfaces for Runtime Correctness Checking of Parallel Programs - - PowerPoint PPT Presentation
Interfaces for Runtime Correctness Checking of Parallel Programs Joachim Protze (protze@itc.rwth-aachen.de) Motivation OpenMP 3 introduced tasks (2008) Several data race detection tools for OpenMP tasks popped up just last year How can
Joachim Protze (protze@itc.rwth-aachen.de)
Generic Tool Interface for Runtime Correctness Checking Joachim Protze 2
Generic Tool Interface for Runtime Correctness Checking Joachim Protze 3
parallel-begin implicit-task-begin implicit-task-end ! parallel-end barrier-begin barrier-end barrier-begin
Generic Tool Interface for Runtime Correctness Checking Joachim Protze 4
task-create task-begin taskwait-end task-end task-begin task-end +task-dependencies
Generic Tool Interface for Runtime Correctness Checking Joachim Protze 5
Generic Tool Interface for Runtime Correctness Checking Joachim Protze 6
▪ 359.botsspar: 353400 task switches ▪ 370.mgrid331: 6383 parallel regions
10 20 30 40 50 350 351 352 357 358 359 360 362 363 367 370 371 372 376
Tool Slowdown
2 Threads 4 Threads 12 Threads 99.8
Generic Tool Interface for Runtime Correctness Checking Joachim Protze 7
Happens-before Observed execution order
Generic Tool Interface for Runtime Correctness Checking Joachim Protze 8
Happens-before Observed execution order Fork / spawn
Generic Tool Interface for Runtime Correctness Checking Joachim Protze 9
Generic Tool Interface for Runtime Correctness Checking Joachim Protze 10
Generic Tool Interface for Runtime Correctness Checking Joachim Protze 11
Generic Tool Interface for Runtime Correctness Checking Joachim Protze 12
Generic Tool Interface for Runtime Correctness Checking Joachim Protze 14