MulticoreBSP for C  Version 2.0.4
Data Fields
mcbsp_thread_data Struct Reference

Thread-local data. More...

#include <mcbsp.h>

Collaboration diagram for mcbsp_thread_data:
Collaboration graph
[legend]

Data Fields

size_t bsp_id
 Thread-local BSP id. More...
 
size_t newTagSize
 Stores the tag size to become active after the next synchronisation. More...
 
size_t localC
 Counts the maximum number of registered variables at any one time. More...
 
double superstep_start_time
 The value of bsp_time at the start of the current computation phase. More...
 
struct mcbsp_init_datainit
 Initialisation data. More...
 
struct mcbsp_util_stackrequest_queues
 The communication queues used for bsp_get requests. More...
 
struct mcbsp_util_stackqueues
 The communication queues used for all DRMA and BSMP communication. More...
 
struct mcbsp_util_stackhpsend_queues
 The communication queues used for bsp_hpsend requests. More...
 
struct mcbsp_util_address_map local2global
 Local address to global variable map. More...
 
struct mcbsp_util_stack hpdrma_queue
 The communication queue for hpget and hpput requests. More...
 
struct mcbsp_util_stack bsmp
 The BSMP incoming message queue. More...
 
struct mcbsp_util_stack profile
 Where to store any profiling statistics. More...
 
struct mcbsp_util_stack removedGlobals
 Keeps track of which global variables are removed (as per bsp_pop_reg). More...
 
struct mcbsp_util_stack localsToRemove
 Keeps track which globals will be removed before the next superstep arrives. More...
 
struct mcbsp_util_stack localsToPush
 The push request queue. More...
 
struct mcbsp_util_stack globalsToPush
 Caches the mapSearch results for use with bsp_push_reg requests. More...
 
struct mcbsp_util_machine_partition machine_partition
 Stores the machine part allocated to this thread. More...
 
struct mcbsp_superstep_stats superstep_stats
 Stores statistics on the current superstep. More...
 
struct timespec start
 Stores the start-time of this thread. More...
 

Detailed Description

Thread-local data.

Contains data local to each thread in an SPMD section.

Field Documentation

struct mcbsp_util_stack mcbsp_thread_data::bsmp

The BSMP incoming message queue.

size_t mcbsp_thread_data::bsp_id

Thread-local BSP id.

struct mcbsp_util_stack mcbsp_thread_data::globalsToPush

Caches the mapSearch results for use with bsp_push_reg requests.

struct mcbsp_util_stack mcbsp_thread_data::hpdrma_queue

The communication queue for hpget and hpput requests.

There is only a single queue per thread, since only the active threads knows when all requests to-be are made and thus when the communication can start. This is what makes hp-primitives unsafe; overlapping or neighbouring memory areas can cause data races and false sharing conditions. The main advantage of using the hp queue is that no payload data will be cached.

struct mcbsp_util_stack* mcbsp_thread_data::hpsend_queues

The communication queues used for bsp_hpsend requests.

Kept separately from bsp_hpget and bsp_hpput queues since they are handled quite differently.

struct mcbsp_init_data* mcbsp_thread_data::init

Initialisation data.

struct mcbsp_util_address_map mcbsp_thread_data::local2global

Local address to global variable map.

size_t mcbsp_thread_data::localC

Counts the maximum number of registered variables at any one time.

struct mcbsp_util_stack mcbsp_thread_data::localsToPush

The push request queue.

struct mcbsp_util_stack mcbsp_thread_data::localsToRemove

Keeps track which globals will be removed before the next superstep arrives.

struct mcbsp_util_machine_partition mcbsp_thread_data::machine_partition

Stores the machine part allocated to this thread.

Used for nested runs.

size_t mcbsp_thread_data::newTagSize

Stores the tag size to become active after the next synchronisation.

struct mcbsp_util_stack mcbsp_thread_data::profile

Where to store any profiling statistics.

struct mcbsp_util_stack* mcbsp_thread_data::queues

The communication queues used for all DRMA and BSMP communication.

struct mcbsp_util_stack mcbsp_thread_data::removedGlobals

Keeps track of which global variables are removed (as per bsp_pop_reg).

struct mcbsp_util_stack* mcbsp_thread_data::request_queues

The communication queues used for bsp_get requests.

struct timespec mcbsp_thread_data::start

Stores the start-time of this thread.

(Default POSIX timer.)

double mcbsp_thread_data::superstep_start_time

The value of bsp_time at the start of the current computation phase.

struct mcbsp_superstep_stats mcbsp_thread_data::superstep_stats

Stores statistics on the current superstep.


The documentation for this struct was generated from the following file: