Flexible control structures for parallelism in OpenMP