Data Structures |
struct | UnifySingleId |
struct | UnifyDoubleId |
struct | UnifyMach |
struct | UnifyNode |
struct | UnifyProc |
struct | UnifyThrd |
struct | UnifyLoc |
struct | UnifyRegion |
struct | UnifyCsite |
struct | UnifyCpath |
struct | UnifyMetric |
struct | UnifyGroupRep |
struct | UnifyGroup |
struct | UnifyCom |
struct | UnifyCart |
struct | UnifyWin |
struct | GrpCount |
struct | ComCount |
struct | CartCoord |
struct | EsdUnifyData_struct |
Typedefs |
typedef struct EsdUnifyData_struct | EsdUnifyData |
| Opaque data structure storing global and per-process unification data.
|
Enumerations |
enum | esd_unify_map_t {
ESD_UNIFY_STRMAP,
ESD_UNIFY_MACHMAP,
ESD_UNIFY_NODEMAP,
ESD_UNIFY_LOCMAP,
ESD_UNIFY_FILEMAP,
ESD_UNIFY_REGMAP,
ESD_UNIFY_CSITEMAP,
ESD_UNIFY_CPATHMAP,
ESD_UNIFY_COMMAP,
ESD_UNIFY_WINMAP,
ESD_UNIFY_NUM_MAPS
} |
| Enumeration type defining symbolic names for the different per-process identifier mapping tables handled by EsdUnifyData. More...
|
enum | esd_group_rep_t { ESD_GROUP_BITVECTOR,
ESD_GROUP_SPARSE,
ESD_GROUP_INV_SPARSE,
ESD_GROUP_RLE
} |
| Enumeration type defining type of group vector representation in memory. More...
|
Functions |
|
EXTERN EsdUnifyData * | esd_unify_create () |
| Creates and returns an new instance of type EsdUnifyData.
|
EXTERN void | esd_unify_free (EsdUnifyData *instance) |
| Destroys the given instance of EsdUnifyData and releases the allocated memory.
|
EXTERN void | esd_unify_buffer (EsdUnifyData *instance, const buffer_t buffer, size_t size, ElgOut *mapfile) |
| Processes size bytes of the local definition record data provided in the given memory buffer.
|
EXTERN EpkIdMap * | esd_unify_get_map (const EsdUnifyData *instance, esd_unify_map_t map_id) |
| Returns one of the per-process identifier mapping tables stored in the unification data object instance.
|
EXTERN void | esd_unify_clear_maps (EsdUnifyData *instance) |
| Clears the per-process identifier mapping tables stored in the unification data object instance.
|
EXTERN void | esd_unify_write_defs (EsdUnifyData *instance, ElgOut *deffile) |
| Writes the unified definition data collected in the given EsdUnifyData instance to the EPILOG output stream deffile.
|
This file contains type definitions and functions prototypes needed for the unification of per-process EPILOG definition records for static program entities, such as instrumented source code regions or MPI communicators.
The basic usage model of this module is as follows: Before any data can be processed, an unification data structure has to be created.
Now, the EPILOG definition data can be processed by calling esd_unify_buffer() for the data generated by each process. Note that the current implementation requires these calls to be in ascending rank order. The unification process also collects per-process information, such as mappings from local to global identifiers or the numbers of events of the different types, which is stored by the esd_unify_buffer() call to a global mapping file.
To be able to access these mapping tables afterwards, they are not cleared automatically, i.e., this has to be done manually before processing the data of another process.
for (i = 0; i < num_procs; i++) {
esd_unify_buffer(data, buffer[i], bufsize[i], mapfile);
esd_unify_clear_maps(data);
}
After all definitions have been processed, the unified definitions can be written to a global definition file and the unification data structure can be released.
esd_unify_write_defs(data, defsfile);
esd_unify_free(data);
- Note:
- This module uses the
assert()
macro to check various conditions (especially the values of given parameters) at runtime, which can cause a performance penalty.