Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. ·...

66
stmicroelectronics, university of grenoble/lig laboratory STMicroelectronics LIG University of Grenoble Programming-Model Centric Debugging for Multicore Embedded Systems Kevin Pouget, UJF-LIG, STMicroelectronics Miguel Santana, STMicroelectronics Jean-Fran¸coisM´ ehaut, UJF-CEA/LIG Dema/Nano2017 Project Kickoff, March 12 th 2015 (MAD Workshop’14 presentation)

Transcript of Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. ·...

Page 1: Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. · stmicroelectronics, university of grenoble/lig laboratory Introduction Embedded Systems and MPSoC

s tm i croe lectron i c s , un i v er s i ty of grenoble/ l i g laboratory

STMicroelectronicsLIGUniversity of Grenoble

Programming-Model Centric Debuggingfor Multicore Embedded Systems

Kevin Pouget, UJF-LIG, STMicroelectronicsMiguel Santana, STMicroelectronicsJean-Francois Mehaut, UJF-CEA/LIG

Dema/Nano2017 Project Kickoff, March 12th 2015 (MAD Workshop’14 presentation)

Page 2: Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. · stmicroelectronics, university of grenoble/lig laboratory Introduction Embedded Systems and MPSoC

s tm i croe lectron i c s , un i v er s i ty of grenoble/ l i g laboratory

IntroductionEmbedded Systems and MPSoC

Consumer Electronics Devices• 4K digital televisions• Smartphones• Hand-held music players

• High-resolution multimedia apps• H.265 HEVC• Augmented reality• 3D video games• . . .

⇒ high performance expectations.

Slide 2 — Kevin Pouget — Programming-Model Centric Debugging — Dema/Nano2017 Project Kickoff, March 12th 2015 (MAD Workshop’14 presentation)

Page 3: Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. · stmicroelectronics, university of grenoble/lig laboratory Introduction Embedded Systems and MPSoC

s tm i croe lectron i c s , un i v er s i ty of grenoble/ l i g laboratory

IntroductionEmbedded Systems and MPSoC

Current applications have high performance expectations...

Preliminary Agenda

Wednesday, October 8

9.00 – 9.15Opening (Andreas Herkersdorf, TU München and Rainer Leupers, RWTH Aachen)

9.15 – 9.45[Keynote] Using Execution Traces to Debug Multicore SoCs: An Industrial Experience (Miguel Santana, ST Microelectronics)

9.45 – 10.30Session 1: Challenges and Opportunities of Modern SoC Debug Infrastructure• From Virtual Targets to USB: Upcoming SoC Debugging Approaches

Michael Eick (Lauterbach) and Rolf Kuehnis (Intel)• Multicore Start Execution Synchronization

Razvan Ionescu (Freescale)

10.30 – 11.00Coffee Break

11.00 – 12.30Session 2: What‘s next?• On the Shoulders of Giants – Can we Learn Diagnosis from SoC’s Larger

Siblings?Philipp Wagner (TU Munich)

• Programming-Model Centric Debugging for Multicore Embedded SystemsKevin Pouget (University of Grenoble)

Session 3: SW Development and Debugging for Manycore Systems• KPN-based Image Recognition Software Development for Scalable

Manycore Processor SMYLEvideoYukoh Matsumoto (TOPS Systems)

• SW Debugging for Multi-tile Systems: The EURETILE Methodology and ToolsLuis Murillo (RWTH Aachen)

⇒ important demand for:

• Powerful parallel architectures• MultiProcessor Systems-on-a-Chip (MPSoCs)

• High-level development methodologies• Programming models & environments

• Efficient verification & validation tools• Workshop and our research effort

Slide 2 — Kevin Pouget — Programming-Model Centric Debugging — Dema/Nano2017 Project Kickoff, March 12th 2015 (MAD Workshop’14 presentation)

Page 4: Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. · stmicroelectronics, university of grenoble/lig laboratory Introduction Embedded Systems and MPSoC

s tm i croe lectron i c s , un i v er s i ty of grenoble/ l i g laboratory

Agenda

Slide 2 — Kevin Pouget — Programming-Model Centric Debugging — Dema/Nano2017 Project Kickoff, March 12th 2015 (MAD Workshop’14 presentation)

Page 5: Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. · stmicroelectronics, university of grenoble/lig laboratory Introduction Embedded Systems and MPSoC

s tm i croe lectron i c s , un i v er s i ty of grenoble/ l i g laboratory

Background: MPSoC Programming and DebuggingMPSoC and GPU Systems

MultiProcessor System on-a-Chip

OpenCL: Standard of the Convergence

Multi-core CPU GPUMany-core

MPSoC More programmabilityMore parallelism

Task Parallelism(run-to-completion)

Data Parallelism(with some-synchro)

• Many-core processor for embedded systems

• Heterogeneous computing power

• Low energy-consumption

How to program such complex architectures?

Slide 3 — Kevin Pouget — Programming-Model Centric Debugging — Dema/Nano2017 Project Kickoff, March 12th 2015 (MAD Workshop’14 presentation)

Page 6: Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. · stmicroelectronics, university of grenoble/lig laboratory Introduction Embedded Systems and MPSoC

s tm i croe lectron i c s , un i v er s i ty of grenoble/ l i g laboratory

Background: MPSoC Programming and DebuggingProgramming Models and Supportive Environments

... with programming models!

• Programmability with high-level abstractions• Portability thanks to an hardware-independent interface• Separation of concerns between application / lower levels

→ application written on top of an abstract machine

... implemented by supportive environments:programming frameworks, runtime libraries, APIs

Slide 4 — Kevin Pouget — Programming-Model Centric Debugging — Dema/Nano2017 Project Kickoff, March 12th 2015 (MAD Workshop’14 presentation)

Page 7: Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. · stmicroelectronics, university of grenoble/lig laboratory Introduction Embedded Systems and MPSoC

s tm i croe lectron i c s , un i v er s i ty of grenoble/ l i g laboratory

Background: MPSoC Programming and DebuggingProgramming Models and Supportive Environments

... with programming models!

• Programmability with high-level abstractions• Portability thanks to an hardware-independent interface• Separation of concerns between application / lower levels

→ application written on top of an abstract machine

... implemented by supportive environments:programming frameworks, runtime libraries, APIs

Slide 4 — Kevin Pouget — Programming-Model Centric Debugging — Dema/Nano2017 Project Kickoff, March 12th 2015 (MAD Workshop’14 presentation)

