int CBlastPrelimSearch::x_LaunchMultiThreadedSearch(SInternalData& internal_data) { typedef vector< CRef<CPrelimSearchThread> > TBlastThreads; TBlastThreads the_threads(GetNumberOfThreads()); auto_ptr<const CBlastOptionsMemento> opts_memento (m_Options->CreateSnapshot()); _TRACE("Launching BLAST with " << GetNumberOfThreads() << " threads"); // -RMH- This appears to be a problem right now. When used...this // can cause all the work to go to a single thread! (-MN- This is fixed in SB-768) BlastSeqSrcSetNumberOfThreads(m_InternalData->m_SeqSrc->GetPointer(), GetNumberOfThreads()); // Create the threads ... NON_CONST_ITERATE(TBlastThreads, thread, the_threads) { thread->Reset(new CPrelimSearchThread(internal_data, opts_memento.get())); if (thread->Empty()) { NCBI_THROW(CBlastSystemException, eOutOfMemory, "Failed to create preliminary search thread"); } }
void RAROptions::Init() { memset(this,0,sizeof(RAROptions)); WinSize=0x2000000; Overwrite=OVERWRITE_DEFAULT; Method=3; MsgStream=MSG_STDOUT; ConvertNames=NAMES_ORIGINALCASE; xmtime=EXTTIME_HIGH3; FileSizeLess=INT64NDF; FileSizeMore=INT64NDF; HashType=HASH_CRC32; #ifdef RAR_SMP Threads=GetNumberOfThreads(); #endif #ifdef USE_QOPEN QOpenMode=QOPEN_AUTO; #endif }
CRef<CSearchResultSet> CPsiBlast::Run() { m_Impl->SetNumberOfThreads(GetNumberOfThreads()); return m_Impl->Run(); }