Dear followers and students,
because of the superb feedback I got from the .NET-lecture in July, I will offer a practical course this winter semester. The course website is available here.
The goal will be to learn how to develop software in a planned and organized manner. We'll get into discussing the different steps of a software development process. We'll divide the students in teams of 4 and practise an adapted version of the waterfall model. It consist of 4 seperate phases and each one needs one student in charge.
So, the main goal of this event is to practically learn the advantages of a development process model. And the disadvantages too. Familiarization is the catch-word. Now, although it's all about the model, I think it's also important to deal with an interesting piece of software. In contrast to former events of this kind in our faculty, I'd like to change the course a little and devote the first weeks to a dedicated brainstorming phase. Each team is supposed to freely develop an idea of what could be developed in this course.
Be creative - develop your own idea!
Watch out, here comes a KIT-disclaimer:
To all students: Please go to WebInScribe and select "PSE-Praktikum". Make your selection before October, 20th!
Mittwoch, 21. September 2011
Dienstag, 9. August 2011
Shared Research Group officially launched!
Hello everybody,
Since early 2011 I have egerly been working on a research group proposal as a fund raiser for our research group. Today, I would like to share some very pleasant information with all of you:
After having initiated the .NET-Multicore Group in late 2010, our research group keeps on evolving: With Siemens Corporate Technology (CT) we got a global player in research to support our parallelization activities!
I'm happy to announce the Shared Research Group: Pattern-driven application parallelization (SRG).
It is the first research group of its kind at the Department of Informatics and Computer Science here at the KIT. Under the shared patronage of the KIT represented by Prof. Walter F. Tichy and Siemens CT, this construct supports research activities for a group of three scentific researchers over a period of 4 years. Both Siemens and the KIT take confidence in the research goals defined by us and their implementation.
As a first step, Prof. Tichy and I will start to look for two additional researchers. When this is achieved, I'll get back to you.
Greetings,
K!
Since early 2011 I have egerly been working on a research group proposal as a fund raiser for our research group. Today, I would like to share some very pleasant information with all of you:
After having initiated the .NET-Multicore Group in late 2010, our research group keeps on evolving: With Siemens Corporate Technology (CT) we got a global player in research to support our parallelization activities!
I'm happy to announce the Shared Research Group: Pattern-driven application parallelization (SRG).
It is the first research group of its kind at the Department of Informatics and Computer Science here at the KIT. Under the shared patronage of the KIT represented by Prof. Walter F. Tichy and Siemens CT, this construct supports research activities for a group of three scentific researchers over a period of 4 years. Both Siemens and the KIT take confidence in the research goals defined by us and their implementation.
As a first step, Prof. Tichy and I will start to look for two additional researchers. When this is achieved, I'll get back to you.
Greetings,
K!
Donnerstag, 14. Juli 2011
Evaluation of the .NET-lecture
Hello everybody,
as I wrote in this post, I held a lecture on modern programming concepts using the example of .NET. I have organized the practical courses for a freshman lecture but this has been the first time fully in charge of a lecture. At the end of each semester, our faculty conducts an evaluation of all its lectures and practical courses and today I got my results.
I'd like to share them with you and I must say that I'm overwhelmed and very happy to receive this kind of feedback! With a quality index of 100 it simply can't get any better!
So this goes out to all of my students: Thank you for your collaboration and for making this lecture such a success!
Link: Lecture evaluation (german)
K!
as I wrote in this post, I held a lecture on modern programming concepts using the example of .NET. I have organized the practical courses for a freshman lecture but this has been the first time fully in charge of a lecture. At the end of each semester, our faculty conducts an evaluation of all its lectures and practical courses and today I got my results.
I'd like to share them with you and I must say that I'm overwhelmed and very happy to receive this kind of feedback! With a quality index of 100 it simply can't get any better!
So this goes out to all of my students: Thank you for your collaboration and for making this lecture such a success!
Link: Lecture evaluation (german)
K!
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!
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.
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.
Labels:
AutoAnalyzer,
loop field,
parallelization
Freitag, 25. März 2011
SRG student to win the RSA award 2012!
Hey folks,
just a short note to let you all know that the KIT awarded one of our student positions for their excellence in research! The Research Student Award (RSA) honors student involvements that have very close influence to current research.
I feel very flattered :c)
K!
just a short note to let you all know that the KIT awarded one of our student positions for their excellence in research! The Research Student Award (RSA) honors student involvements that have very close influence to current research.
I feel very flattered :c)
K!
Mittwoch, 12. Januar 2011
AutoProfiler - Master/Worker identification
Welcome back,
today I'd quickly like to share some results we got from AutoProfiler concerning the pattern extraction from runtime profiles. As test benchmark we used Parallel Programming Samples offered by Microsoft, and a Desktop Search we developed and parallelized manually as a real world example.
For this first approach, we analyzed the control flows of all actual programs by automatically instrumenting the binary and collecting the following indicators:
The following table shows the results of one benchmark and compares them to the suggestions we got out of AutoProfiler.
I think the next step is to take a deeper look into data dependencies in order to better distinguish different patterns. This could well be Master/Worker from Pipeline. Also, we try to cope with a special form of calls from a mater to a worker thread: If a detected worker calls a method very often with no high CPU-load per call, it might lead to a performance gain to inline this worker instead of an explicit spawn-off-execution in a separate thread.
K!
today I'd quickly like to share some results we got from AutoProfiler concerning the pattern extraction from runtime profiles. As test benchmark we used Parallel Programming Samples offered by Microsoft, and a Desktop Search we developed and parallelized manually as a real world example.
For this first approach, we analyzed the control flows of all actual programs by automatically instrumenting the binary and collecting the following indicators:
- Number of times a method is called
- Method-inclusive time share
- Method-exclusive time share
The following table shows the results of one benchmark and compares them to the suggestions we got out of AutoProfiler.
Method | #calls | %incl. time | %excl. time | Manual pattern | AutoProfiler Suggestion |
---|---|---|---|---|---|
PerfSimStep() | 120 | 91,82 | 0,10 | Worker | Worker |
Sim1Step() | 7260 | 91,40 | 57,05 | Worker | Master |
I think the next step is to take a deeper look into data dependencies in order to better distinguish different patterns. This could well be Master/Worker from Pipeline. Also, we try to cope with a special form of calls from a mater to a worker thread: If a detected worker calls a method very often with no high CPU-load per call, it might lead to a performance gain to inline this worker instead of an explicit spawn-off-execution in a separate thread.
K!
Abonnieren
Posts (Atom)