|
|
|
|
|
|
|
|
|
|
|
| Partitioned Memory
Parallel Programming Library (PMLIB) |
|
|
|
| Based on BSP-RAMP:
Partitioned Memory Parallel Programming Framework |
|
|
|
| |
|
|
Prof.
Subodh Kumar |
Prof.
Sorav Bansal |
|
|
|
|
|
|
| Tarun Beri |
|
|
|
| Indian Institute of
Technology, Delhi |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Array Summation |
|
|
|
|
|
|
| Experimental
Configuration |
|
11 |
|
| Four 64-bit Ubuntu
Linux 8.04.2 Eight Core Machines [Intel Xeon CPU E5450 3.00 GHz with 16 GB
physical memory]; |
|
4 |
|
| Two machines have
one Tesla C1060 GPU Card each |
|
7 |
|
| Watch Dog/Kernel
Execution Timeout Disabled; mpiexec with 4 processes on different machines; |
|
|
|
| CUDA Version 3.1; OpenMPI Version 1.78;
OpenMP Version 3.0; gcc Version 4.2.4 |
|
|
|
| Equal task
partitioning among all processing elements |
|
|
|
|
| Array Length |
Computation
Time (in seconds) |
|
| |
Serial Task |
1 host CPU Task |
1 host GPU Task |
1 host Task
CPU+GPU |
Cluster CPU Task |
Cluster GPU Task |
Cluster Task
CPU+GPU |
|
| 5000000 |
11.450 |
1.621 |
0.56 |
1.81 |
0.74 |
0.69 |
1.01 |
|
| 6000000 |
13.53 |
2.01 |
0.56 |
2.08 |
0.88 |
0.72 |
1.10 |
|
| 7000000 |
15.77 |
2.19 |
0.58 |
2.45 |
1.02 |
0.71 |
1.24 |
|
| 8000000 |
18.11 |
2.53 |
0.67 |
2.69 |
1.29 |
0.74 |
1.50 |
|
| 9000000 |
20.36 |
2.90 |
0.59 |
2.90 |
1.26 |
0.77 |
1.53 |
|
| 10000000 |
22.66 |
3.22 |
0.58 |
3.20 |
1.38 |
0.80 |
1.69 |
|
| 20000000 |
45.16 |
6.27 |
0.91 |
6.02 |
2.75 |
1.04 |
2.89 |
|
| 30000000 |
67.83 |
9.36 |
1.11 |
8.93 |
4.13 |
1.52 |
4.18 |
|
| 40000000 |
90.35 |
12.67 |
Out of Threads |
11.70 |
5.52 |
1.85 |
5.40 |
|
| 50000000 |
112.51 |
15.62 |
Out of Threads |
14.95 |
6.79 |
2.18 |
6.72 |
|
| 60000000 |
135.76 |
19.19 |
Out of Threads |
17.47 |
8.58 |
2.52 |
8.10 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Comparison of
Serial and PMLIB Tasks |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Comparison of PMLIB
Tasks |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Comparison of
Serial Task, Fastest PMLIB Task and Slowest PMLIB Task |
|
| Array Length |
Computation
Time (in seconds) |
|
| |
Serial Task |
1 host CPU Task |
1 host GPU Task |
1 host Task
CPU+GPU |
Cluster CPU Task |
Cluster GPU Task |
Cluster Task
CPU+GPU |
Fastest PMLIB Task |
Slowest PMLIB Task |
|
| 5000000 |
11.450 |
1.621 |
0.56 |
1.81 |
0.74 |
0.69 |
1.01 |
0.557 |
1.81 |
|
| 6000000 |
13.53 |
2.01 |
0.56 |
2.08 |
0.88 |
0.72 |
1.10 |
0.56 |
2.08 |
|
| 7000000 |
15.77 |
2.19 |
0.58 |
2.45 |
1.02 |
0.71 |
1.24 |
0.58 |
2.45 |
|
| 8000000 |
18.11 |
2.53 |
0.67 |
2.69 |
1.29 |
0.74 |
1.50 |
0.67 |
2.69 |
|
| 9000000 |
20.36 |
2.90 |
0.59 |
2.90 |
1.26 |
0.77 |
1.53 |
0.59 |
2.90 |
|
| 10000000 |
22.66 |
3.22 |
0.58 |
3.20 |
1.38 |
0.80 |
1.69 |
0.58 |
3.22 |
|
| 20000000 |
45.16 |
6.27 |
0.91 |
6.02 |
2.75 |
1.04 |
2.89 |
0.91 |
6.27 |
|
| 30000000 |
67.83 |
9.36 |
1.11 |
8.93 |
4.13 |
1.52 |
4.18 |
1.11 |
9.36 |
|
| 40000000 |
90.35 |
12.67 |
Out of Threads |
11.70 |
5.52 |
1.85 |
5.40 |
1.85 |
12.67 |
|
| 50000000 |
112.51 |
15.62 |
Out of Threads |
14.95 |
6.79 |
2.18 |
6.72 |
2.18 |
15.62 |
|
| 60000000 |
135.76 |
19.19 |
Out of Threads |
17.47 |
8.58 |
2.52 |
8.10 |
2.52 |
19.19 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Fastest LPC Task |
Slowest LPC Task |
|
|
|
|
|
|
|
|
|
|
| Array Length |
Computation
Time (in seconds) |
% Speedup of PMLIB Task over Serial Task |
|
|
|
|
|
| |
Serial Task |
Fastest PMLIB Task |
Slowest PMLIB Task |
Fastest PMLIB Task |
Slowest PMLIB Task |
|
|
|
| 5000000 |
11.450 |
0.557 |
1.81 |
2053.98 |
633.85 |
|
| 6000000 |
13.53 |
0.56 |
2.08 |
2414.05 |
649.57 |
|
| 7000000 |
15.77 |
0.58 |
2.45 |
2733.08 |
643.98 |
|
| 8000000 |
18.11 |
0.67 |
2.69 |
2689.40 |
673.30 |
|
Max PMLIB Speedup over Serial Task |
|
| 9000000 |
20.36 |
0.59 |
2.90 |
3463.94 |
701.62 |
|
61.13x |
|
| 10000000 |
22.66 |
0.58 |
3.22 |
3938.72 |
702.95 |
|
| 20000000 |
45.16 |
0.91 |
6.27 |
4948.60 |
720.76 |
|
| 30000000 |
67.83 |
1.11 |
9.36 |
6113.03 |
724.42 |
|
| 40000000 |
90.35 |
1.85 |
12.67 |
4876.80 |
712.88 |
|
| 50000000 |
112.51 |
2.18 |
15.62 |
5158.46 |
720.50 |
|
| 60000000 |
135.76 |
2.52 |
19.19 |
5394.41 |
707.55 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
PMLIB Tasks
slower than Serial Task |
PMLIB Tasks
faster than Serial Task |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
|
|
|
|
|
|
|
|
|
|
|