HiperBio aims at achieving high-performance exhaustive epistasis detection with datasets containing thousands of genetic markers and case-control samples. By evaluating interactions between Single Nucleotide Polymorphisms (SNPs), i.e. variations of nucleotides at specific positions in DNA, HiperBio can be used for assessing the statistical association between combinations of SNPs and the development of particular diseases. Such information contributes to boost the understanding of life-threatening diseases, having potential for helping in the selection of the most suitable healthcare services for both prevention and treatment.
For this application, the Intel oneAPI Data Parallel C++ (DPC++) programming model is being used for deployment on CPUs and GPUs from Intel and other vendors. Intel Advisor and Intel® VTune™ Profiler are also used to aid in the optimization of the application on the different targeted devices. In order to speed up the development process, an existing CUDA implementation has been ported to DPC++ relying on the Intel® oneAPI DPC++/C++ Compiler Tool.
Being built around open standards (C++, SYCL), Intel oneAPI DPC++ allows to execute the application for different type of devices and from different vendors, while maintaining the efficiency required for high-performance execution. Furthermore, the Intel DPC++ Compatibility Tool significantly accelerates the process of developing a high-performance DPC++ implementation from existing code.
The core methods employed to accelerate the searches can be used to achieve high-performance epistasis detection relying on a number of different objective scoring functions, making the application useful in the context of a wider range of use cases.
State-of-the-art performance achieved through efficient execution on CPU and GPU-based systems. This was achieved by relying on a set of optimizations to fully exploit the capabilities of modern CPUs and GPUs, such as cache blocking techniques to improve memory access pattern, and utilization of vector intrinsic to exploit the AVX2 and AVX512 capabilities of current Intel CPUs.