47 ret |= (my_rank & 0x00FFFFFFFFFFFFFFllu) << 32;
100 tmp.
tid = parent?parent->
tid:0;
struct Stream_Descriptor infos
The stream descriptor.
uint64_t partition_id
The id of the partition.
struct Chained_List streams
The list of managed streams.
static struct Stream_Manager * Stream_Manager()
A getter for the stream manager.
void Stream_Infos_release(struct Stream_Infos *infos)
Releases a Stream_Infos.
uint64_t tid
id of the stream (see Stream_MGR_gen_id())
uint64_t omp_thread
OpenMP thread id of the source of the stream.
Stream_type
enum defining the type of the source of the stream
The event contains meta data.
struct Stream_Descriptor stream_descriptor
See Stream_Descriptor.
uint64_t partition_id
The sender partition id.
static MPI_Comm VMPI_Get_partition_comm()
Returns current partition's communicator.
Struct defining a stream manager.
void Buffered_FIFO_release(struct Buffered_FIFO *fifo, void(*free_func)(void *))
releases a FIFO
void Event_Packer_push(struct MALP_Trace_Event *event)
Sends an event.
Structure containing data related to a stream and intended to be sent as an event (see MALP_Trace_Eve...
struct Stream_Infos * Stream_MGR_new_stream(struct Stream_Descriptor *parent, Stream_type type)
Adds a stream into the current stream manager.
static void Chained_List_init(struct Chained_List *list, uint64_t chunk_size, size_t payload_size)
Initializes a Chained_List.
int MALP_Spinlock_unlock(MALP_Spinlock *mutex)
Unlocks the given MALP_Spinlock.
struct Stream_Infos * __trace_module
This is a global Stream_Infos (not shared between threads)
Struct defining an event.
uint64_t partition_id
id of the partition (mpi program that the stream belongs to)
Structure describing a stream.
uint64_t duration
Duration.
uint64_t mpi_rank
mpi rank of the source of the stream
struct Buffered_FIFO mpi_wrapped_event_buffer
FIFO of events for MPI calls.
MALP_Spinlock lock
the lock for concurrent access
static void * Chained_List_push(struct Chained_List *list, void *payload)
Adds an element to the list.
static struct Stream_Infos * Stream_infos_get()
Getter on the current Stream_Infos.
void Stream_Manager_init()
Initialises the manager for current MPI process.
MALP_Trace_event_type type
The type of the event.
struct Stream_Manager __stream_Stream_Manager
The stream manager for current MPI process.
#define TEST_LOAD_SYMBOL(a)
uint64_t tid
The stream unique id.
Stream_type type
the type of the source of the steram
uint64_t start_time
time at stream creation
MALP_Trace_event_t event
The event data.
void Stream_MGR_end_stream()
Signals end of stream.
uint64_t timestamp
Creation date.
int MALP_Spinlock_lock(MALP_Spinlock *mutex)
Locks the given MALP_Spinlock.
uint64_t Stream_MGR_gen_id()
int rank
the rank (within the partition
void Buffered_FIFO_init(struct Buffered_FIFO *fifo, uint64_t chunk_size, size_t elem_size)
Initializes a Buffered_FIFO.
static int VMPI_Get_partition_id()
Returns the unique ID of the current partition.
static void Chained_List_release(struct Chained_List *list)
Clears a Chained_List.
char hostname[32]
name of the host running the source of the stream
void Stream_Infos_init(struct Stream_Infos *infos)
Initializes a Stream_Infos.
Stream_Descriptor_type desc_type
identifies whether this is a stream creation or release event
static void Stream_infos_set(struct Stream_Infos *sd)
Setter on the current Stream_Infos.
void Stream_Manager_release()
Releases the manager for current MPI process (including all streams )
uint64_t current_id
a globally unique id for the streams
uint64_t end_time
time at stream release
uint64_t parent_tid
id of parent stream