Page 8: Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. · stmicroelectronics, university of grenoble/lig laboratory Introduction Embedded Systems and MPSoC

s tm i croe lectron i c s , un i v er s i ty of grenoble/ l i g laboratory

Background: MPSoC Programming and DebuggingProgramming Models and Supportive Environments

... with programming models!

• Programmability with high-level abstractions• Portability thanks to an hardware-independent interface• Separation of concerns between application / lower levels

→ application written on top of an abstract machine

... implemented by supportive environments:programming frameworks, runtime libraries, APIs

Slide 4 — Kevin Pouget — Programming-Model Centric Debugging — Dema/Nano2017 Project Kickoff, March 12th 2015 (MAD Workshop’14 presentation)

Page 9: Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. · stmicroelectronics, university of grenoble/lig laboratory Introduction Embedded Systems and MPSoC

s tm i croe lectron i c s , un i v er s i ty of grenoble/ l i g laboratory

Background: MPSoC Programming and DebuggingProgramming Models and Supportive Environments

... with programming models!

• Programmability with high-level abstractions• Portability thanks to an hardware-independent interface• Separation of concerns between application / lower levels

→ application written on top of an abstract machine

... implemented by supportive environments:programming frameworks, runtime libraries, APIs

Slide 4 — Kevin Pouget — Programming-Model Centric Debugging — Dema/Nano2017 Project Kickoff, March 12th 2015 (MAD Workshop’14 presentation)

Page 10: Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. · stmicroelectronics, university of grenoble/lig laboratory Introduction Embedded Systems and MPSoC

s tm i croe lectron i c s , un i v er s i ty of grenoble/ l i g laboratory

Background: MPSoC Programming and DebuggingProgramming Models for ST MPSoCs

Components Dataflow

Slide 5 — Kevin Pouget — Programming-Model Centric Debugging — Dema/Nano2017 Project Kickoff, March 12th 2015 (MAD Workshop’14 presentation)

Page 11: Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. · stmicroelectronics, university of grenoble/lig laboratory Introduction Embedded Systems and MPSoC

s tm i croe lectron i c s , un i v er s i ty of grenoble/ l i g laboratory

Background: MPSoC Programming and DebuggingProgramming Models for ST MPSoCs

Components• code/data encapsulation

• lang.-free interfaces

Dataflow

kernel 1

1x1024 cores

actor 1

actor 2

actor 3 actor 4

Interface not connected

«Runnable» interface

Type 2 interface

Type 1 interfacecomponent 2a

component 1 component 3component 2b

kernel 3

1x1024 cores

kernel 2

1024x1024 cores

buffer 1buffer 2a

Slide 5 — Kevin Pouget — Programming-Model Centric Debugging — Dema/Nano2017 Project Kickoff, March 12th 2015 (MAD Workshop’14 presentation)

Page 12: Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. · stmicroelectronics, university of grenoble/lig laboratory Introduction Embedded Systems and MPSoC

s tm i croe lectron i c s , un i v er s i ty of grenoble/ l i g laboratory

Background: MPSoC Programming and DebuggingProgramming Models for ST MPSoCs

Components Dataflow• streams of data

• implicit parallelism

kernel 1

1x1024 cores

actor 1

actor 2

actor 3 actor 4

Interface not connected

«Runnable» interface

Type 2 interface

Type 1 interfacecomponent 2a

component 1 component 3component 2b

kernel 3

1x1024 cores

kernel 2

1024x1024 cores

buffer 1buffer 2a

Slide 5 — Kevin Pouget — Programming-Model Centric Debugging — Dema/Nano2017 Project Kickoff, March 12th 2015 (MAD Workshop’14 presentation)

Page 13: Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. · stmicroelectronics, university of grenoble/lig laboratory Introduction Embedded Systems and MPSoC

s tm i croe lectron i c s , un i v er s i ty of grenoble/ l i g laboratory

Background: MPSoC Programming and DebuggingProgramming Models for ST MPSoCs

Components• code/data encapsulation

• lang.-free interfaces

Dataflow• streams of data

• implicit parallelism

large programming domain coverage...

... but what about Verification & Validationof MPSoC applications?

Slide 5 — Kevin Pouget — Programming-Model Centric Debugging — Dema/Nano2017 Project Kickoff, March 12th 2015 (MAD Workshop’14 presentation)

Page 14: Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. · stmicroelectronics, university of grenoble/lig laboratory Introduction Embedded Systems and MPSoC

s tm i croe lectron i c s , un i v er s i ty of grenoble/ l i g laboratory

Background: MPSoC Programming and DebuggingTools and Techniques, Advantages of Interactive Debugging

LiveDebugging

Post-MortemDebugging

Pre-ExecutionAnalysis

Validate theresultsExecute

Writecode

Interactive Debugging (eg.: GDB)

• Developers mental representation VS. actual execution

• Understand the different steps of the execution

... but nothing related to programming models ...⇒ debuggers cannot access the abstract machine!

Slide 6 — Kevin Pouget — Programming-Model Centric Debugging — Dema/Nano2017 Project Kickoff, March 12th 2015 (MAD Workshop’14 presentation)

Page 15: Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. · stmicroelectronics, university of grenoble/lig laboratory Introduction Embedded Systems and MPSoC

s tm i croe lectron i c s , un i v er s i ty of grenoble/ l i g laboratory

Background: MPSoC Programming and DebuggingTools and Techniques, Advantages of Interactive Debugging

LiveDebugging

Post-MortemDebugging

Pre-ExecutionAnalysis

Validate theresultsExecute

Writecode

Interactive Debugging (eg.: GDB)

• Developers mental representation VS. actual execution

• Understand the different steps of the execution

... but nothing related to programming models ...⇒ debuggers cannot access the abstract machine!

Slide 6 — Kevin Pouget — Programming-Model Centric Debugging — Dema/Nano2017 Project Kickoff, March 12th 2015 (MAD Workshop’14 presentation)

Page 16: Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. · stmicroelectronics, university of grenoble/lig laboratory Introduction Embedded Systems and MPSoC

s tm i croe lectron i c s , un i v er s i ty of grenoble/ l i g laboratory

Background: MPSoC Programming and Debugging

Objective

Provide developers with means tobetter understand the state of the high-level applications

and control more easily their execution,suitable for various models and environments.

Slide 7 — Kevin Pouget — Programming-Model Centric Debugging — Dema/Nano2017 Project Kickoff, March 12th 2015 (MAD Workshop’14 presentation)

