Mittwoch, 13. April 2011

The .NET Multicore Group to offer a lecture on modern development concepts

For many years, our chair offers several lectures on software design, design patterns and modern programming concepts. The base lectures for freshman students all base on Java because this has become a common standard across different software engineering chairs here in the faculty for Informatics and Computer Science.

For students majoring in software engineering we also offer .NET where we teach modern concepts of programming environments. This semester, I will offer this lecture, enriching the existing material with results from our research and practical courses.

Apart from theoretical aspects like the CLR, CTS or MSIL, I'd like to support a profound knowledge about these conepts via practical courses. If you want, take at look at our material. I'll publish all lecture slides and courses on the lecture site.

Greetings,
K!

Mittwoch, 6. April 2011

Loop field types - Loop exterior fields

On iteration exterior fields.

When trying to investigate the parallelization potential of fields used in loops, I suggest the differentiation between iteration interior and iteration exterior fields, as depicted here.

Today, I want to say something about the latter field type.

From the perspective of a single iteration of a loop, there are only two different kinds of fields: The ones that are declared within the loop itself and the ones that are not. So, from this perspective, fields can either have a local character (declared within the loop iteration) or a global character (declared 'outside'). Fields, that are declared beyond the scope of a single loop iteration can either be
- method fields declared within the scope of the method containing the loop,
- object fields declared within the scope of the class instance containing the method or
- class fields declared within the scope of the class.


Knowing this we can define patterns that tell us how to turn this into parallel code.We curently develop a tool called "AutoAnalyzer" that automatically detects the different field profiles for a given application. Based on this information, we want to be able to suggest a suitable parallelization for a given method of loop.