53                         printf(
"ERRROR : Could not locate either an IO partition or an Analyzer\n");
 
   58         int target_partition_id = an_desc->
id;
 
   65                 printf(
"Failed to map Instrumentation to Analyzer or IO Connector\n");
 
void Event_Packer_flush()
Processes the send of all events present in the internal FIFO. 
 
uint8_t contains_metadata
Indicates whether the pack contains at least one MALP_EVENT_META event. 
 
MALP_Spinlock is_in_instrum
 
struct Event_Pack * pack
The event pack. 
 
static struct Event_Packer * Event_Packer()
Getter on the current event packer. 
 
The event contains meta data. 
 
int VMPI_Stream_open_map(VMPI_Stream *st, VMPI_Map *map, char *mode)
Open a stream according to a mapping. 
 
Map processes in a round robin fashion. 
 
void * Buffered_FIFO_push(struct Buffered_FIFO *fifo, void *elem)
Pushes an element into a FIFO. 
 
Struct defining a pack of events. 
 
void Event_Packer_push(struct MALP_Trace_Event *event)
Sends an event. 
 
void * Buffered_FIFO_pop(struct Buffered_FIFO *fifo, void *dest)
Pops an element from a FIFO. 
 
void Event_Packer_release()
Releases the event packer. 
 
struct MALP_Trace_Event events[EVENT_PACK_SIZE]
The events. 
 
int MALP_Spinlock_unlock(MALP_Spinlock *mutex)
Unlocks the given MALP_Spinlock. 
 
static VMPI_Partition_desc * VMPI_Get_desc_by_name(char *name)
Find a descriptions by its name. 
 
struct Stream_Infos * __trace_module
This is a global Stream_Infos (not shared between threads) 
 
static void VMPI_Map_clear(VMPI_Map *map)
Clears a map. 
 
Struct defining an event. 
 
int VMPI_Map_partitions(int target, VMPI_Map_mode mode, VMPI_Map *map)
Map to another partition (can be additive) 
 
static int Stream_Infos_is_in_mpi()
Checks if we are currently inside a MPI call. 
 
Structure holding partitions descriptions. 
 
This is the struct used to send events throuh a stream. 
 
static struct Stream_Infos * Stream_infos_get()
Getter on the current Stream_Infos. 
 
MALP_Trace_event_type type
The type of the event. 
 
uint32_t application
tha application id 
 
uint32_t offset
The number of packed events. 
 
uint64_t Buffered_FIFO_count(struct Buffered_FIFO *fifo)
Thread-safely gets the number of elements stored in the FIFO. 
 
uint32_t partition
the partition id 
 
MALP_Trace_event_t event
The event data. 
 
int MALP_Spinlock_lock(MALP_Spinlock *mutex)
Locks the given MALP_Spinlock. 
 
void __Event_Packer_push(struct MALP_Trace_Event *event)
 
struct Event_Packer _malp_e_packer
The event packer of the current MPI rank. 
 
int id
Unique identifier of the partition. 
 
volatile unsigned int MALP_Spinlock
The type of spinlocks in MALP. 
 
struct Pack_Locus locus
The pack locator. 
 
int VMPI_Stream_init(VMPI_Stream *st, size_t block_size, VMPI_Stream_load_balance lb)
Initializes a stream should be called before any *open call. 
 
static int VMPI_Get_partition_id()
Returns the unique ID of the current partition. 
 
void Event_Packer_init()
Initializes the event packer, maps current process to existing Analyser or IO_WRITE partition and ini...
 
#define EVENT_PACK_SIZE
The size of a pack of events. 
 
int VMPI_Stream_close(VMPI_Stream *st)
Closes a stream and sends EOF to remote endpoints. 
 
Send or receive from each turn by turn. 
 
int MALP_Spinlock_trylock(MALP_Spinlock *mutex)
Tries to lock the given MALP_Spinlock. 
 
static void Stream_Infos_push_pending_event(struct MALP_Trace_Event *event)
 
VMPI_Stream stream
The associated stream. 
 
int VMPI_Stream_write(VMPI_Stream *st, char *buff, unsigned int block_count)
Write data to a VMPI_Stream. 
 
#define MAX_PENDING_EVENT
Defines the maximum pending events. 
 
static void Stream_Infos_process_pending_events()
 
MALP_Spinlock lock
the lock for concurrent access