Thanks for pointing that out. I was using the default striping, which in my case is 1mb stripes, on one OST.
However, If I change the stripe size to 32mb (the size of the buffers being written/read), the function used to write the file using O_DIRECT stops working. Its code is very similar to the one posted above and the problem is that the write()-function stucks while writing the first buffer. Is there any trick for using O_DIRECT in Lustre? I've aligned the buffer using posix_memalign(), and every offset and count seem to be a multiple of the page-size (4kb). On Fri, Aug 21, 2009 at 12:04 AM, Brian J. Murrell <[email protected]>wrote: > On Thu, 2009-08-20 at 23:52 +0200, Alvaro Aguilera wrote: > > I'm facing the following problem: when this code is run in parallel > > the read operations on certain processes start to need more and more > > time to complete. I attached a graphical trace of this, when using > > only 2 processes. > > Just a (perhaps silly) question, but does the striping of the file (or > the directory the file is being created in) on the filesystem match your > I/O patterns? That is, ideally, each thread/rank/process (whatever you > want to call them) should be doing I/O in it's own stripe. > > $ man lfs > > if none of this is meaningful. > > b. > > > _______________________________________________ > Lustre-discuss mailing list > [email protected] > http://lists.lustre.org/mailman/listinfo/lustre-discuss > >
_______________________________________________ Lustre-discuss mailing list [email protected] http://lists.lustre.org/mailman/listinfo/lustre-discuss
