WIA: Programming Languages in Scientific Computing
Term | Summer Term 2020 |
Lecturer | Dr. Simon Praetorius |
Time |
Lecture Tue. 2. DS (09:20-10:50) |
This WIA module is a continuation of the SCPROG lecture(s) with the goal to dive deeper into some aspects of scientific programming. The focus is on programming languages tought in the SCPROG lectures but the list of topics is not restricted. Other interesting topics about programming techniques, tools, paradigms and software solutions with applications in scientific and high-performance computing can and will be discussed.
Registration
Content and Course of Action
The module is a combination of presentation by student, lectures, and external/online presentations. At the beginning we will have all presentations online, starting with conference talk from international meeting in the world of C++. Then, students get material to prepare an own presentation. This might be given via an online video conferencing solution / meeting platform (or if possible offline). The semester is completed with a series of lectures either online or offline.
Questions and Answers
In the matrix chat-room #wia-scprog:tu-dresden.de questions about this module can be asked. Later in the semester, this chat-room will be used for discussing presentations and topics. Login via ZIH-Login.
Goals and Requirements
This module aims to give a deeper understanding of programmign techniques, tools and paradigms. Those topics should not only be discussed theoretically, but implemented in real-world code, tried out, and maybe published as part of an open-source project.
Dates
Date | Location | Topics |
---|---|---|
2020/04/07 (Tue) 09:20 Uhr |
BBB: https://t1p.de/wia-scprog | First meeting, organization of the semester, introduction to the topoics |
2020/04/08 (Wed) 13:00 Uhr |
Matrix: #wia-scprog:tu-dresden.de | TBA. |
(BBB ... BigBlueButton, an open-source video-conferencing tool, hosted by ZIH, Matrix ... A chat and communication platform with chat-client Riot)
List of Topics
- Polymorphism (compiletime vs. runtime polymorphism)
- Objectoriented design (comparison of languages)
- Concurrency (threads, tasks, asynchronous computing)
- Parallelization with OpenMP, OpenCL, MPI, ...
- Expression Templates (e.g. symbolic differenciation using expression templates)
- Vectorization and auto-parallelization
- Variadic functionen
- Arbitrary precision arithmetics
- Interval-arithmetics
- Comparison of modern languages (Rust, Go, Pony, Julia,...)