1

我正在尝试将以下函数与 OpenMP 并行化。如果我使用#pragma omp parallel for private(dbf,t_tmp)我在读取数据库文件时得到一个 BAD_EXEC。这PreFilter是应该并行化的计算最密集的任务。最佳情况是一个主线程用于 IO,一个从属线程用于PreFilter. 这可以通过 OpenMP 实现还是我应该使用 pthreads?

for(int it=1; it <= dbfiles->size(); ++it) 
{
    ...

    dbf = openFILE(db_result->db_name,(char *)&id);
    ...
    readHMMFile(dbf,db_result->db_name,filename,t_tmp[curr_index],start_pos);   
    if(curr_index==0){ // modulo 4 ==0
          t_vec[bin]->MapFourHMMsToHMM4(t_tmp[0],t_tmp[1],t_tmp[2],t_tmp[3]);
          PreFilter(q_vec,t_vec[bin]);
    }
    fclose(dbf);
}
4

0 回答 0