Page 17: Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. · stmicroelectronics, university of grenoble/lig laboratory Introduction Embedded Systems and MPSoC

s tm i croe lectron i c s , un i v er s i ty of grenoble/ l i g laboratory

Agenda

Slide 7 — Kevin Pouget — Programming-Model Centric Debugging — Dema/Nano2017 Project Kickoff, March 12th 2015 (MAD Workshop’14 presentation)

Page 18: Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. · stmicroelectronics, university of grenoble/lig laboratory Introduction Embedded Systems and MPSoC

s tm i croe lectron i c s , un i v er s i ty of grenoble/ l i g laboratory

Programming Model Centric Interactive Debugging

Idea: Integrate programming model conceptsin interactive debugging

Slide 8 — Kevin Pouget — Programming-Model Centric Debugging — Dema/Nano2017 Project Kickoff, March 12th 2015 (MAD Workshop’14 presentation)

Page 19: Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. · stmicroelectronics, university of grenoble/lig laboratory Introduction Embedded Systems and MPSoC

s tm i croe lectron i c s , un i v er s i ty of grenoble/ l i g laboratory

Programming Model Centric Interactive Debugging

1 Provide a Structural Representation

• Draw application architecture diagrams

• Represent the relationship between the entities

• Offer catchpoints on architecture-related operations

front_controller imvp

pred_controller

bh

red

pipe ipred

hwcfg

ipf

pushpushpushpushDataflow graph from the case-study

Slide 9 — Kevin Pouget — Programming-Model Centric Debugging — Dema/Nano2017 Project Kickoff, March 12th 2015 (MAD Workshop’14 presentation)

Page 20: Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. · stmicroelectronics, university of grenoble/lig laboratory Introduction Embedded Systems and MPSoC

s tm i croe lectron i c s , un i v er s i ty of grenoble/ l i g laboratory

Programming Model Centric Interactive Debugging

2 Monitor Dynamic Behaviors

• Monitor the collaboration between the tasks

• Detect communication, synchronization events• interpret their pattern and semantics

(one-to-one, one-to-many, global or local barriers)

• Offer communication-aware catchpoint mechanisms

kernel 1

1x1024 cores

actor 1

actor 2

actor 3 actor 4

Interface not connected

«Runnable» interface

Type 2 interface

Type 1 interfacecomponent 2a

component 1 component 3component 2b

kernel 3

1x1024 cores

kernel 2

1024x1024 cores

buffer 1buffer 2a

Catch allmessages

Slide 10 — Kevin Pouget — Programming-Model Centric Debugging — Dema/Nano2017 Project Kickoff, March 12th 2015 (MAD Workshop’14 presentation)

Page 21: Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. · stmicroelectronics, university of grenoble/lig laboratory Introduction Embedded Systems and MPSoC

s tm i croe lectron i c s , un i v er s i ty of grenoble/ l i g laboratory

Programming Model Centric Interactive Debugging

2 Monitor Dynamic Behaviors

• Monitor the collaboration between the tasks

• Detect communication, synchronization events• interpret their pattern and semantics

(one-to-one, one-to-many, global or local barriers)

• Offer communication-aware catchpoint mechanisms

kernel 1

1x1024 cores

actor 1

actor 2

actor 3 actor 4

Interface not connected

«Runnable» interface

Type 2 interface

Type 1 interfacecomponent 2a

component 1 component 3component 2b

kernel 3

1x1024 cores

kernel 2

1024x1024 cores

buffer 1buffer 2a

Catch allmessages

X

Slide 10 — Kevin Pouget — Programming-Model Centric Debugging — Dema/Nano2017 Project Kickoff, March 12th 2015 (MAD Workshop’14 presentation)

Page 22: Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. · stmicroelectronics, university of grenoble/lig laboratory Introduction Embedded Systems and MPSoC

s tm i croe lectron i c s , un i v er s i ty of grenoble/ l i g laboratory

Programming Model Centric Interactive Debugging

2 Monitor Dynamic Behaviors

• Monitor the collaboration between the tasks

• Detect communication, synchronization events• interpret their pattern and semantics

(one-to-one, one-to-many, global or local barriers)

• Offer communication-aware catchpoint mechanisms

kernel 1

1x1024 cores

actor 1

actor 2

actor 3 actor 4

Interface not connected

«Runnable» interface

Type 2 interface

Type 1 interfacecomponent 2a

component 1 component 3component 2b

kernel 3

1x1024 cores

kernel 2

1024x1024 cores

buffer 1buffer 2a

Catch allmessages

X

Slide 10 — Kevin Pouget — Programming-Model Centric Debugging — Dema/Nano2017 Project Kickoff, March 12th 2015 (MAD Workshop’14 presentation)

Page 23: Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. · stmicroelectronics, university of grenoble/lig laboratory Introduction Embedded Systems and MPSoC

s tm i croe lectron i c s , un i v er s i ty of grenoble/ l i g laboratory

Programming Model Centric Interactive Debugging

2 Monitor Dynamic Behaviors

• Monitor the collaboration between the tasks

• Detect communication, synchronization events• interpret their pattern and semantics

(one-to-one, one-to-many, global or local barriers)

• Offer communication-aware catchpoint mechanisms

kernel 1

1x1024 cores

actor 1

actor 2

actor 3 actor 4

Interface not connected

«Runnable» interface

Type 2 interface

Type 1 interfacecomponent 2a

component 1 component 3component 2b

kernel 3

1x1024 cores

kernel 2

1024x1024 cores

buffer 1buffer 2a

Catch allmessages

break

Slide 10 — Kevin Pouget — Programming-Model Centric Debugging — Dema/Nano2017 Project Kickoff, March 12th 2015 (MAD Workshop’14 presentation)

Page 24: Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. · stmicroelectronics, university of grenoble/lig laboratory Introduction Embedded Systems and MPSoC

s tm i croe lectron i c s , un i v er s i ty of grenoble/ l i g laboratory

Programming Model Centric Interactive Debugging

2 Monitor Dynamic Behaviors

• Monitor the collaboration between the tasks

• Detect communication, synchronization events• interpret their pattern and semantics

(one-to-one, one-to-many, global or local barriers)

• Offer communication-aware catchpoint mechanisms

kernel 1

1x1024 cores

actor 1

actor 2

actor 3 actor 4

Interface not connected

«Runnable» interface

Type 2 interface

Type 1 interfacecomponent 2a

component 1 component 3component 2b

kernel 3

1x1024 cores

kernel 2

1024x1024 cores

buffer 1buffer 2a

