Dienstag, 21. Dezember 2010

AutoProfiler - Detecting parallelization potential

As I wrote in my last post, we focus on rather coarse-grained parallelization schemes and patterns. In our research group we developed AutoProfiler, a tool to detect parallelization potential from  analyzing the runtime profile of a sequential application.

Also, our results tell us, that we detect most of the methods, that would be parallelized by an experienced developer in manual parallization process.

Today,  I want to write something about how AutoProfiler reveals this.

In my post on parallelism of the future, I already stated, that a combination of static any dynamic approaches is the most promising way. So AutoProfiler start with the creation of a dynamic runtime profile. Specifically, AutoProfiler records indicators such as the number of times a method is being called, the runtime share of a method and so on. After that, a metric tries to map those indicators together with the actual indicator values to known parallel software design patterns.

One example. Let's say we have a method foo() that calls some other methods in its body, such as bar1(), bar2() and bar3(). These three methods use most of the runtime of foo(). For this specific example, AutoProfiler would come to the conclusion, that foo() is a the master ins a master/worker-pattern. The calls to bar1() to bar3() sould be made in parallel as they are the workers.


Of course, it's not as simple, as the control flow has to be seen in combination with the data flow. The method foo() might even be a whole pipeline with different pipeline stages, but I think, the main aspect of AutoProfiler comes clear to you.

If you know my blog you know that this is just one single piece of the puzzle - the big picture still is to bring all this together in one IDE. It's crucial to bring this info closer together and closer to the developer.

Greetings,
K!

Freitag, 3. Dezember 2010

The .NET-Multicore Group

Hey there,

as our research project grows, we initiiated the ".NET Multicore Group" at the Karlsruhe Institute of Technology (KIT). Out project website can be found here.


Currently, we have 3 scientific assistants and 5 students working together. When you know my blog a bit, it might not be a big surprise, that our research interest is the preparation and conversion of sequential application to parallel and the runtime defects that arise in parallel applications.

Have a nice weekend.

K!