Optimizing EDDY-GPU to improve accuracy and performance
Evaluation of Differential Dependency (EDDY) is a statistical test to determine differential dependencies in a set of target genes between two conditions and has been successfully utilized in many analyses of cancer genomics data. However, EDDY’s computationally intensive nature restricts the data set sizes researchers can evaluate. Relief from this computational burden has presented itself in the form of parallel computing on the Graphical Processing Unit (GPU) architecture, as GPU’s possess thousands of computational cores that can reduce EDDY’s computational burden by processing calculations in parallel. Proven feasible by Rodriguez and Speyer’s significant speed-ups in their prototype implementation, we propose modifications to EDDY-GPU to augment performance and accuracy, allowing larger data sets to be analyzed with confidence. Modifications to EDDY-GPU consisted of algorithmic changes, code optimizations, and the addition of new features. Enhancements to the graph construction algorithm removed unnecessary calculations from the DDN construction process. Utilization of shared memory within the GPU routines reduced the amount of time required to read and calculate data. Additional features from the original EDDY, such as permutation testing and prior knowledge of gene relationships, were also implemented to move the GPU code closer to the original Java code. With these modifications, we witnessed speed-ups up to 550x in comparison to run times of the original version. These speed-ups are hugely impactful; a five thousand sample pan-cancer data set that was previously impossible to run on Java EDDY is now analyzable within 5 minutes via EDDY-GPU. Changes to the DDN construction algorithm also increased accuracy so that EDDY-GPU’s results on synthetic data were observed as consistent with Java EDDY. With these significant gains in performance, it is now feasible to begin analyzing full TCGA datasets.