Dr. Scott Meyers:
Fastware for C++
***NEU im QA Systems Seminarportfolio***
30. September - 01. Oktober 2010
Steigenberger Graf Zeppelin, Stuttgart
Referent:
Dr. Scott Meyers
Sprache:
Englisch
Frühbucherpreis:
1.780,- € zzgl. MwSt. bei Anmeldung bis 30. Juni
Beginn
9:00 Uhr bis ca. 17:00 Uhr (an beiden Tagen)
Kosten
1.900,- € zzgl. MwSt.
Vorläufige Seminarbeschreibung!
Fastware is software that’s fast. Whether it’s instantaneously responsive GUIs, lightning-fast servers, speed-critical libraries, or applications that sizzle, minimizing latency is the name of the game, and this seminar is an in-depth examination of how you go about achieving it with C++.
Prospective attendees should note that up to half the material in this course is essentially the same as that in Scott’s High-Performance C++ Programming seminar.
Participants will gain:
- An understanding of how caching hierarchies and multiple cores can affect software speed.
- Strategies for designing, monitoring, and accelerating systems where speed is an important concern.
- Techniques for dealing with external software (e.g., compilers, libraries, drivers) that affects your system’s performance.
- Novel ideas for exploiting "extra" cores and threads.
- Detailed guidance on how to make the most effective use of C++ in low-latency systems.
Detailed Topic Outline
- Characteristics of "Fastware"
- Memory and processors
- Cache hierarchies, cache lines, cache coherency, data vs. instruction caches
- Implications of variations in processor architectures
- Collecting empirical data
- Exploiting constraints
- General solutions vs. tailored solutions
- Revising the problem
- Avoiding computation
- Precomputation
- Caching
- Lazy evaluation, reference-counting
- Avoiding unnecessary object creation
- Data structures and algorithms
- Cache- and concurrency-friendliness considerations
- Using the STL efficiently
- Speeding up IO
- Prefetching, buffering, and copying issues
- Minimizing content size: compression, deltas, etc.
- Disk issues: fragmentation, striping, etc.
- Network issues: protocol selection and control, distance minimization, etc.
- Exploiting concurrency
- Task-based, data-based, and pipelining strategies
- Taking advantage of "extra" threads/cores/processors
- Considering custom memory management
- Accelerating existing systems
- Finding bottlenecks vs. understanding behavior
- Tool categories and approaches
- Further Reading
Who Should Attend
Systems designers, programmers, and technical managers involved in the design, implementation, and maintenance of production systems using C++. Participants should be familiar with the basic features of C++ (e.g., classes, inheritance, virtual functions, templates, STL), but expertise is not required.
Format
Lecture and question/answer. There are no hands-on exercises, but participants are welcome to use their computers to experiment with the course material as it is presented.
Seminarbeschreibung (pdf)
Seminaranmeldung online