Computing systems involve multiple computing paradigms, from very fine grain components in processor architecture design or embedded co design up to massively parallel frameworks underlying grid computing or more futuristic bio-inspired or spatial computing models. They encompass from embedded processor up to high performance supercomputers, including general purpose processors. Europe is well positioned on embedded computing systems but a lot of technical progresses have to be addressed in order to maintain and even improve this situation.
In fact, the exploitation of instruction level parallelism and also the increase of frequency are no more valid ways to improve computing performance. For some years now, the quest for the ultimate performance on a single chip uni-processor has come to a stop. Therefore, a massive shift towards multi-cores architectures is on the move. The increasing number of transistors lets think that in a near future, integration of tens or even hundreds of cores on a same die is a realistic issue. But this new paradigm has a deep impact on all technical aspects ranging from the architecture design up to the programming languages.
Besides the shift from performance-aware to silicon/energy-aware approaches to design programmable or reconfigurable cores, the main challenges are linked to the management of the complexity brought by lots of homogeneous or heterogeneous resources. In this context, it is also crucial to propose innovative execution models and solutions to overcome bottlenecks such as the latency of memory access and interconnection networks that do not scale with the number of processors. Power management techniques and reliability are also key issues regarding the actual integration capacities. On the other side, the need for high-level abstraction language and programming framework is becoming crucial for tackling the complexity issue and to fully exploit parallelism, keeping the programmer as far as possible from the architecture concepts.
These are main key research topics in Digiteo in the domain of computing systems :
- high performance computers and compilers,
- multicores on chips : design and programming, interconnection Networks on Chip (NoC) and memory management,
- distributed systems, multithreads and grid computing,
- power aware compilation and run-time power management,
- Programming models and languages, Algorithm-Architecture Adequacy (cf "software")
- Future computing models (spatial, bio-inspired, quantum computing, ...)
Beside these topics some Digiteo teams are involved in the design of a multicore and manycore architectures for high performance computing. In this activity, researches aims at proposing new execution models, new paradigms of computation, new programming models and new architectures. The management for high quality of service (performance, reliability, low power, dependability, etc) of distributed hundred-core computing architecture is the key problem to solve, which can be tackle by Digiteo. Many Digiteo competences can contribute to this issue (hardware architecture, embedded system software, operating system, optimisation, compilation, etc). Digiteo is in position to become a leader in embedded computing systems due to its realisation of platforms on embedded systems, to related projects like TERAOPS and to the Nano-Innov initiative, that allows a connection between Nano-Technology and STIC : Nano-INNOV involve partners of Digiteo working on architecture design and tools for programming and validation of many-core embedded computers.