(gdb) break *0x972

Debugging, GNU± Linux and WebHosting and ... and ...

Presentation at MAD'14

Monday, October 13, 2014 - No comments



Last week I presented my thesis work at the 2nd workshop on Multicore Application Debugging (MAD)

In this presentation, we introduce our novel approch to improve interactive debugging of multicore and embedded systems. Relying on programming-model and runtime-environment structures, model-centric debugging aims at providing high-level representation, inspection and control mechanisms, tailored to the abstraction level used to develop modern applications.

We present the model-independent requirements that drove the design of our prototype tool, mcGDB, and discuss the important aspects of the development of the implementation. Finally, in the context of an industrial MPSoC platform, we present a programming model for dynamic dataflow computing and illustrate how we applied the concepts of model-centric debugging to its runtime environment. We also describe the usage of our tool through the debugging session of a h264 video decoder.





* Debugging model-based software ⇒ that's for me :-)

* Presentation (15')
* Call for Paper

Publié dans :  

About me

Thursday, September 18, 2014 - 7 comments

I'm Kevin Pouget, from Grenoble area, France. I received my PhD in Computer Science last February (2014) after defending my thesis on ''Programming-Model Centric Interactive Debugging for Multicore Embedded Systems'', in partnership with STMicroelectronics Crolles.

Now I'm post-doc/engineer at University Joseph Fourier, still on the Nanosim/CORSE, continuing my PhD work as part of the Nano2017 national research project (although debugging and embedded system has (nothing) to do with nano technologies!).

My research (and personal) interests deal with:

  • interactive debuggers (implementation, enhancement, usage, ...), in particular GDB,
  • live debugging and tracing tools in general (strace, ltrace, valgrind, pdb, ...)

  • design and implementation of runtime libraries (for GPU computing, multithreading, message passing, ...)

  • operating systems (Linux kernel) and programming language (C/asm, Python, ...) support for all of the above

I am also a free software enthusiast (i.e. avid user in my computing environment, promoter if it comes to the discussion, contributor if I need to add missing features to the tool I use) and maybe a software hacker (in ESR's sense): I love understanding how things (*nix tools, Linux, Python) are implemented, how they're supposed to be used, and how you can utilize them to do something completely different.

When I've got a bit of free time on a computer, I also do some Java/Web development (WebAlbums project) for managing my photo collection, and work on my online weather station report, although I can frankly say that I have PHP and Javascript programming languages! I also work on my VPS Linux server, the one hosting this very blog, where I learn about Apache administration and different web services. I also like playing/trying with multiple *nix/Linux distribution: Fedora on my work laptop, Archlinux on my desktop, Debian on the VPS, Raspbian on my rasberry and Mint on my wife's laptop!

And when I manage to let my computers alone, I like going into the surrounding mountains for a walk, a hike or a ski tour, almost never without a camera. I also train weekly in Judo and scuba diving (level 2* diver), and I love white water paddling in kayak, but barely have time for that any more.

just myself

Publié dans :

PhD Thesis defended :-)

Monday, February 03, 2014 - No comments

Today, my PhD thesis was accepted ! I'm now Doctor of the University of Grenoble, es Informatique !

PhD Thesis presentation slide

Programming-Model Centric Debugging for multicore embedded systems

In this thesis, we propose to study interactive debugging of applications running on embedded systems Multi-Processor System on Chip (MPSoC). A literature study showed that nowadays, the design and development of these applications rely more and more on programming models and development frameworks. These environments gather established algorithmic and programming good-practices, and hence speed up the development process of applications running on MPSoC processors. However, sound programming models are not always sufficient to reach or approach error-free codes, especially in the case of dynamic programming, where they offer little to no help.

Our contribution to lighten these challenges consists in a novel approach for interactive debugging, named Programming Model-Centric Debugging, as well as a prototype debugger implementation. Model-centric debugging raises interactive debugging to the level of programming models, by capturing and interpreting events generated during the application execution (e.g. through breakpointed API function calls). We illustrate how we applied this approach to three different programming models, software components, dataflow and kernel-based programming. Then, we detail how we developed a debugger prototype based on GDB, for STMicroelectronics's STHORM programming environment. STHORM development toolkit provides supportive environments for component, dataflow and kernel-based programming. We also demonstrate how to tackle software debugging with our debugger prototype through four case studies: an augmented reality feature tacker built with components, a dataflow implementation of the H.264 video decoding standard and two scientific HPC computing applications.

Publié dans :  

Thesis Defense Invitation

Friday, January 10, 2014 - No comments

J'ai le plaisir de vous inviter à ma soutenance de thèse intitulée: Programming-Model Centric Debugging for Multicore Embedded Systems (Mise au point centrée sur le modèle de programmation pour les systèmes embarqués multicœurs)

La soutenance aura lieu le lundi 3 février à 10h30 à l'amphithéâtre F22, dans bâtiment F de l'UFR IM²AG, 60 rue de la Chimie, Domaine Universitaire de Saint-Martin-d’Hères, 38041 Grenoble

Vous êtes également conviés au pot qui suivra.

Cordialement,

Kevin Pouget


Vous trouverez la composition de jury et le résumé ci-dessous.

M. Jean-François MEHAUT UJF-CEA/LIG Directeur de thèse M. Miguel SANTANA STMicroelectronics CoDirecteur de thèse M. Radu PRODAN University of Insbruck Rapporteur M. François BODIN Irisa Rapporteur M. Rainer LEUPERS RWTH AACHEN UNIVERSITY Examinateur M. Noël DE PALMA University Joseph Fourier Examinateur

Mots-clés : Programmation multicœurs,Informatique embarquée,Mise au point,

Abstract:

In this thesis, we propose to study interactive debugging of applications running on embedded systems Multi-Processor System on Chip (MPSoC). A literature study showed that nowadays, the design and development of these applications rely more and more on programming models and development frameworks. These environments gather established algorithmic and programming good-practices, and hence speed up the development process of applications running on MPSoC processors. However, sound programming models are not always sufficient to reach or approach error-free codes, especially in the case of dynamic programming, where they offer little to no help. Our contribution to lighten these challenges consists in a novel approach for interactive debugging, named Programming Model-Centric Debugging, as well as a prototype debugger implementation. Model-centric debugging raises interactive debugging to the level of programming models, by capturing and interpreting events generated during the application execution (e.g. through breakpointed API function calls). We illustrate how we applied this approach to three different programming models, software components, dataflow and kernel-based programming. Then, we detail how we developed a debugger prototype based on GDB, for STMicroelectronics’s STHORM programming environment. STHORM development toolkit provides supportive environments for component, dataflow and kernel-based programming. We also demonstrate how to tackle software debugging with our debugger prototype through four case studies: an augmented reality feature tacker built with components, a dataflow implementation of the H.264 video decoding standard and two scientific HPC computing applications.

Résumé :

Dans cette thèse, nous proposons d'étudier le débogage interactif d'applications pour les systèmes embarqués MPSoC (Multi-Processor System on Chip). Une étude de l'art a montrée que la conception et le développement de ces applications reposent de plus en plus souvent sur des modèles de programmation et des frameworks de développement. Ces environnements définissent les bonnes pratiques, tant au niveau algorithmique qu'au niveau des techniques de programmation. Ils améliorent ainsi le cycle de développement des applications destinées aux processeurs MPSoC. L'utilisation de modèles de programmation ne garantit cependant pas que les codes pourront être exécutés sans erreur, en particulier dans le cas de la programmation dynamique, où ils offrent très peu d'aide a la vérification. Notre contribution pour résoudre ces challenges consiste en une nouvelle approche pour le débogage interactif, appelée Programming Model-Centric Debugging, ainsi qu'une implémentation d'un prototype de débogueur. Le débogage centré sur les modèles rapproche le débogage interactif du niveau d'abstraction fourni par les modèles de programmation, en capturant et interprétant les évènements générés pendant l'exécution de l'application. Nous avons appliqué cette approche sur trois modèles de programmation, basés sur les composants logiciels, le dataflow et la programmation d'accélérateur par kernels. Ensuite, nous détaillons comment nous avons développé notre prototype de débogueur, basé sur GDB, pour la programmation de la plate-forme STHORM de STMicroelectronics. Nous montrons aussi comment aborder le débogage basé sur les modèles avec quatre études de cas : un code de réalité augmentée construit à l'aide de composants, une implémentation dataflow d'un décodeur vidéo H.264 et deux applications de calcul scientifique.

Publié dans :  

Publications

Wednesday, January 01, 2014 - No comments

PhD Thesis

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

Research Articles

On debugging:

On HPC:

  • The Mont-Blanc prototype: An Alternative Approach for HPC Systems. The Mont-Blanc project Team. In SuperComputing'16 (SC16), Salt Lake City, USA. Nov 2016. (to appear)

Short Papers

  • A novel approach for interactive debugging of dynamic dataflow embedded applications. Kevin Pouget, Patricia Lopez Cueva, Miguel Santana, and Jean-François Méhaut. In Proceedings of the 28th Symposium On Applied Computing (SAC), Coimbra, Portugal, apr 2013. PDF
  • Vérification interactive de propriétés à l'exécution d'un programme avec un débogueur Raphaël Jakse, Yliès Falcone, Jean-François Méhaut et Kevin Pouget, in COMPAS national conference, Lorient, France, July 2016. (to appear)

Posters

On debugging:

  • Kevin Pouget, Jean-François Méhaut and Miguel Santana. Programming-Model Centric Debugging for OpenMP in COMPAS national conference. Lorient, France, July 2016. (to appear)
  • Kevin Pouget, Patricia Lopez Cueva, Miguel Santana, and Jean-François Méhaut. A novel approach for interactive debugging of dynamic dataflow embedded applications. In Proceedings of the 28th Symposium On Applied Computing (SAC), pages 1547–1549, Coimbra, Portugal, apr 2013. PDF

On HPC:

  • D. Peter, B. Videau, K. Pouget, D. Komatitsch. 2015. Forward and adjoint spectral-element simulations of seismic wave propagation using hardware accelerators. Poster presented at PASC15, Zurich, Switzerland and at EGU, Vienna, Austria.

Talks

  • Kevin Pouget, Miguel Santana, and Jean-François Méhaut. Programming-Model Centric Debugging for Multicore Embedded Systems. At the 2nd workshop on Multicore Application Debugging (MAD), Athens, Greece, oct 2014. PDF
  • Kevin Pouget, Miguel Santana, and Jean-François Méhaut. Programming-Model Centric Debugging for Multicore Embedded Systems: OpenCL/Cuda Debugging. At the HPC GA workshop, Bordeaux, France, jan 2014
  • Kevin Pouget, Miguel Santana, and Jean-François Méhaut. Supporting Parallel Component Debugging Using the GDB Python Interface. At the 2nd GNU Cauldron, Prague, Czech Republic. jul 2012. PDF

Publié dans :  

Thesis Sent to Reviewers

Friday, November 15, 2013 - No comments

Today my thesis was sent for reviewing to Rennes, France, and Innsbruck, Austria.

Now I need to wait a month or two to get the reviews.

Publié dans :  

WebAlbums TODO list

Saturday, August 31, 2013 - No comments

Short term

Filesystem

  • implement “Random/By Tag” and “Random/An Album” and move the random pict to “Random/An Image”
  • ** find a way to generate N random images/albums at the same time, for the photowall (e.g., with a configuration file, RANDOM=5 ?)
  • ** improve ViewSession interface: remove inheritance and facilitate multi-view
  • get rid of star notation,
  • better TAG handling (show only/hide these tags)

Tools

  • build GUI interface for photowall (already started in Python)

Web interface

  • add geocoding to Config page: https://developers.google.com/maps/documentation/geocoding/
  • “back” button doesn’t work anymore
  • \n not handled correctly in comments (DONE)
  • find a better way to give a name to GPX traces (eg, first LINE of the description) (DONE)
  • get rid of star notation,
  • better TAG handling (show only/hide these tags)
  • allow setting METADATA, eg parse from description (for GPX)

Backend engine

  • get rid of star notation,
  • better TAG handling (show only/hide these tags)
  • give a generic miniature for GPX files
  • make METADATA more generic o remove it from PHOTO table o create a generic “photo_id -> key value” table

Refactoring WebAlbums ViewSession interfaces, and MVC stuff

Saturday, August 31, 2013 - No comments

Since a few years, WebAlbums architecture is based on a software pattern derivated from the model–view–controller (MVC): the model–view–presenter




  • The application logic is implemented in the Service beans. It contains the core engine of the application.


  • I recently added a another presentation component, based on a fuse filesystem: WebAlbumsFS. But more on that later.

The key idea of this design is that each part is independent from the implementation of the other. That’s how I could added easily a filesystem front-end, in addition to the web interface. Likewise, the album information are currently stored in a MySQL database, but if you re-write the DAO engine, you can easily switch to any other back-end, without affecting the rest of the application.

  • The interface between the DAO and Service components is stored in the iDAO package,
  • and the interface between the Presentation and Service components are stored in the iService package.

Beginning with WebAlbums

Thursday, August 29, 2013 - No comments

Beginning with the sample dataset

Go to the sample directory, and follow the instructions:

  1. put image and miniatures directories in your data directory
  2. import WebAlbums.sql to an empty database:
  • mysql -u wazari972 -p WebAlbums < ./WebAlbums.sql # (default password is ‘ijaheb’)
Beginning from scratch

When you first boot the application, its database is empty (almost empty, the default values are commited at the first start). So, let’s start adding and tagging our first photos:

  1. (a) In directory data/ftp, create a theme directory. Let’s name it Travel. (b) Inside this one, you create your first photo albums, following this name template: . For instance, 2013-03-31 Around Grenoble. Inside that, you put photos, videos and GPX files.
  2. On the website, you go to the only existing theme, Root. There, you click on the Configuration link on the right hand side. Change the first text box to Travel or whatever name you chose to your theme. Them, import.
  3. Now you can get back to the theme list and click Travel, so what… In the album page, or last albums widget, you can see the list of your albums.
  4. Locate the best photo of the theme, and click the “Edit” icon. Then, click on “Represent the theme” and validate.
  5. For each album, find the best pict and click the “Edit” icon, then “Represent the album” and validate.
  6. In the configuration page, locate the “center of theme” and click, a bit below, “Centre de la carte”
  7. Then, create tags. For instance, a guy (WHO) named Nobody. Or a place (WHERE) named Nowhere. Locate that nowhere on the map, double click to create a beacon and validate. (Field Parent appears later).
  8. Back in the albums, find picture of Nobody and/or Nowhere, click on the Tag text, type the first letters and validate. If it doesn’t work, click on the edit button and highlight the tags in the lists (that just a problem of empty databases).
  9. While you’re there, click on desc and write a description.
  10. If you come back on the configuration page, you’ll see that new box appears (like the parent box I mentioned earlier). That’s because you’ll here only the tags used in this theme, but we’re still a bit early for that. Notice that you can set the age of that Nobody guy (hover over the Nobody tag link in a photo and you’ll see his age at the shot time)

Installing WebAlbums

Wednesday, August 28, 2013 - No comments

Requirements

  • Java environment
  • MySQL database
  • Linux/Unix environment (Windows is not supported, it would require a bit for work — mainly replacing / by \)

Installation

  • Download and extract the ZIP of the last release, or git clone the branch.
  • Parameter MySQL/MariaDB to allow a user wazari972 to connect from localhost with a password ijaheb, to database WebAlbums. If you changed the default values(recommended), edit conf/sun-ressource.xml accordingly:
mysql -u root -p -e “GRANT ALL PRIVILEGES ON WebAlbums.* TO ‘wazari972’@’%’ IDENTIFIED BY ‘ijaheb’;”

  • Execute start.sh or start.sh --start click to start in the tray menu if necessary, and when it goes green, click on launch. Default user is kevin with no password. You can change that in conf/config.xml.
  • Now you can start playing with WebAlbums (and jump to the next post.)