| Literature DB >> 19630950 |
Nicholas A Sinnott-Armstrong1, Casey S Greene, Fabio Cancare, Jason H Moore.
Abstract
BACKGROUND: Human geneticists are now capable of measuring more than one million DNA sequence variations from across the human genome. The new challenge is to develop computationally feasible methods capable of analyzing these data for associations with common human disease, particularly in the context of epistasis. Epistasis describes the situation where multiple genes interact in a complex non-linear manner to determine an individual's disease risk and is thought to be ubiquitous for common diseases. Multifactor Dimensionality Reduction (MDR) is an algorithm capable of detecting epistasis. An exhaustive analysis with MDR is often computationally expensive, particularly for high order interactions. This challenge has previously been met with parallel computation and expensive hardware. The option we examine here exploits commodity hardware designed for computer graphics. In modern computers Graphics Processing Units (GPUs) have more memory bandwidth and computational capability than Central Processing Units (CPUs) and are well suited to this problem. Advances in the video game industry have led to an economy of scale creating a situation where these powerful components are readily available at very low cost. Here we implement and evaluate the performance of the MDR algorithm on GPUs. Of primary interest are the time required for an epistasis analysis and the price to performance ratio of available solutions.Entities:
Year: 2009 PMID: 19630950 PMCID: PMC2732631 DOI: 10.1186/1756-0500-2-149
Source DB: PubMed Journal: BMC Res Notes ISSN: 1756-0500
Execution Time
| Data set size | Host | Time 1 | Time 2 | Time 3 | Avg time | Std. dev time |
|---|---|---|---|---|---|---|
| 1600 × 1000 | 3 GPU | 72.639 | 72.649 | 72.611 | 72.633 | 0.016 |
| 1600 × 1000 | 2 GPU | 102.243 | 102.228 | 102.276 | 102.249 | 0.020 |
| 1600 × 1000 | 1 GPU | 193.319 | 193.243 | 193.207 | 193.256 | 0.047 |
| 1600 × 1000 | 8 core (Java) | 11676.730 | 13782.761 | 9766.305 | 11741.932 | 1640.359 |
| 1600 × 1000 | 4 core (Java) | 18656.208 | 19251.764 | 14188.972 | 17365.648 | 2259.369 |
| 1600 × 1000 | 4 core (C++; cluster) | 2664.016 | 2198.369 | 2306.662 | 2389.682 | 198.957 |
| 1600 × 1000 | 16 core (C++; cluster) | 669.783 | 668.732 | 660.090 | 666.202 | 4.343 |
| 1600 × 1000 | 32 core (C++; cluster) | 335.186 | 301.622 | 359.725 | 332.178 | 23.816 |
| 1600 × 1000 | 80 core (C++; cluster) | 129.589 | 129.171 | 129.815 | 129.525 | 0.267 |
| 1600 × 1000 | 150 core (C++; cluster) | 67.660 | 69.814 | 69.938 | 69.137 | 1.046 |
The execution times of various hosts calculating all three-way interactions of a particular data set. The times are all as reported by the Unix time(1) command.
Figure 1Execution time comparison. A comparison of the execution times of three-way detection in a 1600 × 1000 data set for GPU and cluster MDR platforms. The Java implementation running on workstations is not included because it performs relatively poorly and inclusion makes distinguishing the performance of the GPU and cluster implementations difficult.
Server cost and price to performance ratio
| Solution | Cost | Average time | Price to performance |
|---|---|---|---|
| 8-core CPU | 13750 | 11742.000 | 1.0000 |
| 4-core CPU | 5000 | 17366.000 | 1.8594 |
| 4 core cluster | 2200 | 2389.700 | 30.710 |
| 16 core cluster | 8800 | 666.200 | 27.540 |
| 32 core cluster | 17600 | 332.180 | 27.616 |
| 80 core cluster | 44000 | 129.530 | 28.328 |
| 150 core cluster | 82500 | 69.137 | 28.306 |
| 1 GPU | 970.94 | 193.260 | 860.42 |
| 2 GPU | 1320.93 | 102.250 | 1195.4 |
| 3 GPU | 1670.92 | 72.633 | 1330.3 |
This is a comparison between the different solutions, taking into account their cost and scaled for the price to performance ratio of the 8-core server running Java. The cluster costs derive from a base cost of $4400 for an eight core node.