After working through these videos, you can design and implement a complete solution to Assignment 2.
Video: RISC and CISC. Slides: risc_cisc.pdf.
Video: Instrinsics. Code: vector_add.c, makefile.
Video: Performance impact of vector instructions. Code: vector_bench.cc, makefile.
Video: What is OpenMP? Code: what_is_openmp.c, makefile.
Video: Parallel For, Sections, and Single. Code: for_sections_single.c, makefile.
Video: Reduction. Code: reduction.c, makefile.
Video: Advanced Reduction. Code: reduction_advanced.c, makefile.
Note: Per the standard, the initializer expression in declared reductions is only applied to private copies of a variable. In particular, the code in the video required a slight correction.
Video: Attributes. Code: attributes.c, makefile.
Video: SIMD Parallelism. Code: simd.c, makefile.
Opional video: Schedulers. Code: schedulers.c, makefile.
Video: Naive Synchronization via OpenMP. Code: none_openmp.c, critical_openmp.c, atomic_openmp.c, reduction_openmp.c, makefile.
Video: Data Partitioning in OpenMP Code: sequential.c, horz_openmp.c, vert_openmp.c, makefile.