GapsMis-d. This application is designed to be able to, not just take advantage of mul- tiple GPU devices, but can also distribute work evenly based on the global memory capacities of available GPUs. In essence, GPU devices with larger global memory are given more work in the form of a larger batch size than others with a smaller memory capacity. The aim is to have as much work as possible in the GPU devices in order to minimize eective latency incurred during device-host communications. In this case, the total number of pairs to be aligned is distributed among available GPU devices based on this condition.
Figure 6.53 shows the results based on throughput of GapsMis-d when using a single
Chapter 6. Parallel Algorithms for Heterogeneous Systems with GPGPUs 154 0 0.45 0.9 1.35 1.8 2.25 2.7 3.15 3.6 4.05 4.5 10,000 20,000 40,000 80,000 160,000 320,000 640,000 1,280,000 2,560,000 5,120,000 Throughput (GCUPS)
Total number of pairs
Throughput for single GPU vs. dual GPU execution of GapsMis allowing 3 gaps in alignment (text width = 250, pattern width = 150)
GTX 680 Single GTX 680 Dual HD 7970 Single HD 7970 Dual GTX 650 Single GTX 650 Dual HD 7750 Single HD 7750 Dual
(a) 250×150, 3 gaps (throughput)
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 2.2 10,000 20,000 40,000 80,000 160,000 320,000 640,000 1,280,000 2,560,000 5,120,000 Ratio
Total number of pairs
Comparison of single GPU vs. dual GPU performance of GapsMis in terms of throughput. (text width = 250, pattern width = 150, gaps = 3)
NVIDIA GTX 680 AMD HD 7970 NVIDIA GTX 650 AMD HD 7750
(b) 250×150, 3 gaps (ratio)
When we consider Figure6.54(b)and Figure6.54(d)that quantify the performance dier-
scales better on the NVIDIA GPUs. We record a boost in throughput of around 80% to over 100% for the mid-range NVIDIA GTX 650 in dual GPU mode. In general, the results are very impressive and promising as we observe a boost in throughput of around
60%to over 100% when running GapsMis-d in dual GPU mode for all GPU devices.
For a tool like GapsMis-d with the potential to be a very practical tool among software used for alignment and sequencing, it is good to see that the application can scale properly and perform better when more GPU devices are available to it. This becomes very viable and useful especially when the amount of alignment task is huge.
DPS-d. The rst layer of parallelism in DPS-d is achieved by mapping each machine to a work-group. As we already know by now, the higher the number work-groups that can execute concurrently the quicker the GPU can complete a compute task. Therefore, DPS-d takes advantage of multiple GPU devices such that the number of machines in the problem is distributed across the combined work-groups dened on all GPU devices. However, the addition of more GPU devices does not always necessarily translate to a boost in performance due to reasons that relate to the problem instance. We hope to demonstrate this and analyse the reason why this could be the case for DPS-d. We present the results comparing the throughput of DPS-d in single GPU mode with with
the throughput when using dual GPU devices in Figures6.54and 6.55.
Let us focus our attention on the high-end GPUs, GTX 680 and HD 7970. We observe that there is not much performance gain in adding a second GPU when the number of machines is below 256 for the HD 7970 and 128 for the GTX 680. For instance, when the number of machines is 16, the NVIDIA GTX 680 GPU achieves 10% more throughput in single GPU conguration compared to the dual GPU conguration. This is not particularly surprising because these two GPU devices have enough compute units to accommodate that many work-groups running concurrently. For this reason, a single GPU still oers the same (or even better) performance than dual GPU devices. Then when the number of machines is large enough we begin to notice a considerable boost in performance of up to 85%, or even above 100%, as is the case with the mid-range GTX
650 GPU, as shown in Figure6.54(b)and Figure6.55(b). In general, the overall results
demonstrate that when the problem instance is large enough, DPS-d can scale well with the addition of more GPU devices.
FDGV-d. In order to take advantage of a second GPU, we simply share the total number of vertices and edges between the two GPU devices. As we observed earlier in the analysis of DPS-d with regards to the relationship between problem size and GPU device usage, using more than one GPU when the size of the graph is small will only aect performance
Chapter 6. Parallel Algorithms for Heterogeneous Systems with GPGPUs 156
in a negative way. This is illustrated in the results shown in Figure 6.56, especially for
our complete graph sample.
Figure 6.56(b) shows that our complete graph sample is too small to benet from an
extra GPU, thus demonstrating the fact that adding extra GPU devices will not always yield a boost in performance. From a general point of view, these results show that the GPU devices are capable of handling these graphs when running in a single device mode. This is conrmed when we observe the results for the GPU with the least amount of compute resources, that is, the GTX 650. When two GTX 650 GPU devices are used we gain a performance boost in throughput of up to 100%. The other GPUs gain around 50% to 70% in performance suggesting that the combined compute resources on both GPUs have not been saturated yet.
Conclusion. In this section we investigate how applications can scale with the addition of more GPU devices. The results obtain are consistent for each type of application and the rate at which these applications scale is nearly linear in the number of GPU devices used. In some few cases we even observed performance improvement of over 100% when running with two GPUs. However, the amount of performance boost achievable is still strongly related to the application.