#include <stdlib.h>
#include <memory.h>
#include "bsp_alloc.h"
#include <mpi.h>
#include <config.h>
Include dependency graph for bsp_exptable.h:
This graph shows which files directly or indirectly include this file:
Go to the source code of this file.
Data Structures | |
struct | MemRegInfo |
Additional data needed by a MemoryRegister object. More... | |
struct | ReqInfo |
Additional data needed by a RequestTable. More... | |
struct | ReqElement |
Data element stored in a RequestTable object. More... | |
struct | PutObject |
additional info for a bsp_put() More... | |
struct | SendObject |
additional info for a bsp_send() More... | |
struct | PushRegObject |
Additional info for a bsp_push_reg(). More... | |
struct | PopRegObject |
Additional info for a bsp_pop_Reg(). More... | |
struct | SetTagObject |
Additional info for a bsp_set_tagsize(). More... | |
union | _DInfo |
Data structure for additional info in a VarSizeElement. More... | |
struct | DelivElement |
Data element stored in a DeliveryTable. More... | |
struct | DelivInfo |
Additional data for a DeliveryTable. More... | |
union | SpecInfo |
Datastructure storing specific info. More... | |
struct | _ExpandableTable |
a table with nprocs number columns and rows number of rows, where each row has a height of slot_size bytes. More... | |
MemoryRegister data structures | |
typedef char * | MemRegElement |
Data element stored in a MemoryRegister. | |
VarElSizeTable data structures | |
typedef enum _ItemType | ItemType |
type of action | |
enum | _ItemType { popreg, pushreg, put, get, send, settag } |
type of action More... | |
ExpandableTable | |
typedef _ExpandableTable | ExpandableTable |
a table with nprocs number columns and rows number of rows, where each row has a height of slot_size bytes. | |
void | expandableTable_comm (const ExpandableTable *restrict send, ExpandableTable *restrict recv, MPI_Comm communicator) |
communicates the table to the other processor. | |
static void | expandableTable_initialize (ExpandableTable *restrict table, const unsigned int nprocs, const unsigned int rows, const int unsigned elsize, const union SpecInfo info) |
static void | expandableTable_reset (ExpandableTable *restrict table) |
clears contents of the table | |
static void | expandableTable_destruct (ExpandableTable *restrict table) |
frees memory taken by an ExpandableTable object | |
static void | expandableTable_expand (ExpandableTable *restrict table, const unsigned int rows, const union SpecInfo newinfo) |
Add some additional rows to the table. | |
FixedElSizeTable member functions | |
A table which contains elements of fixed size. Descendants are MemoryRegister | |
static void | fixedElSizeTable_initialize (ExpandableTable *restrict table, const unsigned int nprocs, const unsigned int rows, const unsigned int elsize, const union SpecInfo info) |
initializes an FixedElSizeTable | |
static void | fixedElSizeTable_push (ExpandableTable *restrict table, const unsigned int proc, void(*changeinfo)(union SpecInfo *restrict, unsigned int, unsigned int), const void *restrict element) |
adds an element for a specific processor to the table and expands the table when necessary. | |
Defines | |
#define | ALIGNED_TYPE double |
#define | MAX(x, y) ( ((x) > (y))?(x):(y)) |
gives the maximum of x and y | |
#define | MIN(x, y) ( ((x) < (y))?(x):(y)) |
gives the minimum of x and y | |
Functions | |
static int | no_slots (const int bytes, const int slot_size) |
calculate how many slots are necessary to contain a number of bytes | |
static unsigned int | max (const unsigned int *restrict array, const int n, const int stride) |
calculates the maximum value of array[0], array[stride], array[2*stride], . |
Definition in file bsp_exptable.h.
|
Definition at line 38 of file bsp_exptable.h. Referenced by bsp_get_tag(), bsp_hpmove(), bsp_move(), deliveryTable_execute(), deliveryTable_expand(), deliveryTable_initialize(), deliveryTable_push(), and deliveryTable_reset(). |
|
gives the maximum of x and y
Definition at line 41 of file bsp_exptable.h. Referenced by deliveryTable_push(), and max(). |
|
gives the minimum of x and y
Definition at line 44 of file bsp_exptable.h. Referenced by bsp_begin(), and bsp_move(). |
|
a table with nprocs number columns and rows number of rows, where each row has a height of slot_size bytes. This table can be communicated to the other processors by means of expandableTable_comm(): each columns is send to processors with rank equal to the column number |
|
type of action
|
|
Data element stored in a MemoryRegister. It is a pointer to a registered memory area Definition at line 89 of file bsp_exptable.h. |
|
type of action
Definition at line 132 of file bsp_exptable.h. |
|
communicates the table to the other processor. Each column of the table corresponds to a chunk of data which is to be send to the processor with rank equal to the column number. The received data is equally ordered, i.e.: each column corresponds to the data received from the processor with rank equal to the column number.
Definition at line 47 of file bsp_exptable.c. |
|
frees memory taken by an ExpandableTable object
Definition at line 275 of file bsp_exptable.h. References bsp_free(). Referenced by deliveryTable_destruct(), memoryRegister_destruct(), and requestTable_destruct(). Here is the call graph for this function: |
|
Add some additional rows to the table.
Definition at line 288 of file bsp_exptable.h. References bsp_free(), and bsp_malloc. Referenced by deliveryTable_expand(), fixedElSizeTable_push(), memoryRegister_expand(), and requestTable_expand(). Here is the call graph for this function: |
|
Definition at line 249 of file bsp_exptable.h. References bsp_calloc, and bsp_malloc. Referenced by deliveryTable_initialize(), and fixedElSizeTable_initialize(). |
|
clears contents of the table
Definition at line 266 of file bsp_exptable.h. Referenced by deliveryTable_reset(), and requestTable_reset(). |
|
initializes an FixedElSizeTable
Definition at line 321 of file bsp_exptable.h. References expandableTable_initialize(). Referenced by memoryRegister_initialize(), and requestTable_initialize(). Here is the call graph for this function: |
|
adds an element for a specific processor to the table and expands the table when necessary.
Definition at line 338 of file bsp_exptable.h. References expandableTable_expand(). Referenced by memoryRegister_push(), and requestTable_push(). Here is the call graph for this function: |
|
calculates the maximum value of array[0], array[stride], array[2*stride], . .., array[n].
Definition at line 75 of file bsp_exptable.h. References MAX. |
|
calculate how many slots are necessary to contain a number of bytes
Definition at line 62 of file bsp_exptable.h. Referenced by bsp_get_tag(), bsp_hpmove(), bsp_move(), deliveryTable_execute(), deliveryTable_initialize(), deliveryTable_push(), and deliveryTable_reset(). |