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 | |||||||||||||||||||||||||||||||||||||||||||||||||
N-Body Simulation | |||||||||||||||||||||||||||||||||||||||||||||||||
Experimental Configuration | 7 | ||||||||||||||||||||||||||||||||||||||||||||||||
Four 64-bit Ubuntu Linux 8.04.2 Eight Core Machines [Intel Xeon CPU E5450 3.00 GHz with 16 GB physical memory]; | 3 | ||||||||||||||||||||||||||||||||||||||||||||||||
Two machines have one Tesla C1060 GPU Card each | 5 | ||||||||||||||||||||||||||||||||||||||||||||||||
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 | |||||||||||||||||||||||||||||||||||||||||||||||||
100 iterations | |||||||||||||||||||||||||||||||||||||||||||||||||
N-Bodies | 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 |
|||||||||||||||||||||||||||||||||||||||||||
1000 | 2.16 | 0.40 | 24.20 | 24.41 | 0.39 | 12.23 | 12.25 | ||||||||||||||||||||||||||||||||||||||||||
5000 | 54.60 | 7.20 | 24.20 | 30.18 | 2.93 | 12.61 | 13.20 | ||||||||||||||||||||||||||||||||||||||||||
10000 | 217.00 | 28.40 | 24.40 | 48.16 | 9.60 | 13.07 | 17.35 | ||||||||||||||||||||||||||||||||||||||||||
20000 | 872.00 | 110.80 | 24.70 | 126.44 | 32.67 | 13.94 | 46.67 | ||||||||||||||||||||||||||||||||||||||||||
30000 | 1942.00 | 248.90 | 25.20 | 255.03 | 68.50 | 14.83 | 92.35 | ||||||||||||||||||||||||||||||||||||||||||
50000 | 5457.00 | 689.90 | 26.40 | 669.11 | 182.31 | 16.70 | 200.62 | ||||||||||||||||||||||||||||||||||||||||||
100000 | 2197864.00 | 2751.00 | 29.80 | 2607.66 | 739.27 | 21.92 | 694.71 | ||||||||||||||||||||||||||||||||||||||||||
Comparison of Serial and PMLIB Tasks | |||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||
Comparison of PMLIB Tasks | |||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
Comparison of Serial Task, Fastest PMLIB Task and Slowest PMLIB Task | |||||||||||||||||||||||||||||||||||||||||||||||||
N-Bodies | 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 | |||||||||||||||||||||||||||||||||||||||||
1000 | 2.160 | 0.400 | 24.20 | 24.41 | 0.39 | 12.23 | 12.25 | 0.393 | 24.41 | ||||||||||||||||||||||||||||||||||||||||
5000 | 54.60 | 7.20 | 24.20 | 30.18 | 2.93 | 12.61 | 13.20 | 2.93 | 30.18 | ||||||||||||||||||||||||||||||||||||||||
10000 | 217.00 | 28.40 | 24.40 | 48.16 | 9.60 | 13.07 | 17.35 | 9.60 | 48.16 | ||||||||||||||||||||||||||||||||||||||||
20000 | 872.00 | 110.80 | 24.70 | 126.44 | 32.67 | 13.94 | 46.67 | 13.94 | 126.44 | ||||||||||||||||||||||||||||||||||||||||
30000 | 1942.00 | 248.90 | 25.20 | 255.03 | 68.50 | 14.83 | 92.35 | 14.83 | 255.03 | ||||||||||||||||||||||||||||||||||||||||
50000 | 5457.00 | 689.90 | 26.40 | 669.11 | 182.31 | 16.70 | 200.62 | 16.70 | 689.90 | ||||||||||||||||||||||||||||||||||||||||
100000 | 2197864.00 | 2751.00 | 29.80 | 2607.66 | 739.27 | 21.92 | 694.71 | 21.92 | 2751.00 | ||||||||||||||||||||||||||||||||||||||||
Fastest LPC Task | Slowest LPC Task | ||||||||||||||||||||||||||||||||||||||||||||||||
N-Bodies | 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 | |||||||||||||||||||||||||||||||||||||||||||||
1000 | 2.160 | 0.393 | 24.41 | 549.62 | 8.85 | ||||||||||||||||||||||||||||||||||||||||||||
5000 | 54.60 | 2.93 | 30.18 | 1864.12 | 180.91 | ||||||||||||||||||||||||||||||||||||||||||||
10000 | 217.00 | 9.60 | 48.16 | 2260.18 | 450.59 | ||||||||||||||||||||||||||||||||||||||||||||
20000 | 872.00 | 13.94 | 126.44 | 6256.73 | 689.67 | Max PMLIB Speedup over Serial Task | |||||||||||||||||||||||||||||||||||||||||||
30000 | 1942.00 | 14.83 | 255.03 | 13092.43 | 761.47 | 100253.8x | |||||||||||||||||||||||||||||||||||||||||||
50000 | 5457.00 | 16.70 | 689.90 | 32676.65 | 790.98 | ||||||||||||||||||||||||||||||||||||||||||||
100000 | 2197864.00 | 21.92 | 2751.00 | 10025379.74 | 79893.28 | ||||||||||||||||||||||||||||||||||||||||||||
PMLIB Tasks slower than Serial Task | PMLIB Tasks faster than Serial Task | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||