今まで私は書き込みが非常に簡単で、ほとんどの時間を消費するので、大きなサイクルの間だけomp
を使用してきました。しかし、時には、あるスレッドでのみ効率的に行うことができるI/Oを行う必要がありますが、通常はこのI/Oは(次の)ループとは独立しています。後でcyclusのためにスレッドをompに追加することはできますか?
は、私はこのような何かをする必要があります。
print_something(); // independet
print_something_else(); // independent
for(...){...}; // large cycle independent on previous printing
がどのように第二のスレッドでは、1つのスレッドでprint_something_else
をprint_something
を実行し、ループを計算するために、残りのすべてのスレッドを使用するomp
を使用しますか?ループは印刷機能の実行よりもおそらく時間がかかるので、完了後にループにI/Oを行っていた2つのスレッドを追加する方法はですか?
この作品のようですか?
#pragma omp parallel
{
#pragma omp sections
{
#pragma omp section
{
print_something();
}
#pragma omp section
{
print_something_else();
}
}
#pragma omp for
for(...){...};
}
タスクconstrcutsの使い方についてもっと説明できますか?正しく理解するのが難しい – Michal