The lecture given here is the sixth part in the “Introduction to Parallel Programming” video series. This part provides the viewer with practical examples of errors that can occur when threads may contend for shared resources. One example is a simple arithmetic computation and another attempts to add nodes onto a linked list. Methods to eliminate data race conditions within threaded code are given in the abstract and in practical terms using two OpenMP pragmas: critical and atomic.
This hands-on exercise lab, Numeric Search, is one of two programming labs associated with the video lecture “Confronting Race Conditions” (Part 6) of the “Introduction to Parallel Programming” series. This problem examines numeric values in order to determine how many conform to a given set of properties. The lab contents include source files and written instructions to guide the programmer in converting the serial source code into an equivalent parallel version using OpenMP.
Target Audience: Undergraduate with 3D math and physics background (senior)
Description: Medium-sized project that simulates the n-body problem (multiple non-colliding celestial objects influencing each other through gravity). Uses OpenGL and FreeGlut for visualization. Includes three versions for both Windows and Linux: serial, OpenMP, and CILK.
- Basic viewing and interrogation functions for visualization
- Visualization of vector fields, tensors, and flow data
- Visualization of scalar field or height field: isosurface by the marching cube method
- Direct volume data rendering: ray-casting, transfer functions, segmentation, hardware
- Information visualization: projection and parallel-coordinates methods
Case Study in Parallel Computation and Graphics Visualization: Parallel Mandelbrot