Thanks to its impressive performance and its unrivaled abstraction power, C++ remains one of the most widely used languages in scientific computing: It lies at the core of machine learning frameworks like TensorFlow and PyTorch, is the foundation of vendor-specific tools for programming accelerators like SYCL, NVIDIA's CUDA or AMD's HIP, and is the go-to language for scientific and engineering projects spanning the full spectrum from tiny embedded control applications, all the way up to analyzing the petabytes of data generated by physics experiments at CERN.
This seminar will cover tools and guidelines to help you to efficiently develop safer, more performant, and more maintainable C++ code. We will go over the following topics: development tools, runtime sanitizers and static analysis, C++ Core Guidelines, the pitfalls of undefined behavior, build systems and packaging, portability and compatibility, interfacing with Python, performance, linear algebra ... The main goal is to cover a broad range of topics, and provide pointers to further resources to dive into.
While aimed primarily towards PhD researchers and students who use C++ in their research or master's thesis, the talk should provide valuable insights for anyone with an interest in C++.