Proposal for PhD positions at VERIMAG

Verimag proposes two PhD theses in collaboration with ST Microelectronics. Please check your qualification and send e-mail to Oded Maler with CV and motivation letter.

Topic 1: Scheduling Stream-Processing Applications on a Multi-Processor

Supervisors: Thao Dang, Oded Maler

To cope with the complexity of applications and time-to-market constraints, the semi-cunductor industry is moving to a reconfigurable multi-processor architecture, in which tasks which were previously hardwired in the circuit or associated with dedicated processing units are now executed by several interconnected processors. Although the use of software allows more flexibility it poses new challenges, mainly in identifying the parallelism in the application and deploying the software on the multi-processor architecture in order to obtain good performance with low energy consumption.

The xStream architecture developed by ST is such a multi-processor architecture specialized for stream-processing applications (video, audio, radio). It consists of a large number (10-60) processing units with a configurable communication topology. The speed and voltage of each processor can also be tuned. The main challenge in software development for such an architecture is how to deploy parallel programs which are written in an architecture-neutral way into a given instance of the arcitecture while preserving the semantics of the program, meeting timing constraints and saving energy.

The proposed thesis, co-supervised by VERIMAG and ST in the framework of the Athole project, will develop techniques for deploying and scheduling such parallel programs on the xStream architecutre.

This work will include:

  • Study and formalization of stream-processing data-flow programs, including execution times as well as timing and energy requirements
  • Study and formalization of the xStream architecture and defining an architecture description language
  • Development of efficient scheduling algorithms for mapping programs to architecture
  • Implementation and experimentation

    Requirements: background in computer architecture, programming, semantics, compilation, algorithms and some formal thinking

    Topic 2: Programming Languages for Stream Processing Applications

    Supervisors: Paul Caspi, Oded Maler

    To cope with the complexity of applications and time-to-market constraints, the semi-cunductor industry is moving to a reconfigurable multi-processor architecture, in which tasks which were previously hardwired in the circuit or associated with dedicated processing units are now executed by several interconnected processors. Although the use of software allows more flexibility it poses new challenges, mainly in identifying the parallelism in the application and deploying the software on the multi-processor architecture in order to obtain good performance with low energy consumption.

    The xStream architecture developed by ST is such a multi-processor architecture specialized for stream-processing applications (video, audio, radio). It consists of a large number (10-60) processing units with a configurable communication topology. The speed and voltage of each processor can also be tuned. The main challenge in software development for such an architecture is how to deploy parallel programs which are written in an architecture-neutral way into a given instance of the arcitecture while preserving the semantics of the program, meeting timing constraints and saving energy.

    The proposed thesis, co-supervised by VERIMAG and ST in the framework of the Athole project, will study the appropriate programming language constructs for writing stream-processing applications in a manner which is natural for the application and can express the inherent parallelism, but supports efficient compilation to the xStream architecture. The work will be inspired by the experience accumulated in Verimag in the development of the data-flow language Lustre and on the language C-stream developed at ST.

    The work will include:
  • Study of the typical stream-processing application and their programming requirements
  • Comparative study of various data flow language (Lustre, StreamIt, SDF)
  • Development of language constructs, including special annotations for required performance.
  • Development of compilation methods that interface with the scheduling algorithms.
  • Implementation and experimentation


  • Requirements: background in computer architecture, programming, semantics, compilation and some formal thinking