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
Early this year a TBB user requested in the forum for the feature that simulates mutexes that do nothing. The user wrote “Lot of times, when we do template meta programming, we need to provide some containers with no mutex (tbb containers) and some containers with a tbb Mutex...[snip]... If we can have a NullMutex feature ... it would be easy to handle such situations.”
Lately a sequence of interesting things happened to me. It started with finding an aptly titled paper "TLRW: Return of the Read-Write Lock" by Dave Dice and Nir Shavit. A couple of weeks later, I got an email asking a question about how to use TBB read/write locks (i.e., spin_rw_mutex). A week or so later, my officemate hit a road block while preparing for a release, which appeared to be a typical reader-writer race problem.