B8 - parallel sections

#pragma omp parallel sections
{
    #pragma omp section
    {
        // Task A
    }

    #pragma omp section
    {
        // Task B
    }

    #pragma omp section
    {
        // Task C
    }
}
#pragma omp parallel
{
    #pragma omp sections nowait
    {
        #pragma omp section
        {
            taskA();
        }

        #pragma omp section
        {
            taskB();
        }
    }

    // Other work
}

invalid implementations

#pragma omp parallel private(tid)
{
    tid = omp_get_thread_num();

    if (tid != 0) {
        #pragma omp sections
        {
            f = funk();

            #pragma omp section
            g = gunk();
        }
    }
    else {
        h = hunk();
    }
}
#pragma omp parallel private(tid)
{
    tid = omp_get_thread_num();

    #pragma omp sections
    {
        #pragma omp section
        {
            f = funk();
        }

        #pragma omp section
        {
            g = gunk();
        }
    }

    if (tid == 0) {
        h = hunk();
    }
}