Catch allmessages

X

Slide 10 — Kevin Pouget — Programming-Model Centric Debugging — Dema/Nano2017 Project Kickoff, March 12th 2015 (MAD Workshop’14 presentation)

Page 25: Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. · stmicroelectronics, university of grenoble/lig laboratory Introduction Embedded Systems and MPSoC

s tm i croe lectron i c s , un i v er s i ty of grenoble/ l i g laboratory

Programming Model Centric Interactive Debugging

2 Monitor Dynamic Behaviors

• Monitor the collaboration between the tasks

• Detect communication, synchronization events• interpret their pattern and semantics

(one-to-one, one-to-many, global or local barriers)

• Offer communication-aware catchpoint mechanisms

kernel 1

1x1024 cores

actor 1

actor 2

actor 3 actor 4

Interface not connected

«Runnable» interface

Type 2 interface

Type 1 interfacecomponent 2a

component 1 component 3component 2b

kernel 3

1x1024 cores

kernel 2

1024x1024 cores

buffer 1buffer 2a

Catch allmessages

X

break

Slide 10 — Kevin Pouget — Programming-Model Centric Debugging — Dema/Nano2017 Project Kickoff, March 12th 2015 (MAD Workshop’14 presentation)

Page 26: Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. · stmicroelectronics, university of grenoble/lig laboratory Introduction Embedded Systems and MPSoC

s tm i croe lectron i c s , un i v er s i ty of grenoble/ l i g laboratory

Programming Model Centric Interactive Debugging

3 Interact with the Abstract Machine• Recognize the different entities of the model

• Provide details about their state, schedulability, callstack, ...

• Provide support to understand how they reached their current state

Slide 11 — Kevin Pouget — Programming-Model Centric Debugging — Dema/Nano2017 Project Kickoff, March 12th 2015 (MAD Workshop’14 presentation)

Page 27: Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. · stmicroelectronics, university of grenoble/lig laboratory Introduction Embedded Systems and MPSoC

s tm i croe lectron i c s , un i v er s i ty of grenoble/ l i g laboratory

Programming Model Centric Interactive Debugging

3 Interact with the Abstract Machine• Recognize the different entities of the model

• Provide details about their state, schedulability, callstack, ...

• Provide support to understand how they reached their current state

Slide 11 — Kevin Pouget — Programming-Model Centric Debugging — Dema/Nano2017 Project Kickoff, March 12th 2015 (MAD Workshop’14 presentation)

Page 28: Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. · stmicroelectronics, university of grenoble/lig laboratory Introduction Embedded Systems and MPSoC

s tm i croe lectron i c s , un i v er s i ty of grenoble/ l i g laboratory

Programming Model Centric Interactive Debugging

3 Interact with the Abstract Machine• Support interactions with real machine

• memory inspection• breakpoints• step-by-step

Slide 12 — Kevin Pouget — Programming-Model Centric Debugging — Dema/Nano2017 Project Kickoff, March 12th 2015 (MAD Workshop’14 presentation)

Page 29: Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. · stmicroelectronics, university of grenoble/lig laboratory Introduction Embedded Systems and MPSoC

s tm i croe lectron i c s , un i v er s i ty of grenoble/ l i g laboratory

Agenda

Slide 12 — Kevin Pouget — Programming-Model Centric Debugging — Dema/Nano2017 Project Kickoff, March 12th 2015 (MAD Workshop’14 presentation)

Page 30: Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. · stmicroelectronics, university of grenoble/lig laboratory Introduction Embedded Systems and MPSoC

s tm i croe lectron i c s , un i v er s i ty of grenoble/ l i g laboratory

Model-Centric Debugger Case-StudyProof-of-concept Environment

The Gnu Debugger

• Adapted to low level/C debugging

• Large user community

• Extendable with Python API

STHORM Progr. Environments

• Dataflow (PEDF)

• Components (NPM)

• Kernels (OpenCL)

STHORM / Platform 2012

ST/CEA MPSoC research platform

• x86 platform simulators

Slide 13 — Kevin Pouget — Programming-Model Centric Debugging — Dema/Nano2017 Project Kickoff, March 12th 2015 (MAD Workshop’14 presentation)

Page 31: Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. · stmicroelectronics, university of grenoble/lig laboratory Introduction Embedded Systems and MPSoC

s tm i croe lectron i c s , un i v er s i ty of grenoble/ l i g laboratory

Model-Centric Debugger Case-StudyInterpreting Execution Events

⇒ Detect and interpret the exec. events of the runtime framework

Slide 14 — Kevin Pouget — Programming-Model Centric Debugging — Dema/Nano2017 Project Kickoff, March 12th 2015 (MAD Workshop’14 presentation)

Page 32: Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. · stmicroelectronics, university of grenoble/lig laboratory Introduction Embedded Systems and MPSoC

s tm i croe lectron i c s , un i v er s i ty of grenoble/ l i g laboratory

Model-Centric Debugger Case-StudyInterpreting Execution Events

⇒ Detect and interpret the exec. events of the runtime framework

Slide 14 — Kevin Pouget — Programming-Model Centric Debugging — Dema/Nano2017 Project Kickoff, March 12th 2015 (MAD Workshop’14 presentation)

Page 33: Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. · stmicroelectronics, university of grenoble/lig laboratory Introduction Embedded Systems and MPSoC

s tm i croe lectron i c s , un i v er s i ty of grenoble/ l i g laboratory

Model-Centric Debugger Case-StudyInterpreting Execution Events

⇒ Detect and interpret the exec. events of the runtime framework

Slide 14 — Kevin Pouget — Programming-Model Centric Debugging — Dema/Nano2017 Project Kickoff, March 12th 2015 (MAD Workshop’14 presentation)

Page 34: Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. · stmicroelectronics, university of grenoble/lig laboratory Introduction Embedded Systems and MPSoC

s tm i croe lectron i c s , un i v er s i ty of grenoble/ l i g laboratory

Model-Centric Debugger Case-StudyInterpreting Execution Events

⇒ Detect and interpret the exec. events of the runtime framework

Slide 14 — Kevin Pouget — Programming-Model Centric Debugging — Dema/Nano2017 Project Kickoff, March 12th 2015 (MAD Workshop’14 presentation)

Page 35: Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. · stmicroelectronics, university of grenoble/lig laboratory Introduction Embedded Systems and MPSoC

s tm i croe lectron i c s , un i v er s i ty of grenoble/ l i g laboratory

Model-Centric Debugger Case-StudyInterpreting Execution Events

