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 | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||