Code reuse and composability
The implementation of SIONlib misses a lot of opportunities for making code reusable and composable. E.g. paropen_mapped
(n processes all open an individual, arbitrary number of logical files) is a generalisation of paropen
(n processes all open one logical file), but paropen
is not implemented in terms of paropen_mapped
. As a result, many features are not integrated well with one another, for example:
- there is no collective version of
sion_fwrite_key
andsion_fread_key
and thus also no integration with buddy checkpointing -
paropen_mapped
does not support buddy checkpointing -
sion_dup
is not implemented for all modes of opening files -
sion_seek
is not implemented for all modes of opening files and behaves differently depending on how the file was opened (see #177) -
sion_open
does not support multiple physical files - ...