SINGLE指导语句

  形式如下:

  !$OMP SINGLE [clause[[,] clause]...]
  block
  !$OMP END SINGLE [end_single_modifier]

  SINGLE可以附带的子句如下:

  PRIVATE(list)
  FIRSTPRIVATE( list)

  END SINGLE可以附带的子句为:

  COPYPRIVATE(list)[[,]COPYPRIVATE(list)...]
  NOWAIT

  由SINGLE说明的任务(block)只能由一个线程完成,其余的线程则在END SINGLE处等待(当NOWAIT给出时,这些线程不用等待而直接执行下面的任务)。
 
  一个简单的SINGLE的例子如下:

  !$OMP PARALLEL DEFAULT(SHARED)
    CALL WORK(X)
  !$OMP BARRIER
  !$OMP SINGLE
    CALL OUTPUT(X)
    CALL INPUT(Y)
  !$OMP END SINGLE
    CALL WORK(Y)
  !$OMP END PARALLEL

  WORKSHARE指导语句
  对它的形式与用法在本文中不做介绍,请参照标准中的说明。