LLVM OpenMP 20.0.0git
Classes | Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
distributedBarrier Class Reference

#include "/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/openmp/runtime/src/kmp_barrier.h"

Public Types

enum  { MAX_ITERS = 3 , MAX_GOS = 8 , IDEAL_GOS = 4 , IDEAL_CONTENTION = 16 }
 

Public Member Functions

 distributedBarrier ()=delete
 
 ~distributedBarrier ()=delete
 
void update_num_threads (size_t nthr)
 
bool need_resize (size_t new_nthr)
 
size_t get_num_threads ()
 
kmp_uint64 go_release ()
 
void go_reset ()
 

Static Public Member Functions

static distributedBarrierallocate (int nThreads)
 
static void deallocate (distributedBarrier *db)
 

Public Attributes

flags_s * flags [MAX_ITERS]
 
go_s * go
 
iter_s * iter
 
sleep_s * sleep
 
size_t KMP_ALIGN_CACHE num_threads
 
size_t KMP_ALIGN_CACHE max_threads
 
size_t KMP_ALIGN_CACHE num_gos
 
size_t KMP_ALIGN_CACHE num_groups
 
size_t KMP_ALIGN_CACHE threads_per_go
 
bool KMP_ALIGN_CACHE fix_threads_per_go
 
size_t KMP_ALIGN_CACHE threads_per_group
 
size_t KMP_ALIGN_CACHE gos_per_group
 
voidteam_icvs
 

Detailed Description

Definition at line 59 of file kmp_barrier.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
MAX_ITERS 
MAX_GOS 
IDEAL_GOS 
IDEAL_CONTENTION 

Definition at line 82 of file kmp_barrier.h.

Constructor & Destructor Documentation

◆ distributedBarrier()

distributedBarrier::distributedBarrier ( )
delete

◆ ~distributedBarrier()

distributedBarrier::~distributedBarrier ( )
delete

Member Function Documentation

◆ allocate()

static distributedBarrier * distributedBarrier::allocate ( int  nThreads)
inlinestatic

Definition at line 113 of file kmp_barrier.h.

References CACHE_LINE, d, i, KMP_ALIGNED_ALLOCATE, KMP_FATAL, and MAX_ITERS.

Referenced by __kmp_allocate_team().

◆ deallocate()

static void distributedBarrier::deallocate ( distributedBarrier db)
inlinestatic

Definition at line 134 of file kmp_barrier.h.

References KMP_ALIGNED_FREE.

Referenced by __kmp_free_team().

◆ get_num_threads()

size_t distributedBarrier::get_num_threads ( )
inline

Definition at line 139 of file kmp_barrier.h.

References num_threads.

◆ go_release()

kmp_uint64 distributedBarrier::go_release ( )

Definition at line 163 of file kmp_barrier.cpp.

References go, iter, j, MAX_ITERS, and num_gos.

◆ go_reset()

void distributedBarrier::go_reset ( )

Definition at line 171 of file kmp_barrier.cpp.

References flags, go, i, iter, j, MAX_ITERS, and max_threads.

◆ need_resize()

bool distributedBarrier::need_resize ( size_t  new_nthr)
inline

Definition at line 138 of file kmp_barrier.h.

References max_threads.

◆ update_num_threads()

void distributedBarrier::update_num_threads ( size_t  nthr)
inline

Definition at line 136 of file kmp_barrier.h.

Member Data Documentation

◆ fix_threads_per_go

bool KMP_ALIGN_CACHE distributedBarrier::fix_threads_per_go

Definition at line 102 of file kmp_barrier.h.

◆ flags

flags_s* distributedBarrier::flags[MAX_ITERS]

Definition at line 89 of file kmp_barrier.h.

Referenced by go_reset().

◆ go

go_s* distributedBarrier::go

Definition at line 90 of file kmp_barrier.h.

Referenced by go_release(), and go_reset().

◆ gos_per_group

size_t KMP_ALIGN_CACHE distributedBarrier::gos_per_group

Definition at line 106 of file kmp_barrier.h.

◆ iter

iter_s* distributedBarrier::iter

Definition at line 91 of file kmp_barrier.h.

Referenced by go_release(), and go_reset().

◆ max_threads

size_t KMP_ALIGN_CACHE distributedBarrier::max_threads

Definition at line 95 of file kmp_barrier.h.

Referenced by go_reset(), and need_resize().

◆ num_gos

size_t KMP_ALIGN_CACHE distributedBarrier::num_gos

Definition at line 97 of file kmp_barrier.h.

Referenced by go_release().

◆ num_groups

size_t KMP_ALIGN_CACHE distributedBarrier::num_groups

Definition at line 99 of file kmp_barrier.h.

◆ num_threads

size_t KMP_ALIGN_CACHE distributedBarrier::num_threads

Definition at line 94 of file kmp_barrier.h.

Referenced by get_num_threads().

◆ sleep

sleep_s* distributedBarrier::sleep

Definition at line 92 of file kmp_barrier.h.

◆ team_icvs

void* distributedBarrier::team_icvs

Definition at line 107 of file kmp_barrier.h.

◆ threads_per_go

size_t KMP_ALIGN_CACHE distributedBarrier::threads_per_go

Definition at line 101 of file kmp_barrier.h.

◆ threads_per_group

size_t KMP_ALIGN_CACHE distributedBarrier::threads_per_group

Definition at line 104 of file kmp_barrier.h.


The documentation for this class was generated from the following files: