update
This commit is contained in:
parent
7c8fa8de85
commit
55fc00a62e
@ -11,7 +11,7 @@ void reverseComplement(char *begin, char *end)
|
|||||||
};
|
};
|
||||||
|
|
||||||
std::reverse(begin, end); //翻转DNA序列
|
std::reverse(begin, end); //翻转DNA序列
|
||||||
|
|
||||||
for (ptrdiff_t i = 0; i < (end - begin); ++i) {
|
for (ptrdiff_t i = 0; i < (end - begin); ++i) {
|
||||||
static int _ = (zt::print(NAME_VALUE(omp_get_num_threads()),"\n"),0); // 打印线程数量
|
static int _ = (zt::print(NAME_VALUE(omp_get_num_threads()),"\n"),0); // 打印线程数量
|
||||||
auto it = complement.find(begin[i]);
|
auto it = complement.find(begin[i]);
|
||||||
@ -28,7 +28,7 @@ int main()
|
|||||||
|
|
||||||
//参数列表 <文件分块内存大小,单个DNA序列最长大小>("输入文件名","输出文件名",序列处理函数);
|
//参数列表 <文件分块内存大小,单个DNA序列最长大小>("输入文件名","输出文件名",序列处理函数);
|
||||||
//这个函数在src/tools/dna里面
|
//这个函数在src/tools/dna里面
|
||||||
dna::open_file_and_calculate<(size_t)4 * 1024 * 1024 *1024 , (size_t)5e4+5>("filteredReads.txt", "reversedSequence.txt",reverseComplement);
|
dna::open_file_and_calculate<(size_t)100 * 1024 *1024 , (size_t)5e4+5>("filteredReads.txt", "reversedSequence.txt",reverseComplement);
|
||||||
|
|
||||||
}catch(const std::exception &e){
|
}catch(const std::exception &e){
|
||||||
zt::eprint(
|
zt::eprint(
|
||||||
|
@ -127,7 +127,8 @@ namespace dna {
|
|||||||
// 确保每个任务只操作属于它的独立数据
|
// 确保每个任务只操作属于它的独立数据
|
||||||
if (get_lines_add()) {
|
if (get_lines_add()) {
|
||||||
// 为每一块数据创建一个任务
|
// 为每一块数据创建一个任务
|
||||||
#pragma omp task firstprivate(start, end)
|
#pragma omp task
|
||||||
|
// #pragma omp task firstprivate(start, end)
|
||||||
{
|
{
|
||||||
reverseComplement(start, end); // 任务内处理反转互补
|
reverseComplement(start, end); // 任务内处理反转互补
|
||||||
}
|
}
|
||||||
@ -135,15 +136,14 @@ namespace dna {
|
|||||||
|
|
||||||
start_pos = end_pos + 1;
|
start_pos = end_pos + 1;
|
||||||
}
|
}
|
||||||
|
// // 等待所有任务完成
|
||||||
// 等待所有任务完成
|
// #pragma omp taskwait
|
||||||
#pragma omp taskwait
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// while((end_pos=buf_str_v.find('\n',start_pos)) != std::string_view::npos){
|
// while((end_pos=buf_str_v.find('\n',start_pos)) != std::string_view::npos){
|
||||||
// if(get_lines_add()){
|
// if(get_lines_add()){
|
||||||
// reverseComplement(buf.data()+start_pos, buf.data()+end_pos); //我想要这个函数并行优化
|
// reverseComplement(buf.data()+start_pos, buf.data()+end_pos); //这个函数并行优化
|
||||||
// }
|
// }
|
||||||
// // lines=!lines;
|
// // lines=!lines;
|
||||||
// start_pos=end_pos+1;
|
// start_pos=end_pos+1;
|
||||||
|
Loading…
Reference in New Issue
Block a user