没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
Technical Report Improvement of Fitch functionfor Maximum Parsimony in Phylogenetic Reconstructionwith Intel AVX2 assembler instructionsResearch Lab: LERIA TR20130624-1Version 1.0 24 June 2013JEAN-M ICHEL RICHER Office: H206 Address: 2 Boulevard Lavoisier, 49045 Angers Cedex 01 Phone: (+33) (0)2-41-73-52-34 Email: jean-michel.richer@univ-angers.frAbstractThe Maximum Parsimony problem aims at reconstructing a phylogenetic tree from DNA, RNA or protein sequences while minimizing the number of evol
资源推荐
资源详情
资源评论
Technical Report
Improvement of Fitch function
for Maximum Parsimony
in Phylogenetic Reconstruction
with Intel AVX2 assembler instructions
Research Lab: LERIA
TR20130624-1
Version 1.0
24 June 2013
JEAN-MICHEL RICHER
Office: H206
Address: 2 Boulevard Lavoisier, 49045 Angers Cedex 01
Phone: (+33) (0)2-41-73-52-34
Email: jean-michel.richer@univ-angers.fr
Abstract
The Maximum Parsimony problem aims at reconstructing a phylogenetic tree from DNA,
RNA or protein sequences while minimizing the number of evolutionary changes. Much
work has been devoted by the Computer Science community to solve this NP-complete prob-
lem and many techniques have been used or designed in order to decrease the computation
time necessary to obtain an acceptable solution. In this paper we report an improvement of the
evaluation of the Fitch function for Maximum Parsimony using AVX2 assembler instruction
of Intel
TM
processors.
1 Introduction
This report is an extension of the technical report TR20080428-1 by the same author. We give here a new
version of the assembler code and we have performed some tests on an Intel Haswell processor to verify if
the AVX2 assembler instruction set gave any improvement over SSE2. For more details we refer the reader
to the technical report TR20080428-1.
1.1 Software improvement using AVX2 instructions
The release of the new Haswell architecture of Intel processor in June 2013 led to the introduction of
AVX2 (Advanced Vector Extensions, version 2) assembler instructions. With AVX, introduced in 2008, the
width of the SIMD registers is increased from 128 bits to 256 bits and the SSE registers xmm0-xmm15 are
renamed to ymm0-ymm15 for a 64 bits architecture.
AVX2 extensions like SSE2 (Streaming SIMD Extensions) instructions of modern x86 processors (Intel,
AMD) help vectorize the code, i.e. apply the same instruction on multiple data at the same time conse-
quently reducing the overall execution time.
In our implementation of phylogenetic reconstruction with Maximum Parsimony using Fitch criterion,
the main function that benefits from the use of vectorization is the computation of a hypothetical parsimony
sequence from two existing sequences. The C code of this function is given figure 1 and takes as input two
sequences x and y of a given size. The outputs are the hypothetical taxon z and the number of changes
(or differences) returned by the function.
1 int fitch(char x[], char y[], char z[], int size) {
2 int i, changes=0;
3 for (i = 0; i < length; ++i) {
4 z[i] = x[i] & y[i];
5 if (z[i] == 0) {
6 ++changes;
7 z[i] = x[i] | y[i];
8 }
9 }
10 return changes;
11 }
Figure 1: Fitch Parsimony function
Modern compiler (gcc GNU, icc Intel) are not able to vectorize the code of this function efficiently if
no implementation specific information is provided. It is then necessary to code the function in assembler
to get a significant improvement during the execution of the program.
The implementation with AVX2 is nearly the same as the one given in report TR20080428-1 for SSE2:
1. we first load into registers ymm0 and ymm1 the first 32 bytes of each taxon (x and y)
2. in ymm2 and ymm3, we respectively compute the binary-AND and the binary-OR of ymm0 and
ymm1 using instructions vpand and vpor (for parallel AND and parallel OR).
2
剩余6页未读,继续阅读
资源评论
weixin_38584642
- 粉丝: 5
- 资源: 945
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于Java和Python的垃圾图像分类系统.zip
- (源码)基于Spring Boot和Beetl的代码生成管理系统.zip
- (源码)基于低功耗设计的无线互呼通信系统.zip
- (源码)基于Arduino的盲人碰撞预警系统.zip
- 自己学习java安全的一些总结,主要是安全审计相关.zip
- (源码)基于C++的多线程外部数据排序与归并系统.zip
- 编译的 FFmpeg 二进制 Android Java 库.zip
- 纯 Java git 解决方案.zip
- (源码)基于Spring Boot和Vue的后台管理系统.zip
- 用于将 Power BI 嵌入到您的应用中的 JavaScript 库 查看文档网站和 Wiki 了解更多信息 .zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功