英特尔oneAPI—开发生物序列聚类工具

摘要

本文介绍了基于oneAPI平台开发的生物序列聚类应用,文章结构如下。

应用背景:这里介绍聚类应用nGIA,介绍了为什么开发这个应用,以及它解决了什么问题。这部分非生信领域的同学可以跳过。

如何入门oneAPI:结合我自己的经历,介绍了一条从零开始学习oneAPI的路径。

CUDA代码移植与原生代码开发:结合开发应用的经验,介绍了从CUDA移植到oneAPI时候踩的一些坑,以及为什么推荐写原生的代码。

oneAPI的跨平台特性:用实际的应用,把oneAPI代码跑在nvidia的GPU上。展示了oneAPI的跨平台特性,介绍了开发跨平台代码的时候需要避免哪些问题。

应用背景

首先介绍一下生物序列聚类。序列聚类也就是序列去冗余工作,比较著名的应用有CD-HIT,Uclust,Linclust等。相关领域的同学应该都知道,聚类是生信领域基础且重要的工具。那些被广泛使用的聚类工具,谷歌学术上可以看到,文章的引用都是过千甚至过万的,这也显示了聚类工具的重要和普遍。

目前的聚类工具得到的都是近似结果。Holm[1]在1998年提出了一种贪婪增量的聚类方法,这是可以产生金标准的方法。但是Holm的方法计算量太大,以至于运行时间长到无法接受,因此研究者们提出了各种改进算法,通过牺牲精度的方法换取计算速度的提升。我实际测试发现,速度越快的聚类工具,聚类结果的精度越低。

nGIA是一个能够进行准确聚类,且速度足够快的聚类工具集。Holm的方法能够得到聚类金标准,受限于计算量巨大而无法实现,随着GPU的发展目前算力已经足够充足了。其他聚类工具都是基于CPU平台的,所以可用算力很少。nGIA是基因超算平台的,利用GPU加速,通过MPI支持多节点,因此可用算力比其他应用高出几个数量级。通过充分利用超算的巨大算力,nGIA可以得到精确的聚类结果,且运行速度很快。同时nGIA也有可以运行在普通电脑上的单节点版本,利用GPU进行加速,即使用普通电脑依然比其他工具运行速度更快。nGIA支持蛋白序列和基因序列数据集的聚类,支持单节点和多节点,支持cuda和oneAPI。

具体算法可以参考相关论文,具体实现可以参考代码

[1]Holm L, Sander C. Removing near-neighbour redundancy from large protein sequence collections[J]. Bioinformatics (Oxford, England), 1998, 14(5): 423-429.

如何入门oneAPI

这部分我想结合我自己的经历,推荐给大家一条从零开始学习oneAPI的路径。最初我是听了oneAPI的线上讲座,开始对oneAPI产生兴趣。之后开始自己写代码,然后遇到问题就从零零碎碎的渠道一点一点学习。回头来看,我走了一些弯路,初始的学习也是不成体系的。现在整理了一下我走过的路,然后按照循序渐进的顺序推荐给大家,希望有帮助。

1. 首先关于oneAPI的介绍,我觉得有一篇

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值