私は実際に SMP を使用したコンパイラーのプロジェクトに参加しており、pthreads を使用してコーディングしたいと考えており、mpi を開くなどの多くの並列処理について聞いたので、pthread の呼び出し中にこのスレッドがコアに割り当てられる方法から始めるには、与える方法はありますか? pthreads による異なるコアへのスレッド?
3 に答える
このなどの pthreads チュートリアルを確認してください。しかし、一般的には、pthreads よりも高レベルのライブラリを使用することをお勧めします。それらを使用する方が簡単/体系的だからです。たとえば、Boost::Threads または Intel TBB です。
システムはスレッドを使用可能なコアに割り当て、他の場所に空きリソースがある場合はそれらを移動します。
通常、OS はリソースの割り当てにおいて私よりもはるかに優れた仕事をしますが、本当に必要な場合は、ほとんどの OS が特定のコア/プロセッサにスレッドを割り当て/制限する方法を備えています。Linux では、sched_setaffinityを使用します
最も簡単な答えは「はい」です。一般に、スレッドが実行される場所を指定する必要なく、自動的に異なるコアで異なるスレッドが実行される可能性があります。
特定のスレッドライブラリ/考え方に飛び込む前に、マルチスレッドプログラミング全般に関するイントロ/入門書が必要なようです。他のことをする前に、上記の Amit の「スレッドとは」のセクションを読んでから、POSIX スレッド、Windows スレッド、TBB、Boost スレッド、または興味のあるライブラリ/ラッパーの詳細を調べてください。