[Background]\ud In the last few years, the Non-negative Matrix Factorization\ud (\ud NMF\ud ) technique has gained a great interest among the Bioinformatics community, since it is able to extract interpretable parts from high-dimensional datasets. However, the computing time required to process large data matrices may become impractical, even for a parallel application running on a multiprocessors cluster.\ud In this paper, we present NMF-mGPU, an efficient and easy-to-use implementation of the NMF algorithm that takes advantage of the high computing performance delivered by Graphics-Processing Units\ud (\ud GPUs\ud ). Driven by the ever-growing demands from the video-games industry, graphics cards usually provided in PCs and laptops have evolved from simple graphics-drawing platforms into high-performance programmable systems that can be used as coprocessors for linear-algebra operations. However, these devices may have a limited amount of on-board memory, which is not considered by other NMF implementations on GPU.\ud \ud \ud [Results]\ud \ud NMF-mGPU is based on CUDA\ud (\ud Compute Unified Device Architecture\ud ), the NVIDIA’s framework for GPU computing. On devices with low memory available, large input matrices are blockwise transferred from the system’s main memory to the GPU’s memory, and processed accordingly. In addition, NMF-mGPU has been explicitly optimized for the different CUDA architectures. Finally, platforms with multiple GPUs can be synchronized through MPI\ud (\ud Message Passing Interface\ud ). In a four-GPU system, this implementation is about 120 times faster than a single conventional processor, and more than four times faster than a single GPU device (i.e., a super-linear speedup).\ud \ud \ud [Conclusions]\ud Applications of GPUs in Bioinformatics are getting more and more attention due to their outstanding performance when compared to traditional processors. In addition, their relatively low price represents a highly cost-effective alternative to conventional clusters. In life sciences, this results in an excellent opportunity to facilitate the daily work of bioinformaticians that are trying to extract biological meaning out of hundreds of gigabytes of experimental information. NMF-mGPU can be used “out of the box” by researchers with little or no expertise in GPU programming in a variety of platforms, such as PCs, laptops, or high-end GPU clusters. NMF-mGPU is freely available at \ud https://github.com/bioinfo-cnb/bionmf-gpu\ud \ud .
展开▼
机译:[背景] \ ud近年来,非负矩阵分解\ ud(\ ud NMF \ ud)技术在生物信息学界引起了极大兴趣,因为它能够从高维数据集中提取可解释的部分。 。但是,即使对于在多处理器集群上运行的并行应用程序,处理大型数据矩阵所需的计算时间也可能变得不切实际。\ ud本文中,我们介绍了NMF-mGPU,这是NMF的一种高效且易于使用的实现。该算法利用了图形处理单元\ ud(\ ud GPU \ ud)提供的高性能计算性能。在视频游戏行业不断增长的需求推动下,通常在PC和笔记本电脑中提供的图形卡已经从简单的图形绘制平台发展成为可以用作线性代数运算协处理器的高性能可编程系统。但是,这些设备的板载内存可能有限,GPU上的其他NMF实现均未考虑这些内存。\ ud \ ud \ ud [结果] \ ud \ ud NMF-mGPU基于CUDA \ ud(\ ud计算统一设备体系结构(ud),这是NVIDIA的GPU计算框架。在内存不足的设备上,较大的输入矩阵会从系统的主内存分块传输到GPU的内存,并进行相应的处理。此外,NMF-mGPU已针对不同的CUDA架构进行了显式优化。最后,具有多个GPU的平台可以通过MPI \ ud(\ ud Message Passing Interface \ ud)进行同步。在四GPU系统中,此实现比单个常规处理器快120倍,比单个GPU设备快四倍(即超线性加速)。\ ud \ ud \ ud [结论] \ ud与传统处理器相比,GPU在生物信息学中的应用由于其出色的性能而受到越来越多的关注。此外,它们相对较低的价格代表了传统集群的极具成本效益的替代方案。在生命科学中,这为促进生物信息学家的日常工作提供了绝佳的机会,他们正试图从数百GB的实验信息中提取生物学意义。对于在各种平台(例如PC,笔记本电脑或高端GPU集群)中进行GPU编程的专业知识很少或没有专门知识的研究人员,可以“开箱即用”使用NMF-mGPU。 NMF-mGPU可从\ ud https://github.com/bioinfo-cnb/bionmf-gpu\ud \ ud免费获得。
展开▼