Oreilly - High Performance Scientific Computing with C
by Benjamin Keller | Released August 2018 | ISBN: 9781789137842
Use algorithm design, hardware features, and parallelism to build fast, accurate, and efficient scientific codeAbout This VideoPractical examples to understand scientific and mathematical coding in CGet basic, general programming knowledge of the tools and techniques needed to write scientific codes from scratchExplore key concepts of how numerical algorithms work and their optimization using parallel architectures, distributed systems, and GPGPU acceleratorsIn DetailIn this course, you'll learn to develop scientific and numerical programs that solve problems. It's ideal for scientists, engineers, and programmers who need to model mathematical or physical systems. You'll get a core toolkit of algorithms that can be used in a wide variety of applications, using the low-level capabilities of the C programming language.The close-to-the-metal approach means you'll learn to optimize our programs to get the absolute best performance that our hardware can provide. You'll see how the design of algorithms affects their performance and accuracy, the tools that can be used to optimize your code and develop your intuition about numerical problems. Finally, you'll examine the growing array of parallel solutions that enable you to take advantage of multi-core CPUs, distributed compute clusters and GPU accelerators.By the end of this course, you'll know how to write fast, accurate code that can run on many different platforms and solve many different scientific problems.The code bundle for this video course is available at-https://github.com/PacktPublishing/High-Performance-Scientific-Computing-With-C Show and hide more
- Chapter 1 : Core Algorithms of Scientific Computing
- The Course Overview 00:04:21
- Introduction – Why Use Computers for Math? 00:09:34
- Interpolation and Extrapolation 00:10:34
- Numerical Integration 00:12:05
- Linear Equations and Matrix Methods 00:05:26
- Monte Carlo Methods 00:06:41
- Chapter 2 : Optimizing Scientific Code for Performance and Accuracy
- Floating-Point Numbers and IEEE-754 00:07:10
- Algorithm Complexity and Performance 00:08:31
- Discrete versus Fast Fourier Transform 00:07:52
- Compiler Optimizations 00:06:15
- Chapter 3 : Optimizing for the CPU
- How the CPU Works 00:07:32
- Pipelining and Hardware-Oriented Design 00:08:59
- Vectorizing with AVX 00:09:15
- Chapter 4 : Accelerating Code with Parallel and Distributed Computing
- Parallel Architectures, Amdahl’s Law, and Gustafson’s Law 00:06:38
- Shared Memory Parallelism with OpenMP 00:09:12
- Distributed Memory Parallelism with MPI 00:07:36
- GPGPU with CUDA 00:08:38
Show and hide more