⇒ Detect and interpret the exec. events of the runtime framework

Slide 14 — Kevin Pouget — Programming-Model Centric Debugging — Dema/Nano2017 Project Kickoff, March 12th 2015 (MAD Workshop’14 presentation)

Page 36: Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. · stmicroelectronics, university of grenoble/lig laboratory Introduction Embedded Systems and MPSoC

s tm i croe lectron i c s , un i v er s i ty of grenoble/ l i g laboratory

Model-Centric Debugger Case-StudyInterpreting Execution Events

⇒ Detect and interpret the exec. events of the runtime framework

Slide 14 — Kevin Pouget — Programming-Model Centric Debugging — Dema/Nano2017 Project Kickoff, March 12th 2015 (MAD Workshop’14 presentation)

Page 37: Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. · stmicroelectronics, university of grenoble/lig laboratory Introduction Embedded Systems and MPSoC

s tm i croe lectron i c s , un i v er s i ty of grenoble/ l i g laboratory

Model-Centric Debugger Case-StudyInterpreting Execution Events

⇒ Detect and interpret the exec. events of the runtime framework

Slide 14 — Kevin Pouget — Programming-Model Centric Debugging — Dema/Nano2017 Project Kickoff, March 12th 2015 (MAD Workshop’14 presentation)

Page 38: Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. · stmicroelectronics, university of grenoble/lig laboratory Introduction Embedded Systems and MPSoC

s tm i croe lectron i c s , un i v er s i ty of grenoble/ l i g laboratory

Model-Centric Debugger Case-StudyInterpreting Execution Events

⇒ Detect and interpret the exec. events of the runtime framework

Slide 14 — Kevin Pouget — Programming-Model Centric Debugging — Dema/Nano2017 Project Kickoff, March 12th 2015 (MAD Workshop’14 presentation)

Page 39: Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. · stmicroelectronics, university of grenoble/lig laboratory Introduction Embedded Systems and MPSoC

s tm i croe lectron i c s , un i v er s i ty of grenoble/ l i g laboratory

Model-Centric Debugger Case-StudyInterpreting Execution Events

⇒ Detect and interpret the exec. events of the runtime framework

Slide 14 — Kevin Pouget — Programming-Model Centric Debugging — Dema/Nano2017 Project Kickoff, March 12th 2015 (MAD Workshop’14 presentation)

Page 40: Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. · stmicroelectronics, university of grenoble/lig laboratory Introduction Embedded Systems and MPSoC

s tm i croe lectron i c s , un i v er s i ty of grenoble/ l i g laboratory

Model-Centric Debugger Case-StudyInterpreting Execution Events

⇒ Detect and interpret the exec. events of the runtime framework

Slide 14 — Kevin Pouget — Programming-Model Centric Debugging — Dema/Nano2017 Project Kickoff, March 12th 2015 (MAD Workshop’14 presentation)

Page 41: Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. · stmicroelectronics, university of grenoble/lig laboratory Introduction Embedded Systems and MPSoC

s tm i croe lectron i c s , un i v er s i ty of grenoble/ l i g laboratory

Model-Centric Debugger Case-StudyInterpreting Execution Events

⇒ Detect and interpret the exec. events of the runtime framework

Slide 14 — Kevin Pouget — Programming-Model Centric Debugging — Dema/Nano2017 Project Kickoff, March 12th 2015 (MAD Workshop’14 presentation)

Page 42: Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. · stmicroelectronics, university of grenoble/lig laboratory Introduction Embedded Systems and MPSoC

s tm i croe lectron i c s , un i v er s i ty of grenoble/ l i g laboratory

Model-Centric Debugger Case-StudyDataflow Video Decoder

log

ob

yb

ullb

oyke

nn

els

Slide 15 — Kevin Pouget — Programming-Model Centric Debugging — Dema/Nano2017 Project Kickoff, March 12th 2015 (MAD Workshop’14 presentation)

Page 43: Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. · stmicroelectronics, university of grenoble/lig laboratory Introduction Embedded Systems and MPSoC

s tm i croe lectron i c s , un i v er s i ty of grenoble/ l i g laboratory

Model-Centric Debugger Case-Study: Dataflow Video Decoder

The application is frozen, how can GDB help us?hint: not much!

pred_controller

ipred

hwcfg pipe

ipf

(static graph provided by the compiler)

Slide 16 — Kevin Pouget — Programming-Model Centric Debugging — Dema/Nano2017 Project Kickoff, March 12th 2015 (MAD Workshop’14 presentation)

Page 44: Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. · stmicroelectronics, university of grenoble/lig laboratory Introduction Embedded Systems and MPSoC

s tm i croe lectron i c s , un i v er s i ty of grenoble/ l i g laboratory

Model-Centric Debugger Case-Study: Dataflow Video Decoder

The application is frozen, how can GDB help us?

pred_controller

ipred

hwcfg pipe

ipf

(gdb) info threads

Id Target Id Frame

1 Thread 0xf7e77b 0xf7ffd430 in __kernel_vsyscall ()

* 2 Thread 0xf7e797 operator= (val=..., this=0xa0a1330)

Slide 16 — Kevin Pouget — Programming-Model Centric Debugging — Dema/Nano2017 Project Kickoff, March 12th 2015 (MAD Workshop’14 presentation)

Page 45: Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. · stmicroelectronics, university of grenoble/lig laboratory Introduction Embedded Systems and MPSoC

s tm i croe lectron i c s , un i v er s i ty of grenoble/ l i g laboratory

Model-Centric Debugger Case-Study: Dataflow Video Decoder

The application is frozen, how can GDB help us?

pred_controller

ipred

hwcfg pipe

ipf

(gdb) thread apply all where

Thread 1 (Thread 0xf7e77b):

#0 0xf7ffd430 in __kernel_vsyscall ()

#1 0xf7fcd18c in pthread_cond_wait@ ()

#2 0x0809748f in wait_for_step_completion(struct... *)

#3 0x0809596e in pred_controller_work_function()

#4 0x08095cbc in entry(int, char**) ()

#5 0x0809740a in host_launcher_entry_point ()Slide 16 — Kevin Pouget — Programming-Model Centric Debugging — Dema/Nano2017 Project Kickoff, March 12th 2015 (MAD Workshop’14 presentation)

Page 46: Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. · stmicroelectronics, university of grenoble/lig laboratory Introduction Embedded Systems and MPSoC

s tm i croe lectron i c s , un i v er s i ty of grenoble/ l i g laboratory

