博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【G-BLASTN 1.0正式发布】
阅读量:6116 次
发布时间:2019-06-21

本文共 865 字,大约阅读时间需要 2 分钟。

【G-BLASTN 1.0正式发布】G-BLASTN使用GPU来加速NCBI-BLAST里的BLASTN模块,单块GTX780比四核CPU平均快6倍。

基于NCBI的BLAST源代码进行修改,150多万行的开源代码,刚开始做的时候,并没有引起太多的注意,只是觉得工程庞大,越到后面,越觉得,这个东西太庞大了,里面参杂了C和C++的不同方式的设计模式,找一个功能实现,可能需要翻阅20-30个文件,整个工程太过庞大,BLASTN一个模块,子工程就有179个,每一个工程之间也有调用;

不过也很佩服BLSAT的开发者们,这个工程已经维护了30多年了,有一种说法是比windows的年龄都大,这么庞大的开源项目,里面的设计模式还是相当的清晰,只是调度过程有些冗余罢了。

之前太多的时间浪费在了繁杂的事情上,从去年开始回归,专注于科研,把BLATN作为了第一个目标,本应该在2009年做的一个项目,到了2012年,才算真正拿起来做了,一年的在实验室不分昼夜,基本上杜绝一切的聚会活动,整个过程的艰辛只有自己清楚,再说,要想成功,又哪有那么容易啦?

blastn的整个代码过程分析花了无数个草图,无数个分析文档,有幸拿到的有关BLAST的设计文档也只是从概念上加上文字上的分析,没有整个框架的设计图,没有每一个模块的调度图,都是一行代码一行代码跟踪出来的。这个过程对于学习别人的代码,有了更深层次的了解,对于发文章而言,只需要修改几个核心函数,不用管太多的框架问题,但是真正要做到开源的项目做成成品的时候,就尽量遵循已有的规则,按照以后的框架来修改代码。这样对后来修改的朋友,也是一种交代。

一年多的代码修改,用svn工具统计了一下,差不多前前后后修改了5万多行代码,也算是一个学习的过程吧。

BLAST的框架适合在windows上开发,然后在LINUX上做测试,这次过程中,不只是修改了核心的比对部分的代码,还调整了框架,调整了IO部分,调整了冗余部分,对于一个软的优化而言,永远都是一个迭代的过程,热点不停的转变,最终达到理想的最优态。

 

 

转载地址:http://cnvka.baihongyu.com/

你可能感兴趣的文章
Python基础班---第一部分(基础)---Python基础知识---计算机组成原理
查看>>
虚拟机VMware 9安装苹果MAC OSX 10.8图文教程
查看>>
POJ3694 Network
查看>>
微信小程序开发-框架
查看>>
redo、undo、binlog的区别
查看>>
DropDownList 控制日期控件显示格式
查看>>
RecycleView设置顶部分割线(记录一个坑)
查看>>
【设计模式系列】单例模式的7种写法
查看>>
汉字转拼音 (转)
查看>>
Machine Learning Techniques -6-Support Vector Regression
查看>>
会计基础_001
查看>>
Cordova 开发环境搭建及创建第一个app
查看>>
ajax请求拿到多条数据拼接显示在页面中
查看>>
小程序: 查看正在写的页面
查看>>
dedecms生成文档数据库崩溃 mysql daemon failed to start
查看>>
Linux的50个基本命令
查看>>
Objective-C中创建单例方法的步骤
查看>>
Codeforces 520B:Two Buttons(思维,好题)
查看>>
Jenkins持续集成环境部署
查看>>
emoji等表情符号存mysql的方法
查看>>