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