Model-Centric Debugger Case-Study: Dataflow Video Decoder

The application is frozen, how can GDB help us?

pred_controller

ipred

hwcfg pipe

ipfX

(gdb) thread apply all where

Thread 2 (Thread 0xf7e797):

#0 operator= (val=..., this=0xa0a1330)

#1 pipeRead (data=0) at pipeFilter.c:154 ↙154 Smb = pedf.io.hwcfgSmb[count];

#2 0x0804da63 in PipeFilter_work_function () at pipe.c:361

#3 0x080a4132 in PedfBaseFilter::controller (this=0xa0d18)

#4 0x080c12f0 in sc_core::sc_thread_cor_fn (arg=0xa0a3598)Slide 16 — Kevin Pouget — Programming-Model Centric Debugging — Dema/Nano2017 Project Kickoff, March 12th 2015 (MAD Workshop’14 presentation)

Page 47: Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. · stmicroelectronics, university of grenoble/lig laboratory Introduction Embedded Systems and MPSoC

s tm i croe lectron i c s , un i v er s i ty of grenoble/ l i g laboratory

Model-Centric Debugger Case-Study: Dataflow Video Decoder

The application is frozen, how can mcGDB help us?

(mcgdb) info graph

pred_controller

ipred

hwcfgz

pipe

ipf

Slide 16 — Kevin Pouget — Programming-Model Centric Debugging — Dema/Nano2017 Project Kickoff, March 12th 2015 (MAD Workshop’14 presentation)

Page 48: Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. · stmicroelectronics, university of grenoble/lig laboratory Introduction Embedded Systems and MPSoC

s tm i croe lectron i c s , un i v er s i ty of grenoble/ l i g laboratory

Model-Centric Debugger Case-Study: Dataflow Video Decoder

The application is frozen, how can mcGDB help us?

(mcgdb) info graph

pred_controller

ipred

hwcfgz

pipe

ipf

(mcgdb) info actors +state

#0 Controller ‘pred_controller’:

Blocked, waiting for step completion

#1/2/3 Actor ‘pipe/ipref/ipf’:

Blocked, reading from #4 ‘hwcfg’

#4 Actor ‘hwcfg’:

Asleep, Step completed

Slide 16 — Kevin Pouget — Programming-Model Centric Debugging — Dema/Nano2017 Project Kickoff, March 12th 2015 (MAD Workshop’14 presentation)

Page 49: Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. · stmicroelectronics, university of grenoble/lig laboratory Introduction Embedded Systems and MPSoC

s tm i croe lectron i c s , un i v er s i ty of grenoble/ l i g laboratory

Agenda

Slide 16 — Kevin Pouget — Programming-Model Centric Debugging — Dema/Nano2017 Project Kickoff, March 12th 2015 (MAD Workshop’14 presentation)

Page 50: Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. · stmicroelectronics, university of grenoble/lig laboratory Introduction Embedded Systems and MPSoC

s tm i croe lectron i c s , un i v er s i ty of grenoble/ l i g laboratory

Part II, Current and Future Work on DEMA Project

Axis 2: Interactive Performance Debugging/Profiling Ideas

• Setting conditions on when to start/stop the profiling,

• Section profiling, depending on application programming model,

• Interactive configuration of section parameters,

• . . .

Slide 17 — Kevin Pouget — Programming-Model Centric Debugging — Dema/Nano2017 Project Kickoff, March 12th 2015 (MAD Workshop’14 presentation)

Page 51: Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. · stmicroelectronics, university of grenoble/lig laboratory Introduction Embedded Systems and MPSoC

s tm i croe lectron i c s , un i v er s i ty of grenoble/ l i g laboratory

Part II, Current and Future Work on DEMA Project

Axis 1: Model-Centric Interactive Debugging

• Programming Interface for mcGDB Extention

• (Low-level Data Tracing)

• OpenMP Model-Centric Debugging

Slide 18 — Kevin Pouget — Programming-Model Centric Debugging — Dema/Nano2017 Project Kickoff, March 12th 2015 (MAD Workshop’14 presentation)

Page 52: Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. · stmicroelectronics, university of grenoble/lig laboratory Introduction Embedded Systems and MPSoC

s tm i croe lectron i c s , un i v er s i ty of grenoble/ l i g laboratory

Part II, Current and Future Work on DEMA ProjectAxis 1: Model-Centric Interactive Debugging

Programming Interface for mcGDB Extention Mostly done

• Code refactoring

• Code documentation

• Methodology for extending mcGDB

Slide 19 — Kevin Pouget — Programming-Model Centric Debugging — Dema/Nano2017 Project Kickoff, March 12th 2015 (MAD Workshop’14 presentation)

Page 53: Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. · stmicroelectronics, university of grenoble/lig laboratory Introduction Embedded Systems and MPSoC

s tm i croe lectron i c s , un i v er s i ty of grenoble/ l i g laboratory

Part II, Current and Future Work on DEMA ProjectAxis 1: Model-Centric Interactive Debugging

Programming Interface for mcGDB Extention Mostly done

• Code refactoring

• Code documentation

• Methodology for extending mcGDB

• Top modules relying on lower levels

• Capture, Representation andInteraction sub-modules

• Guidelines/examples for futuremodules

Slide 19 — Kevin Pouget — Programming-Model Centric Debugging — Dema/Nano2017 Project Kickoff, March 12th 2015 (MAD Workshop’14 presentation)

Page 54: Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. · stmicroelectronics, university of grenoble/lig laboratory Introduction Embedded Systems and MPSoC

s tm i croe lectron i c s , un i v er s i ty of grenoble/ l i g laboratory

Part II, Current and Future Work on DEMA ProjectAxis 1: Model-Centric Interactive Debugging

Programming Interface for mcGDB Extention Mostly done

• Code refactoring

• Code documentation

• Methodology for extending mcGDB

• Rule of thumb for estimating theporting-effort difficulty:

• Proportional to the difficulty ofporting an application frommodel A to model B!

• Cuda → OpenCL: limited, allbut Capture in common

• OCL → OpenMP, MPI: harder,fewer modules can be shared

Slide 19 — Kevin Pouget — Programming-Model Centric Debugging — Dema/Nano2017 Project Kickoff, March 12th 2015 (MAD Workshop’14 presentation)

Page 55: Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. · stmicroelectronics, university of grenoble/lig laboratory Introduction Embedded Systems and MPSoC

s tm i croe lectron i c s , un i v er s i ty of grenoble/ l i g laboratory

