This module, Numerical Quadrature, is designed to be an introduction to parallel computing for students in CS2, with C++ as the programming language, who have taken or are taking Calculus II.

Upon completion of this module the student should:

- understand a parallel computing paradigm based on intuitive ideas,
- realize that parallel computing is available now on most computers in some form,
- comprehend a simple parallel program written in CUDA,
- measurably see the advantage offered by parallel computing, and
- glimpse some of the challenges presented by parallel computing.

The background required for this module includes basic *c++* programming, and introductory integral
calculus including Riemann sums. The first section of this module quickly develops the mathematical ideas from an intuitive point of view. From this development a simple algorithm, expressed as a finite sum of trapezoids is given. In the second section, a simple sequential *c++* implementation is presented and analyzed. In the third section, a parallel implementation, is developed using CUDA.

Two *c++* programming examples are presented in this module, and can be
downloaded from here. The first is
a (sequential) *c++* program that should compile and run using any *c++* compiler.
The second is a *c++* based CUDA program.

For information on all *CUDA* related software, please visit the NVIDIA CUDA site.