-
Notifications
You must be signed in to change notification settings - Fork 36
Darshan Versions
Tthere are a handful of different versions to think about with Darshan.
- There is the software version (we are on 3.5.0),
- there is the overall log format version (currently 3.41)
- then each module within the log also has it's own version. Those start at 1 and just increment by one according to the needs of the module. POSIX is on 4 for example. DXT POSIX is on 1, DXT MPIIO is on 2 (I think because we added an offset field or something after the initial version)
You can bump the format of a module by 1 if you change something that only affects that one module.
The darshan-logutils library will read any 3.x version of darshan, and will up-convert anything it finds.
For example, let's add a new field ("pthread id") to the DXT module.
In this case the log file format can stay at 3.41, but the DXT POSIX format will need to go to 2 to reflect that it has a pthread id field. Then modify the logutils for dxt to detect if the module format is 1, and if so then make the record bigger to account for the extra pthread_id field and set it's value to -1.
Once that is done, any log with dxt data will display a pthread_id field in the dxt records, but it will be set to -1 on older logs, and set to a real pthtread id number on newly generated logs. The idea was to limit the scope of log changes, because at the end of the day darshan itself doesn't much care what data modules put into the file