Part II, Current and Future Work on DEMA ProjectAxis 1: Model-Centric Interactive Debugging

Programming Interface for mcGDB Extention Mostly done

• Code refactoring

• Code documentation

• Methodology for extending mcGDB

• Python Sphinx (Javadoc-like): commented source-code + website

Slide 19 — Kevin Pouget — Programming-Model Centric Debugging — Dema/Nano2017 Project Kickoff, March 12th 2015 (MAD Workshop’14 presentation)

Page 56: Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. · stmicroelectronics, university of grenoble/lig laboratory Introduction Embedded Systems and MPSoC

s tm i croe lectron i c s , un i v er s i ty of grenoble/ l i g laboratory

Part II, Current and Future Work on DEMA ProjectAxis 1: Model-Centric Interactive Debugging

Programming Interface for mcGDB Extention Mostly done

• Code refactoring

• Code documentation

• Methodology for extending mcGDB

Step-by-step development example of asimple model-centric debugging support

for a simple task-based programming model

Slide 19 — Kevin Pouget — Programming-Model Centric Debugging — Dema/Nano2017 Project Kickoff, March 12th 2015 (MAD Workshop’14 presentation)

Page 57: Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. · stmicroelectronics, university of grenoble/lig laboratory Introduction Embedded Systems and MPSoC

s tm i croe lectron i c s , un i v er s i ty of grenoble/ l i g laboratory

Part II, Current and Future Work on DEMA ProjectAxis 1: Model-Centric Interactive Debugging

Low-level data tracing Done

• Paje trace format (easy to change)

• To be fed to independ. post-mortem visualization/processing tools

• Also for mcGDB internal debugging

0 Th_1 GOMP_parallel_start

<in> num_threads=>0|job=>ParallelJob_@1|fn=>0x400a7d_<main._omp_fn.0>

4 Th_3 GOMP_parallel_function =>

<in>|job=>ParallelJob_@1|fct_name=><main._omp_fn.0>

8 Th_3 GOMP_single_start =>

<in>/<out>|single=>SingleJob_@1|ret=>1

11 Th_1 GOMP_single_start => <in>/<out>|single=>SingleJob_@1|ret=>0

13 Th_3 GOMP_barrier => <in>|barrier=>Barrier_@1

14 Th_1 GOMP_single_start => <out>|single=>SingleJob_@1|ret=>0

15 Th_4 GOMP_barrier => <in>|barrier=>Barrier_@1

16 Th_2 GOMP_single_start => <in>

17 Th_1 GOMP_barrier => <in>|barrier=>Barrier_@1

18 Th_2 GOMP_single_start => <out>|single=>SingleJob_@1|ret=>0

19 Th_2 GOMP_barrier => <in>|barrier=>Barrier_@1

20 Th_3 GOMP_barrier => <out>|barrier=>Barrier_@1

Slide 20 — Kevin Pouget — Programming-Model Centric Debugging — Dema/Nano2017 Project Kickoff, March 12th 2015 (MAD Workshop’14 presentation)

Page 58: Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. · stmicroelectronics, university of grenoble/lig laboratory Introduction Embedded Systems and MPSoC

s tm i croe lectron i c s , un i v er s i ty of grenoble/ l i g laboratory

Part II, Current and Future Work on DEMA ProjectAxis 1: Model-Centric Interactive Debugging

OpenMP Model-Centric Debugging Work in Progress

• Taking OpenMP 3.0 constructs into account

#pragma omp parallel

{

int id = omp_get_thread_num() + 1;

#pragma omp single

{ ... }

#pragma omp critical

{ ... }

}

Slide 21 — Kevin Pouget — Programming-Model Centric Debugging — Dema/Nano2017 Project Kickoff, March 12th 2015 (MAD Workshop’14 presentation)

Page 59: Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. · stmicroelectronics, university of grenoble/lig laboratory Introduction Embedded Systems and MPSoC

s tm i croe lectron i c s , un i v er s i ty of grenoble/ l i g laboratory

Part II, Current and Future Work on DEMA ProjectAxis 1: Model-Centric Interactive Debugging

OpenMP Model-Centric Debugging Work in Progress

• Taking OpenMP 3.0 constructs into account

#pragma omp parallel

{

int id = omp_get_thread_num() + 1;

#pragma omp single

{ ... }

#pragma omp critical

{ ... }

}

Slide 21 — Kevin Pouget — Programming-Model Centric Debugging — Dema/Nano2017 Project Kickoff, March 12th 2015 (MAD Workshop’14 presentation)

Page 60: Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. · stmicroelectronics, university of grenoble/lig laboratory Introduction Embedded Systems and MPSoC

s tm i croe lectron i c s , un i v er s i ty of grenoble/ l i g laboratory

Part II, Current and Future Work on DEMA ProjectAxis 1: Model-Centric Interactive Debugging

OpenMP Model-Centric Debugging Work in Progress

• Taking OpenMP 3.0 constructs into account• distinction of OpenMP parallel zones, parallelism level, etc

• sequence-diagram-like visualization of OpenMP execution

• better execution control and data query commands• opm next <zone>; opm step in/out; ...

• opm print --all <var>

• Focus on OPM 4 task-based parallelism Future work

• dependencies, task graph, ...

#pragma opm task shared (x, ...) depend(out: x)

preprocess_some_data(...);

#pragma opm task shared (x, ...) depend(in: x)

do_something_with_data(...);

#pragma opm task shared (x, ...) depend(in: x)

do_something_independent_with_data(...);

Slide 22 — Kevin Pouget — Programming-Model Centric Debugging — Dema/Nano2017 Project Kickoff, March 12th 2015 (MAD Workshop’14 presentation)

Page 61: Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. · stmicroelectronics, university of grenoble/lig laboratory Introduction Embedded Systems and MPSoC

s tm i croe lectron i c s , un i v er s i ty of grenoble/ l i g laboratory

Part II, Current and Future Work on DEMA ProjectAxis 1: Model-Centric Interactive Debugging

OpenMP Model-Centric Debugging Work in Progress

• Taking OpenMP 3.0 constructs into account• distinction of OpenMP parallel zones, parallelism level, etc

• sequence-diagram-like visualization of OpenMP execution

• better execution control and data query commands• opm next <zone>; opm step in/out; ...

• opm print --all <var>

• Focus on OPM 4 task-based parallelism Future work

• dependencies, task graph, ...

#pragma opm task shared (x, ...) depend(out: x)

preprocess_some_data(...);

