Changes between Initial Version and Version 1 of library_barrier


Ignore:
Timestamp:
Aug 3, 2014, 3:25:45 PM (10 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • library_barrier

    v1 v1  
     1
     2The [source:trunk/soft/giet_vm/giet_libs/barrier.c barrier.c] and [source:trunk/soft/giet_vm/giet_libs/barrier.h barrier.h]
     3files define a synchronisation service between several
     4tasks sharing the same address space in a parallel multi-tasks application.
     5
     6There is actually two types of barriers:
     71. The "giet_barrier_t" is a simple sense-reversing barrier. It can be safely used several times (in a loop for example),
     8but it does not scale, and should not be used when the number of expected tasks is larger than few tens.
     9The available functions are:
     10 * '''barrier_init( giet_barrier_t * barrier, unsigned int ntasks )‘‘‘
     11 * '''barrier_wait( giet_barrier_t * barrier )'''
     121. The ''giet_sbt_barrier_t" can be used in multi-clusters architectures, and is implemented as a physically distributed Sliced-Binary-Tree (SBT).
     13To use this distributed barrier, some placement constraints must be respected:
     14 * The number of tasks must be a power of 2.
     15 * There is one task per processor in a given cluster.
     16 * The involved clusters form a mesh[X][Y] where (X = Y) or (x = 2*Y)
     17 * The lower left involved cluster is cluster(0,0) 
     18
     19Neither the barrier_init(), nor the barrier_wait() function require a syscall.
     20For both types of barriers, the barrier initialisation should be done by one single task.
     21