|
PULSAR
0.1
Parallel Unified Linear Algebra with Systolic Arrays
|
PRT data channel. More...
#include "prt.h"

Go to the source code of this file.
Data Structures | |
| struct | prt_channel_s |
| VDP's data channel Implements a data link between a pair of VDPs. Identifies the source and destination VDPs by tuples. Contains a list of data packets, protected by a spinlock. More... | |
Typedefs | |
| typedef struct prt_channel_s | prt_channel_t |
| VDP's data channel Implements a data link between a pair of VDPs. Identifies the source and destination VDPs by tuples. Contains a list of data packets, protected by a spinlock. More... | |
| typedef enum prt_channel_direction_e | prt_channel_direction_t |
| VDP's data channel direction Identifies the direction of a VDP channel during insertion. More... | |
Enumerations | |
| enum | prt_channel_direction_e { PrtInputChannel, PrtOutputChannel } |
| VDP's data channel direction Identifies the direction of a VDP channel during insertion. More... | |
Functions | |
| prt_channel_t * | prt_channel_new (int count, MPI_Datatype datatype, int *src_tuple, int src_slot, int *dst_tuple, int dst_slot) |
| channel constructor More... | |
| void | prt_channel_delete (prt_channel_t *channel) |
| channel destructor More... | |
| void | prt_channel_push (prt_channel_t *channel, struct prt_packet_s *packet) |
| Sends a packed down a channel. Increments the packet's number of active references. More... | |
| struct prt_packet_s * | prt_channel_pop (prt_channel_t *channel) |
| Fetches a packef from a channel. Does not decrement the number of active references. The packet leaves the channel, but enters the VDP. More... | |
| int | prt_channel_empty (prt_channel_t *channel) |
| Checks if a channel is empty. More... | |
| int | prt_channel_compare (void *channel1, void *channel2) |
| Compare two channels. Channels are equal if they have the same source and destination tuples and slots. More... | |
PRT data channel.
PULSAR Runtime /pulsar/ Copyright (C) 2012-2013 University of Tennessee.
Definition in file prt_channel.h.
| typedef enum prt_channel_direction_e prt_channel_direction_t |
VDP's data channel direction Identifies the direction of a VDP channel during insertion.
| typedef struct prt_channel_s prt_channel_t |
VDP's data channel Implements a data link between a pair of VDPs. Identifies the source and destination VDPs by tuples. Contains a list of data packets, protected by a spinlock.
VDP's data channel direction Identifies the direction of a VDP channel during insertion.
| Enumerator | |
|---|---|
| PrtInputChannel | |
| PrtOutputChannel | |
Definition at line 46 of file prt_channel.h.
| int prt_channel_compare | ( | void * | channel1, |
| void * | channel2 | ||
| ) |
Compare two channels. Channels are equal if they have the same source and destination tuples and slots.
| channel1 | |
| channel2 |
| 0 | Channels are equal. @ |
| 1 | Channels are not equal. |
Definition at line 171 of file prt_channel.c.
References prt_channel_s::dst_slot, prt_channel_s::dst_tuple, prt_tuple_compare(), prt_channel_s::src_slot, and prt_channel_s::src_tuple.


| void prt_channel_delete | ( | prt_channel_t * | channel | ) |
channel destructor
| channel |
Definition at line 63 of file prt_channel.c.
References prt_channel_s::dst_tuple, icl_deque_destroy(), icl_deque_size(), prt_channel_s::packets, prt_assert, and prt_channel_s::src_tuple.


| int prt_channel_empty | ( | prt_channel_t * | channel | ) |
Checks if a channel is empty.
| channel |
| 0 | Channel is not empty. @ |
| 1 | Channel is empty. |
Definition at line 150 of file prt_channel.c.
References icl_deque_first(), prt_channel_s::packets, and prt_assert.


| prt_channel_t* prt_channel_new | ( | int | count, |
| MPI_Datatype | datatype, | ||
| int * | src_tuple, | ||
| int | src_slot, | ||
| int * | dst_tuple, | ||
| int | dst_slot | ||
| ) |
channel constructor
| count | number of data elements in a packet |
| datatype | MPI data type of elements in a packet |
| src_tuple | tuple of the source VDP |
| src_slot | slot number in the source VDP |
| dst_tuple | tuple of the destination VDP |
| dst_slot | slot number in the destination VDP |
Definition at line 26 of file prt_channel.c.
References prt_channel_s::count, prt_channel_s::datatype, prt_channel_s::dst_slot, prt_channel_s::dst_tuple, icl_deque_new(), prt_channel_s::packets, prt_assert, prt_channel_s::src_slot, prt_channel_s::src_tuple, and prt_channel_s::vdp.

| struct prt_packet_s* prt_channel_pop | ( | prt_channel_t * | channel | ) |
Fetches a packef from a channel. Does not decrement the number of active references. The packet leaves the channel, but enters the VDP.
| channel |
Definition at line 125 of file prt_channel.c.
References icl_list_s::data, icl_deque_delete(), icl_deque_first(), prt_channel_s::packets, and prt_assert.


| void prt_channel_push | ( | prt_channel_t * | channel, |
| prt_packet_t * | packet | ||
| ) |
Sends a packed down a channel. Increments the packet's number of active references.
| channel | |
| packet |
Definition at line 96 of file prt_channel.c.
References prt_channel_s::dst_node, icl_deque_append(), prt_vsa_s::node_rank, prt_packet_s::num_refs, prt_channel_s::packets, prt_vsa_s::proxy, prt_assert, prt_proxy_send(), prt_thread_s::rank, prt_vdp_s::thread, prt_channel_s::vdp, and prt_thread_s::vsa.