#pragma opm task shared (x, ...) depend(in: x)

do_something_with_data(...);

#pragma opm task shared (x, ...) depend(in: x)

do_something_independent_with_data(...);

Slide 22 — Kevin Pouget — Programming-Model Centric Debugging — Dema/Nano2017 Project Kickoff, March 12th 2015 (MAD Workshop’14 presentation)

Page 62: Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. · stmicroelectronics, university of grenoble/lig laboratory Introduction Embedded Systems and MPSoC

s tm i croe lectron i c s , un i v er s i ty of grenoble/ l i g laboratory

Part II, Current and Future Work on DEMA ProjectAxis 1: Model-Centric Interactive Debugging

OpenMP Model-Centric Debugging Work in Progress

• Taking OpenMP 3.0 constructs into account• distinction of OpenMP parallel zones, parallelism level, etc

• sequence-diagram-like visualization of OpenMP execution

• better execution control and data query commands• opm next <zone>; opm step in/out; ...

• opm print --all <var>

• Focus on OPM 4 task-based parallelism Future work

• dependencies, task graph, ...

#pragma opm task shared (x, ...) depend(out: x)

preprocess_some_data(...);

#pragma opm task shared (x, ...) depend(in: x)

do_something_with_data(...);

#pragma opm task shared (x, ...) depend(in: x)

do_something_independent_with_data(...);

Slide 22 — Kevin Pouget — Programming-Model Centric Debugging — Dema/Nano2017 Project Kickoff, March 12th 2015 (MAD Workshop’14 presentation)

Page 63: Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. · stmicroelectronics, university of grenoble/lig laboratory Introduction Embedded Systems and MPSoC

s tm i croe lectron i c s , un i v er s i ty of grenoble/ l i g laboratory

Part II, Current and Future Work on DEMA ProjectAxis 1: Model-Centric Interactive Debugging

OpenMP Model-Centric Debugging Work in Progress

• Taking OpenMP 3.0 constructs into account• distinction of OpenMP parallel zones, parallelism level, etc

• sequence-diagram-like visualization of OpenMP execution

• better execution control and data query commands• opm next <zone>; opm step in/out; ...

• opm print --all <var>

• Focus on OPM 4 task-based parallelism Future work

• dependencies, task graph, ...

#pragma opm task shared (x, ...) depend(out: x)

preprocess_some_data(...);

#pragma opm task shared (x, ...) depend(in: x)

do_something_with_data(...);

#pragma opm task shared (x, ...) depend(in: x)

do_something_independent_with_data(...);

Slide 22 — Kevin Pouget — Programming-Model Centric Debugging — Dema/Nano2017 Project Kickoff, March 12th 2015 (MAD Workshop’14 presentation)

Page 64: Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. · stmicroelectronics, university of grenoble/lig laboratory Introduction Embedded Systems and MPSoC

s tm i croe lectron i c s , un i v er s i ty of grenoble/ l i g laboratory

Part II, Current and Future Work on DEMA ProjectAxis 1: Model-Centric Interactive Debugging

OpenMP Model-Centric Debugging Work in Progress

• Taking OpenMP 3.0 constructs into account• distinction of OpenMP parallel zones, parallelism level, etc

• sequence-diagram-like visualization of OpenMP execution

• better execution control and data query commands• opm next <zone>; opm step in/out; ...

• opm print --all <var>

• Focus on OPM 4 task-based parallelism Future work

• dependencies, task graph, ...

#pragma opm task shared (x, ...) depend(out: x)

preprocess_some_data(...);

#pragma opm task shared (x, ...) depend(in: x)

do_something_with_data(...);

#pragma opm task shared (x, ...) depend(in: x)

do_something_independent_with_data(...);Slide 22 — Kevin Pouget — Programming-Model Centric Debugging — Dema/Nano2017 Project Kickoff, March 12th 2015 (MAD Workshop’14 presentation)

Page 65: Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. · stmicroelectronics, university of grenoble/lig laboratory Introduction Embedded Systems and MPSoC

s tm i croe lectron i c s , un i v er s i ty of grenoble/ l i g laboratory

Publications

Kevin Pouget.Programming-Model Centric Debugging for Multicore Embedded Systems. PhD thesis,Universite de Grenoble, Ecole Doctorale MSTII, feb 2014.

Kevin Pouget, Marc Perache, Patrick Carribault, and Herve Jourdren.User level DB: a debugging API for user-level thread libraries. In Parallel DistributedProcessing, Workshops and Phd Forum (IPDPSW), 2010 IEEE InternationalSymposium on, pages 1–7, 2010.

Kevin Pouget, Miguel Santana, Vania Marangozova-Martin, and Jean-Francois Mehaut.Debugging Component-Based Embedded Applications. In Joint Workshop Map2MPSoC(Mapping of Applications to MPSoCs) and SCOPES (Software and Compilers forEmbedded Systems), St Goar, Germany, may 2012. Published in the ACM library.

Kevin Pouget, Patricia Lopez Cueva, Miguel Santana, and Jean-Francois Mehaut.Interactive Debugging of Dynamic Dataflow Embedded Applications. In Proceedings ofthe 18th International Workshop on High-Level Parallel Programming Models andSupportive Environments (HIPS), Boston, Massachusetts, USA, may 2013. Held inconjunction of IPDPS.

Kevin Pouget, Patricia Lopez Cueva, Miguel Santana, and Jean-Francois Mehaut.A novel approach for interactive debugging of dynamic dataflow embedded applications.In Proceedings of the 28th Symposium On Applied Computing (SAC), pages1547–1549, Coimbra, Portugal, apr 2013.

Slide 23 — Kevin Pouget — Programming-Model Centric Debugging — Dema/Nano2017 Project Kickoff, March 12th 2015 (MAD Workshop’14 presentation)

Page 66: Programming-Model Centric Debugging for Multicore Embedded … · 2020. 4. 28. · stmicroelectronics, university of grenoble/lig laboratory Introduction Embedded Systems and MPSoC

s tm i croe lectron i c s , un i v er s i ty of grenoble/ l i g laboratory

STMicroelectronicsLIGUniversity of Grenoble

Programming-Model Centric Debuggingfor Multicore Embedded Systems

Kevin Pouget, UJF-LIG, STMicroelectronicsMiguel Santana, STMicroelectronicsJean-Francois Mehaut, UJF-CEA/LIG

Dema/Nano2017 Project Kickoff, March 12th 2015 (MAD Workshop’14 presentation)