thanks for the hint, but unfortunately I can't make any updates to the cluster...<br><br>Do you think both of the problems I experienced are bugs in Lustre and are resolved in current versions?<br><br>Thanks.<br>Alvaro.<br>

<br><div class="gmail_quote">On Fri, Aug 21, 2009 at 6:32 AM, di wang <span dir="ltr"><<a href="mailto:di.wang@sun.com">di.wang@sun.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

Hello,<br>
<br>
You may see bug 17197 and try to apply this patch <a href="https://bugzilla.lustre.org/attachment.cgi?id=25062" target="_blank">https://bugzilla.lustre.org/attachment.cgi?id=25062</a>  to your lustre src. Or you can wait 1.8.2.<br>


<br>
Thanks<br>
Wangdi<br>
<br>
Alvaro Aguilera wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div><div></div><div class="h5">
Hello,<br>
<br>
as a project for college I'm doing a behavioral comparison between Lustre and CXFS when dealing with simple strided files using POSIX semantics. On one of the tests, each participating process reads 16 chunks of data with a size of 32MB each, from a common, strided file using the following code:<br>


<br>
------------------------------------------------------------------------------------------<br>
int myfile = open("thefile", O_RDONLY);<br>
<br>
MPI_Barrier(MPI_COMM_WORLD); // the barriers are only to help measuring time<br>
<br>
off_t distance = (numtasks-1)*p.buffersize;<br>
off_t offset = rank*p.buffersize;<br>
<br>
int j;<br>
lseek(myfile, offset, SEEK_SET);<br>
for (j = 0; j < p.buffercount; j++) {<br>
       read(myfile, buffers[j], p.buffersize); // buffers are aligned to the page size<br>
       lseek(myfile, distance, SEEK_CUR);<br>
}<br>
<br>
MPI_Barrier(MPI_COMM_WORLD);<br>
<br>
close(myfile);<br>
------------------------------------------------------------------------------------------<br>
<br>
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.<br>


As you see, the read operations on process 0 stay more or less constant, taking about 0.12 seconds to complete, while on process 1 they increase up to 39 seconds!<br>
<br>
If I run the program with only one process, then the time stays at ~0.12 seconds per read operation. The problem doesn't appear if the O_DIRECT flag is used.<br>
<br>
Can somebody explain to me why is this happening? Since I'm very new to Lustre, I may be making some silly mistakes, so be nice to me ;)<br>
<br>
I'm using Lustre SLES 10 Patchlevel 1, Kernel 2.6.16.54-0.2.5_lustre.1.6.5.1.<br>
<br>
<br>
Thanks!<br>
<br>
Alvaro Aguilera.<br>
<br>
<br></div></div>
------------------------------------------------------------------------<br>
<br>
------------------------------------------------------------------------<div class="im"><br>
<br>
_______________________________________________<br>
Lustre-discuss mailing list<br>
<a href="mailto:Lustre-discuss@lists.lustre.org" target="_blank">Lustre-discuss@lists.lustre.org</a><br>
<a href="http://lists.lustre.org/mailman/listinfo/lustre-discuss" target="_blank">http://lists.lustre.org/mailman/listinfo/lustre-discuss</a><br>
  <br>
</div></blockquote>
<br>
</blockquote></div><br>