Simplify `globalranks` vs. `ranks`?
A SIONlib file container contains an arbitrary number n
of logical files. Each one of these n
files has two identifying numbers attached to it:
- an implicit one in the range
0...n-1
,siondump
calls this "Task", - an explicit one that is freely assigned by the user, called "globalrank".
Depending on how the file was opened (e.g. serial open vs. mapped open) either the implicit or explicit rank numbers are used to refer to a logical file when doing a sion_seek
.
- This is confusing. Why are there two rank numbers for a logical file? Why does
sion_seek
behave differently, depending on how a file was opened? - The current implementation is incomplete. The serial open functions do not perform any validation of the
globalranks
making it possible to create files that trip up a later mapped open (see e.g. #156 and #174).
Is the additional identifying number really needed or can the mechanism be simplified?