Would you object to me adding this patch to the lustre/contrib directory
in the lustre distribution?
Not at all. Please do so. We can also consider update it as it gets more mature.
Also, are there any plans to include this into an MPICH distribution? I
think a lot of Lustre users would be happy to see that.
I agree with the needs. However, it is not planned yet.
I guess part of the reason is because there are several different ROMIO
libraries over Lustre: ADIO over UFS that just generically works, ADIO over
Lustre (this patch), and ADIO over libsysio/liblustre. But all these should
be able to merge into an integral code base that can allow specific
optimizations for Lustre, things like what you mentioned below.
Other notes - in about Lustre 1.6.2 it will be possible to use the FIEMAP
ioctl to help in efficiently preallocating space in the file for the
ADIO_FCNTL_SET_DISKSPACE fcntl. That will avoid the need to read the
whole file, and instead just get a list of allocated and unallocated
extents back.
Good to know this. I will try to incorporate that.
As for the #ifdef, part of it is because the inheritance from other
components. That does not mean ADIO_lustre needs to be the same way though.
I will update you on this further.
--
Weikuan
As an aside, it's too bad that the ADIO code is such a mess of #ifdefs.
I suspect much of it could be cleaned up by having proper arch-specific
macros/helper functions to wrap the internals.
+#ifdef HAVE_STATUS_SET_BYTES
+ if (done && ((*request)->nbytes != -1))
+ MPIR_Status_set_bytes(status, (*request)->datatype, (*request)->nbytes);
+#endif
For example, this could be wrapped in a header and then each ADIO_* driver
does not need to worry if HAVE_STATUS_SET_BYTES is set or not.
Cheers, Andreas
--
Andreas Dilger
Principal Software Engineer
Cluster File Systems, Inc.
_______________________________________________
Lustre-discuss mailing list
[email protected]
https://mail.clusterfs.com/mailman/listinfo/lustre-discuss