Home > Research > Jobs/Internships > [TAKEN] Cooperative and Parallel simulation: experimenting with the SystemC (...)

[TAKEN] Cooperative and Parallel simulation: experimenting with the SystemC scheduler

Master Internship Proposal

Friday 10 December 2010

Ce sujet est déjà pris, et gardé ici seulement pour archive.

laboratory: Verimag


supervisors: Matthieu.Moy@imag.fr, Claire.Maiza@imag.fr

Scientific Context

SystemC is a C++ library that allows modeling complex hardware systems at a high level of abstraction (typically, Systems-on-a-Chip contained in smartphones, set-top-boxes, ...).

The parallelism of the model is expressed with SystemC processes, which are executed sequentially during simulation (we call this "cooperative" simulation). Cooperative simulation brings a relative comfort to the user, since most accesses to shared variables do not need to be protected with locks (mutex). However, this is also an important limitation of SystemC, since it forces the simulation to be executed on a single processor, and do not always allow the modeling of all the behaviors of the hardware.

We are investigating compromises between cooperative and parallel (or "preemptive") simulation.

Expected skills

The students must have good skills in concurrent programming, and be familiar with the C++ language.

Work context

The SYNCHRONE team of the Verimag laboratory has been working on SystemC for almost 10 years, on various issues (formal and runtime verification, methodology, parallelisation, ...). In addition, we've implemented an alternate simulator called jTLM on which we already experimented various approaches to parallelism. After these experimentations, we are looking for ways to introduce these concepts in the semantics of SystemC.

Expected work

The internship should consist in several steps:

  • Learn SystemC, and write a few examples,
  • Experiment mixes between POSIX threads (pthreads) and SystemC processes. Identify and understand practical and theoretical limitations.
  • Propose a modification of the SystemC scheduler that allows mixing parallel and cooperative simulation, and implement it in the reference implementation of the SystemC simulator.

In parallel with this, of course, a bibliogriphical work will be needed on previous approaches (within the laboratory and in other teams).

As any research work, the subject is to be refined by discussing with the supervisors. Don't hesitate to contact us for discussion!

Valid XHTML 1.0 Transitional
SPIP | | Site Map | Follow site activity RSS 2.0
Graphic design (c) styleshout under License Creative Commons Attribution 2.5 License