Changes between Version 2 and Version 3 of library_barrier


Ignore:
Timestamp:
Aug 4, 2014, 3:11:53 PM (11 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • library_barrier

    v2 v3  
     1= The Barrier Library =
    12
    23The [source:soft/giet_vm/giet_libs/barrier.c barrier.c] and [source:soft/giet_vm/giet_libs/barrier.h barrier.h]
     
    56
    67There is actually two types of barriers:
    7 1. The "giet_barrier_t" is a simple sense-reversing barrier. It can be safely used several times (in a loop for example),
     8
     9== A) Simple Barrier ==
     10
     11The "giet_barrier_t" is a simple sense-reversing barrier. It can be safely used several times (in a loop for example),
    812but it does not scale, and should not be used when the number of expected tasks is larger than few tens.
     13
    914The available functions are:
    1015 * '''barrier_init( giet_barrier_t * barrier, unsigned int ntasks )‘‘‘
    1116 * '''barrier_wait( giet_barrier_t * barrier )'''
    12 1. The ''giet_sbt_barrier_t" can be used in multi-clusters architectures, and is implemented as a physically distributed Sliced-Binary-Tree (SBT).
     17
     18Neither the barrier_init(), nor the barrier_wait() function contains a system call.
     19
     20== B) Distributed Barrier ==
     21
     22The ''giet_sbt_barrier_t" can be used in multi-clusters architectures, and is implemented as a physically distributed Sliced-Binary-Tree (SBT).
    1323To use this distributed barrier, some placement constraints must be respected:
    1424 * The number of tasks must be a power of 2.
     
    1727 * The lower left involved cluster is cluster(0,0) 
    1828
    19 Neither the barrier_init(), nor the barrier_wait() function require a syscall.
    20 For both types of barriers, the barrier initialisation should be done by one single task.
     29The available functions are:
     30 * '''sbt_barrier_init( giet_sbt_barrier_t * barrier, unsigned int ntasks )‘‘‘
     31 * '''sbt_barrier_wait( giet_sbt_barrier_t * barrier )'''
    2132
     33The sbt_barrier_init() contains a system call, but the sbt_barrier_wait does not.
     34
     35'''WARNING:''' For both types of barriers, the barrier initialisation should be done by one single task.
     36