Beyond just speed: how to be energy-efficient with gpus in bioinformatics

GPU
Bioinformatics
Performance
Energy efficiency

GPUs are fast, but they are power-hungry. We analyzed exactly when and how to get the most ‘performance per watt’ for key biomedical applications, and the answer isn’t just ‘buy a bigger gpu’.

Author

Juan Pérez, Andrés Rodríguez, Juan Francisco Chico, Domingo López-Rodríguez, Manuel Ujaldón

Published

1 December 2018

In bioinformatics, speed is critical. Using GPUs (Graphics Processing Units) to accelerate complex tasks like analyzing brain images or gene expressions is now standard practice. But this speed comes at a cost: energy consumption.

In our 2018 paper, published in Sustainable Computing: Informatics and Systems, we didn’t just ask “how fast can we go?” We asked, “how fast can we go efficiently?” We set out to find the sweet spot for “performance per watt”.


🧐 The problem: speed vs. sustainability

Biomedical applications (like neuroimaging or genomics) handle massive amounts of data. Accelerating them with GPUs is the obvious solution, but it presents a new challenge: high-performance GPUs can be power-hungry monsters.

How can we be fast without being wasteful? Is the biggest, most expensive GPU always the best choice? Or is there a smarter way to get the most computational power for every watt of energy we consume?

💡 Our solution: a massive benchmark

To answer this, we ran a complete, large-scale study. We took four popular and computationally heavy biomedical applications:

  1. Q-norm (for gene expression normalization)
  2. reg_f3d (for 3D image registration in NiftyReg)
  3. bedpostx (from the FSL neuroimaging package)
  4. Multi-tensor tractography (for analyzing diffusion images)

We then benchmarked them on a massive range of GPUs, from low-power Tegra chips to popular GeForces and high-end Titans. We didn’t just time them; we meticulously measured how much energy every operation consumed.

🚀 The results: it’s the software, not just the hardware

Our most important finding wasn’t a “magic GPU” that wins at everything. The most critical factor was the software itself.

We found that code with good “data locality” and “arithmetic intensity” was the most energy-efficient, regardless of the GPU it ran on.

In simple terms: how the code is written is more important than the hardware it runs on. A well-optimized algorithm that keeps data close to the processor (good locality) and performs many calculations for each piece of data it fetches (high intensity) will be incredibly efficient. A poorly optimized algorithm will be wasteful, even on an expensive GPU.

🔬 Why does this matter?

This work provides a clear guide for developers in bioinformatics and high-performance computing. It shows that to achieve fast and sustainable science, we can’t just buy bigger hardware.

The key is to invest in optimizing the code. This finding is crucial for building greener, more cost-effective, and more powerful data centers for scientific research.


📖 The full paper

For the complete breakdown of all four applications, the full list of GPUs tested, and the detailed analysis of data locality and performance metrics, you can read the original journal article.

Energy-aware acceleration on GPUs: Findings on a bioinformatics benchmark. Authors: Juan Pérez, Andrés Rodríguez, Juan Francisco Chico, Domingo López-Rodríguez, Manuel Ujaldón. Journal: Sustainable Computing: Informatics and Systems (vol. 20, pp. 88 – 101)

[DOI Link] | [Article Website]