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