diff --git a/src/main.cpp b/src/main.cpp index beb5f44..44c5000 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -11,7 +11,7 @@ void reverseComplement(char *begin, char *end) }; std::reverse(begin, end); //翻转DNA序列 - + for (ptrdiff_t i = 0; i < (end - begin); ++i) { static int _ = (zt::print(NAME_VALUE(omp_get_num_threads()),"\n"),0); // 打印线程数量 auto it = complement.find(begin[i]); @@ -28,7 +28,7 @@ int main() //参数列表 <文件分块内存大小,单个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){ zt::eprint( diff --git a/src/tools/dna.hpp b/src/tools/dna.hpp index 25cb1dc..c92965b 100644 --- a/src/tools/dna.hpp +++ b/src/tools/dna.hpp @@ -127,7 +127,8 @@ namespace dna { // 确保每个任务只操作属于它的独立数据 if (get_lines_add()) { // 为每一块数据创建一个任务 - #pragma omp task firstprivate(start, end) + #pragma omp task + // #pragma omp task firstprivate(start, end) { reverseComplement(start, end); // 任务内处理反转互补 } @@ -135,15 +136,14 @@ namespace dna { 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){ // if(get_lines_add()){ - // reverseComplement(buf.data()+start_pos, buf.data()+end_pos); //我想要这个函数并行优化 + // reverseComplement(buf.data()+start_pos, buf.data()+end_pos); //这个函数并行优化 // } // // lines=!lines; // start_pos=end_pos+1;