![]() Universität Erlangen-Nürnberg |
![]() Technische Universität München |
![]() Universität Stuttgart |
| Ferien-Akademie | ||
Ferienakademie
2008,
Course 9
|
Professors |
Assistants: |
Large-scale numerical simulations are typically multi-faceted projects with experts from the respective fields of application, from applied mathematics, and from computer science working together to exploit the capabilities of modern high-performance computers.
Such projects create systems of enormous complexity – with all the know-how about the application, with sophisticated numerical methods, and with complicated dependencies between different modules, but also complex simply due to the size of the code.
Now, we have to bring this code on a high-performance computer that itself is a very complex system, with typically a massively parallel architecture and with modern processors that offer a lot of optimization possibilities like cache usage or vectorization. This implementation has to be done fast – before our brand-new high-performance computer is outdated again.
One would expect that software engineering considers this challenging task as a core field of its activity and provides us with methods and tools to handle the complexity of the system. If we, for example, develop a revolutionary fast solver, we just have to think about coding this module, and then we plug it into the system, press the “Compile” and the “Run” buttons and the simulation profits from our solver that in turn uses all the machine-aware optimizations that have been implemented before.
Reality, as we know, is not like this: the goal to get maximum performance out of the computer typically leads to a jungle of code that is mostly incomprehensible for anybody else than its creators. A simple change for the boundary conditions, for example, can easily take months to be implemented. Any change in such a code is an awful and costly job and often a terrible waste of resources.
This course does
not intend to solve the problem (otherwise, there would not be enough spare
time for hiking
), but we want to study selected topics from computational
science in an interdisciplinary group, see how it is done today and want to
think together how it could be done better.
We will cover topics from applied mathematics (discretization techniques, fast solvers), computer science (efficient implementations, especially for parallel computers, visualization) and example applications (fluid mechanics or structural mechanics, e.g.)
To have maximum benefit from our course, it is important that you are willing to cooperate with the students from the other fields: learning about the topics that they bring into the program, but also giving a talk on a topic of your area of interest that can be understood by your (hopefully also cooperative) colleagues from other disciplines.
Course language is English (actually: something like English
–
so you do not have to worry if your English is not that good).
![]() |
![]() |
Stefan Zimmer, 02. Juni 2008 - Impressum