COMP 633 - Parallel Computing
Lecture 7 September 3, 2020
SMM (2) OpenMP Programming Model
- Reading for next time
– OpenMP tutorial: look through secns 3-5 plus secn 6 up to exercise 1
Shared Memory Multiprocessing (2) COMP 633 - Prins
COMP 633 - Parallel Computing Lecture 7 September 3, 2020 SMM (2) - - PowerPoint PPT Presentation
COMP 633 - Parallel Computing Lecture 7 September 3, 2020 SMM (2) OpenMP Programming Model Reading for next time OpenMP tutorial: look through secns 3-5 plus secn 6 up to exercise 1 COMP 633 - Prins Shared Memory Multiprocessing
Shared Memory Multiprocessing (2) COMP 633 - Prins
2
Shared Memory Multiprocessing (2) COMP 633 - Prins
3
Shared Memory Multiprocessing (2) COMP 633 - Prins
4
Shared Memory Multiprocessing (2) COMP 633 - Prins
5
Shared Memory Multiprocessing (2) COMP 633 - Prins
6
Shared Memory Multiprocessing (2) COMP 633 - Prins
7
Shared Memory Multiprocessing (2) COMP 633 - Prins
8
Shared Memory Multiprocessing (2) COMP 633 - Prins
9
Shared Memory Multiprocessing (2) COMP 633 - Prins
10
Shared Memory Multiprocessing (2) COMP 633 - Prins
11
Shared Memory Multiprocessing (2) COMP 633 - Prins
12
Shared Memory Multiprocessing (2) COMP 633 - Prins
13
Shared Memory Multiprocessing (2) COMP 633 - Prins
#include <stdio.h> #include <omp.h> #define N 50000000 #define NITER 100 double a[N],b[N]; main () { double t1,t2,td; int i, t, max_threads, niter; max_threads = omp_get_max_threads(); printf("Initializing: N = %d, max # threads = %d\n", N, max_threads); #pragma omp parallel private(i,t) { // start parallel region /* * initialize arrays */ #pragma omp for for (i = 1; i < N; i++){ a[i] = 0.0; b[i] = 0.0; } #pragma omp master a[0] = b[0] = 1.0;
14
Shared Memory Multiprocessing (2) COMP 633 - Prins
15
Shared Memory Multiprocessing (2) COMP 633 - Prins
16
Shared Memory Multiprocessing (2) COMP 633 - Prins
17
Shared Memory Multiprocessing (2) COMP 633 - Prins
0.0 10.0 20.0 30.0 40.0 50.0 60.0 70.0 2 4 6 8 10 12 14 16 18 20 22 24 time per elt (ns) number of processors
n = 10,000,000 n = 1,000,000
18
0.0 500.0 1000.0 1500.0 2000.0 2500.0 2 4 6 8 10 12 14 16 18 20 22 24 number of processors MFLOP / second n = 10,000,000 n = 1,000,000
Shared Memory Multiprocessing (2) COMP 633 - Prins
19
Shared Memory Multiprocessing (2) COMP 633 - Prins
5 10 15 20 25 30 35 2 4 6 8 10 12 14 16 18 20 22 24
speedup number of processors
p n = 1,000,000 n = 10,000,000
20
Shared Memory Multiprocessing (2) COMP 633 - Prins
21
Shared Memory Multiprocessing (2) COMP 633 - Prins
number of processors speedup
22
Shared Memory Multiprocessing (2) COMP 633 - Prins
23
Shared Memory Multiprocessing (2) COMP 633 - Prins
500 1000 1500 2000 2500 3000 2 4 6 8 10 12 14 16 18 20 22 24
MFLOP / second number of processors
n = 10,000,000 n = 1,000,000
24
Shared Memory Multiprocessing (2) COMP 633 - Prins
5 10 15 20 25 30 35 40 45 2 4 6 8 10 12 14 16 18 20 22 24
number of processors speedup
p n = 1,000,000 n = 10,000,000
25
Shared Memory Multiprocessing (2) COMP 633 - Prins
26
Shared Memory Multiprocessing (2) COMP 633 - Prins
27
Shared Memory Multiprocessing (2) COMP 633 - Prins