Lab Activities 1, 2
Some of the Lab Server Specifications CPU: 2 Quad(4) Core Intel Xeon 5400 processors CPU Speed: 2.5 GHz Cache : Each 2 cores share a 6 MB cache Front Side Bus Speed: 1333 MHz RAM Size: 8 GB Hard Disk: 3 X 146 GB
Lab Activity 1 – Mandelbrot serial versus parallel Objective: explore how the runtime behavior of serial code differs from a parallel code in terms of execution time and number of cores used Serial version utilizes a single core
Compiler technologies: Auto parallelization Programmers can use compiler technologies to most quickly take advantage of inherent parallelism in the applications and execute them in parallel
General Optimizations Implemented through use of coarse grained switches that govern behavior of both single threaded and multi-threaded codes
Example Processor-independent optimizations Windows* /O2Optimizes for Speed : Vectorization
Processor-dependent AutoVectorization optimizations Windows* QaxKIntel Pentium III and compatible Intel processors QaxWIntel Pentium 4 and compatible Intel processors QaxNIntel Pentium 4 and compatible Intel processors. Enables new optimizations in addition to Intel processor-specific optimizations QaxPIntel(R) Core(TM) processor family with Streaming SIMD Extensions 3 (SSE3) instruction support QaxOIntel(R) Core(TM) processor family. QaxTIntel(R) Core(TM)2 processor family
More Advanced optimizations: auto-parallelization Windows* Qparallelenable the auto-parallelizer to generate multi- threaded code for loops that can be safely executed in parallel Qopenmpenable the compiler to generate multi-threaded code based on the OpenMP* directives
Lab Activity 2 - AutoParallelization Objective: Use auto-parallelization on a simple code to gain experience with using the compiler’s auto-parallelization feature