23 - Semantics and Concurrent Data Structures for Dynamic Streaming Languages [ID:4102]
50 von 1161 angezeigt

Thank you very much for the kind introduction.

So it's my honor to be here.

Actually, it's really a pleasure to come.

It was not easy to find the good occasion, but I think that it's the worst day in the

year I should be there because of this game tonight, but we could not plan this in advance.

But no, it will be fun, actually.

So I'm also very honoured to be here because your group and everybody here has been involved

in frontier research at the boundary between HPC and embedded systems, both in terms of

research and technology transfer.

It has been extremely inspiring for us as well.

So I'm looking forward to discussions with you also in the afternoon after all, in the

questions and answer sessions after the talk.

So please also feel free to interrupt if you have any questions, if you don't agree, if

you want to comment, let's make it lively if possible.

So I will talk about one aspect of our work, which is more on the language side, especially

on the streaming languages.

And I will explain a little bit what I mean by streaming languages and go down into implementation

of those, not so much from a compiler perspective.

I'm more a compiler person at the beginning, but more from a concurrent runtime systems

perspective.

So this is work we are doing in the context of a research team at Inria called Parcas,

which is actually both at Inria and Ecole Normale Supérieure in Paris.

And the group, so these are the main faculty in the group down there, is working on dataflow

languages, more particularly dataflow synchronous languages.

So maybe you heard about languages like STL or SCADE or Lustre, which are popular in embedded

real-time or safety critical environments, not so much for computing, not so much for

parallelism per se, but precisely that's one of the interesting aspects of our research

is trying to bridge semantical design, language design that are popular for real-time systems

and parallel computing.

And we believe there is lots of commonalities in compiler construction, strong like determinism

properties or compositional properties of these languages coming from concurrency in

reactive systems, but also for applications in parallel computing.

So we are also working a lot on polyhedral compilation, so maybe you heard about that

keyword, polytope, maybe in Germany.

That's essentially also a geometrical or mathematical representation of programs that has been quite

successful for essentially for automatic parallelization or mapping programs to accelerators, FPGAs,

et cetera.

So it has been running for a long time, but there are more and more, let's say, production

or industrial successes these days.

So I won't talk about it in this presentation, just a few slides, but that's another big

part of our work.

And so essentially we are about 30 people in the group, including currently eight master

students because it's the internship period.

So if you have more questions about the group, I can talk about it offline.

So just about stream processing, what I mean by that, so there are many different definitions

around.

So just for your information, maybe you want to look at these workshops that were held

in essentially organized by MIT people a few years back.

One of them was actually organized in Italy, the 2008 one, together with the micro conference

by Rodrigo Rabat.

Presenters

Prof. Albert Cohen Prof. Albert Cohen

Zugänglich über

Offener Zugang

Dauer

01:09:56 Min

Aufnahmedatum

2014-07-04

Hochgeladen am

2014-10-20 23:44:27

Sprache

de-DE

Prof. Albert Cohen (École polytechnique, Paris)

Stream computing is often associated with regular, data-intensive applications, and more specifically with the family of cyclo-static data-flow models. The term also refers to bulk-synchronous data parallelism overlapping computations and communications. Both interpretations are valid but incomplete: streams underline the formal definition of Kahn process networks for 4 decades, a foundation for a more general class of deterministic concurrent languages and systems with a solid heritage. Stream computing is a semantical framework for parallel languages and as a model for pipelined, task-parallel execution. Supporting research on parallel languages with dynamic, nested task creation and first-class streams, we are developing a generic stream-computing execution environment combining expressiveness, efficiency and strong correctness guarantees. In particular, we propose a new lock-free algorithm for stalling and waking-up tasks in a user-space scheduler according to changes in the state of the corresponding queues. The algorithm is portable and proven correct against the C11 weak memory model.

Einbetten
Wordpress FAU Plugin
iFrame
Teilen