IPM Hompepage
Overview | Installation | User Guide | Implementation | Publications | Outreach

For questions and support, please contact the IPM developers at ipm-hpc-help@lists.sourceforge.net

Log File Format

The IPM log files are written in an ASCII format that roughly follows XML. The goal is to make a concise format that is easily parsed.

Log file examples:

Hashing Strategy

IPM uses a fixed size hash to store event information. The hashing strategy aims at making inserts with very low overhead (in terms of CPU time). Double open-address hashing is currently used. For each event the region, call, rank, and buffer size are stroed in a 64bit integer key. The hash maps this key in a roughly deterministic and roughly uniform way to a number between 0 and MAXSIZE_HASH-1, where MAXSIZE_HASH is a prime number. The default size is 32573. In practice fewer than the maximum number of entries should be stored in the hash since the number of collisions increases as the hash becomes full.

For example the event -> key -> hkey mapping for MPI events is as follows:

A key (64 bit int) is generated from the description of the event:

#define IPM_MPI_HASH_KEY(key,region,call,rank,size) {  \
 key = region; key = key << 8; \
 key |= call;  key = key << 16; \
 key |= rank;  key = key << 32; \
 key |= size;  \

A hash table index, hkey, is computed from the key

 hkey = (key%MAXSIZE_HASH+collisions*(1+key%(MAXSIZE_HASH-2)))%MAXSIZE_HASH
Which has been benchmarked as performing well (low overhead).

typedef struct ipm_hash_ent {
 double t_tot, t_min, t_max;
} ipm_hash_ent;

Last changed: Mon, 05 Oct 2009 22:36:19 +0000 on shell-22005 by fuerling
Website maintained by: The IPM developers. To get help send email to: