美文网首页
OpenMP Synchronisation Construct

OpenMP Synchronisation Construct

作者: Enzooo | 来源:发表于2019-11-18 05:05 被阅读0次

    Synchronisation Constructs : 

    1. #pragma omp critical

    2. #pragma omp master

    3. #pragma omp atomic

    4. #pragma omp barrier


    1. #pragma omp critical [name]

    critical 结构是一个包含 structured block 的指令。该结构一次只允许一个线程执行 structured block (region)。多个critical regions可能存在于一个并行区域中,并且可能协同工作(在所有 critical regions 中一次只有一个线程),或者单独工作(当每个 critical上construct 被指定唯一名称时,在每个structured block 中一次只有一个线程)。可选(lock)提示子句可以在指定的关键构造上指定,以在选择锁定机制时提供OpenMP运行时指导。

    > 代码中可以有多个critical regions

    > 有deadlock 的危险:

    > 未命名的 critical regions 具有相同的系统定义名称

    > 对 structured block 的限制适用于所有相同命名的关键区域

    > 暗示执行的非独立性



    2. #pragma omp master

    > 只有住线程会执行并累block

    > 比 omp single 开销更少

    > master子句区域后没有隐式的 barrier (no implicit synchronisations),需要显示添加#pragma omp barrier


    #pragma omp single [data clauses]

    > 只有一个线程执行block

    > 这个线程不必是主线程,可以是任意的进程

    > master子句区域后有隐式的 barrier 

    相关文章

      网友评论

          本文标题:OpenMP Synchronisation Construct

          本文链接:https://www.haomeiwen.com/subject/artpictx.html