OpenMPで#pragma omp sectionsの役目って何なんでしょうか?
#pragma omp parallelで並列領域を
#pragma omp sectionでスレッド処理(スレッド割当て)単位を
指定することは理解できました。

しかし#pragma omp sectionsが必要となる理由がわかりません。
なぜ必要なんでしょうか?


#pragma omp parallel sectionsって書けるみたいですが
まぁこれは本質ではないですよね?

#include <stdio.h>
int main(void)
{
 #pragma omp parallel
 {
  #pragma omp sections // ←コンパイラに何を指示してる?
  {
   #pragma omp section
   printf("Hello 1\n");
   #pragma omp section
   printf("Hello 2\n");
   #pragma omp section
   {
    printf("Hello 3a\n");
    printf("Hello 3b\n");
   }
  }
 }
 return 0;
}