Programming-Model Centric Debugging for OpenMP
Nano2017/Dema Project Meeting June 24th, 2015 Université Paris Jussieu
Kevin Pouget OMP Programming-Model Centric Debugging June 24th, 2015 1 / 20
Programming-Model Centric Debugging for OpenMP Nano2017/Dema Project - - PowerPoint PPT Presentation
Programming-Model Centric Debugging for OpenMP Nano2017/Dema Project Meeting June 24 th , 2015 Universit Paris Jussieu June 24 th , 2015 Kevin Pouget OMP Programming-Model Centric Debugging 1 / 20 Introduction OpenMP and GDB Hard to
Kevin Pouget OMP Programming-Model Centric Debugging June 24th, 2015 1 / 20
Kevin Pouget OMP Programming-Model Centric Debugging June 24th, 2015 2 / 20
Kevin Pouget OMP Programming-Model Centric Debugging June 24th, 2015 2 / 20
Kevin Pouget OMP Programming-Model Centric Debugging June 24th, 2015 2 / 20
Kevin Pouget OMP Programming-Model Centric Debugging June 24th, 2015 2 / 20
Kevin Pouget OMP Programming-Model Centric Debugging June 24th, 2015 2 / 20
Kevin Pouget OMP Programming-Model Centric Debugging June 24th, 2015 2 / 20
but that requires a bit of work, so let’s study what can be done first. Kevin Pouget OMP Programming-Model Centric Debugging June 24th, 2015 3 / 20
Kevin Pouget OMP Programming-Model Centric Debugging June 24th, 2015 4 / 20
Kevin Pouget OMP Programming-Model Centric Debugging June 24th, 2015 5 / 20
Kevin Pouget OMP Programming-Model Centric Debugging June 24th, 2015 6 / 20
Kevin Pouget OMP Programming-Model Centric Debugging June 24th, 2015 6 / 20
Kevin Pouget OMP Programming-Model Centric Debugging June 24th, 2015 6 / 20
Kevin Pouget OMP Programming-Model Centric Debugging June 24th, 2015 6 / 20
Kevin Pouget OMP Programming-Model Centric Debugging June 24th, 2015 6 / 20
◮ GDB is a complex process and can freeze after the fork... Kevin Pouget OMP Programming-Model Centric Debugging June 24th, 2015 6 / 20
◮ GDB is not thread-safe ⇒ CLI + GUI in a thread == segfault Kevin Pouget OMP Programming-Model Centric Debugging June 24th, 2015 6 / 20
◮ GDB is not thread-safe ⇒ CLI + GUI in a thread == segfault
Kevin Pouget OMP Programming-Model Centric Debugging June 24th, 2015 6 / 20
* illustrations in the following section Kevin Pouget OMP Programming-Model Centric Debugging June 24th, 2015 6 / 20
Kevin Pouget OMP Programming-Model Centric Debugging June 24th, 2015 7 / 20
Kevin Pouget OMP Programming-Model Centric Debugging June 24th, 2015 8 / 20
Kevin Pouget OMP Programming-Model Centric Debugging June 24th, 2015 8 / 20
Kevin Pouget OMP Programming-Model Centric Debugging June 24th, 2015 9 / 20
Kevin Pouget OMP Programming-Model Centric Debugging June 24th, 2015 10 / 20
◮ set a BP on barrier function ◮ continue until (all the threads -1) hit the barrier ◮ when the last thread arrives: ⋆ activate scheduler-locking (= run only one thread at a time) ⋆ for all the threads:
a Kevin Pouget OMP Programming-Model Centric Debugging June 24th, 2015 10 / 20
◮ set a BP on barrier function ◮ continue until (all the threads -1) hit the barrier ◮ when the last thread arrives: ⋆ activate scheduler-locking (= run only one thread at a time) ⋆ for all the threads:
aThou shalt not alter any data within gdb or the inferior (gdbdoc 23,2,2,20) Kevin Pouget OMP Programming-Model Centric Debugging June 24th, 2015 10 / 20
Kevin Pouget OMP Programming-Model Centric Debugging June 24th, 2015 10 / 20
Kevin Pouget OMP Programming-Model Centric Debugging June 24th, 2015 10 / 20
Kevin Pouget OMP Programming-Model Centric Debugging June 24th, 2015 11 / 20
Kevin Pouget OMP Programming-Model Centric Debugging June 24th, 2015 12 / 20
Kevin Pouget OMP Programming-Model Centric Debugging June 24th, 2015 12 / 20
Kevin Pouget OMP Programming-Model Centric Debugging June 24th, 2015 12 / 20
Kevin Pouget OMP Programming-Model Centric Debugging June 24th, 2015 12 / 20
Kevin Pouget OMP Programming-Model Centric Debugging June 24th, 2015 13 / 20
Kevin Pouget OMP Programming-Model Centric Debugging June 24th, 2015 13 / 20
Kevin Pouget OMP Programming-Model Centric Debugging June 24th, 2015 13 / 20
Kevin Pouget OMP Programming-Model Centric Debugging June 24th, 2015 13 / 20
Kevin Pouget OMP Programming-Model Centric Debugging June 24th, 2015 14 / 20
Kevin Pouget OMP Programming-Model Centric Debugging June 24th, 2015 14 / 20
(not reflected in the illustration below) Kevin Pouget OMP Programming-Model Centric Debugging June 24th, 2015 15 / 20
Kevin Pouget OMP Programming-Model Centric Debugging June 24th, 2015 16 / 20
Kevin Pouget OMP Programming-Model Centric Debugging June 24th, 2015 17 / 20
Kevin Pouget OMP Programming-Model Centric Debugging June 24th, 2015 17 / 20
Kevin Pouget OMP Programming-Model Centric Debugging June 24th, 2015 17 / 20
Kevin Pouget OMP Programming-Model Centric Debugging June 24th, 2015 17 / 20
Kevin Pouget OMP Programming-Model Centric Debugging June 24th, 2015 17 / 20
Kevin Pouget OMP Programming-Model Centric Debugging June 24th, 2015 18 / 20
Kevin Pouget OMP Programming-Model Centric Debugging June 24th, 2015 19 / 20
Kevin Pouget OMP Programming-Model Centric Debugging June 24th, 2015 20 / 20
Kevin Pouget OMP Programming-Model Centric Debugging June 24th, 2015 20 / 20
Kevin Pouget OMP Programming-Model Centric Debugging June 24th, 2015 20 / 20