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

Reply via email to