File locking failed in ADIOI_Set_lock
Wei-keng Liao
wkliao at ece.northwestern.edu
Fri Sep 24 10:53:30 CDT 2010
Hi, John,
Rob is right, turning off data sieving just avoids the error messages and may
significantly slow down the performance (if your I/O is non-contiguous and
only calls non-collective.)
On Lustre, you need collective I/O to get high I/O bandwidths. Even if your
write request from each process is already large and contiguous, non-collective
write will still give you poor results. This is not the case on other file
systems, e.g. GPFS.
Is there an option to turn on collective I/O in WRF and PIO?
If non-collective I/O is the only option (due to the irregular data
distribution), then non-blocking I/O is another solution. In
pnetcdf 1.2.0, non-blocking I/O can aggregate multiple
non-collective requests into a single collective one. However, this
approach requires changes to the pnetcdf calls in the I/O library
used by WRF and PIO. The changes should be very simple, though.
In general, I would suggest Lustre users to seek all opportunity to call
collective I/O.
Wei-keng
On Sep 24, 2010, at 9:44 AM, Rob Latham wrote:
> On Fri, Sep 24, 2010 at 07:49:06AM -0600, Mark Taylor wrote:
>> Hi John,
>>
>> I've had a very similar issue a while ago on several older Lustre
>> filesystems at Sandia, and I can confirm that setting those hints did
>> allow the code to run
>
> if you turn off data sieving then there will be no more lock calls.
> Depending on how your application partitions the arrays, that could be
> fine, or it could result in a billion 8 byte operations.
>
>> (but I could never get pnetcdf to be any faster
>> than netcdf).
>
> Unsurprising, honestly. If you are dealing with Lustre, then you must
> both use an updated ROMIO and use collective I/O.
>
> Here is the current list of MPI-IO implementations that work well with
> Lustre:
>
> - Cray MPT 3.2 or newer
> - MPICH2-1.3.0a1 or newer
> - and that's it.
>
> I think the OpenMPI community is working on a re-sync with MPICH2
> romio. I also think we can stitch together a patch against OpenMPI if
> you really need the improved lustre driver. I'm not really in
> patch-generating mode right now, but maybe once i'm back in the office
> I can see how tricky it will be.
>
>> This was with CAM, with pnetcdf being called by PIO, and
>> PIO has a compiler option to turn this on, -DPIO_LUSTRE_HINTS.
>>
>> However, on Sandia's redsky (more-or-less identical to RedMesa), I just
>> tried these hints and I am also getting those same error messages you
>> are seeing. So please let me know if you get this resolved.
>
> I can't think of any other code paths that use locking, unless your
> system for some reason presents itself as nfs.
>
> That's why rajeev suggested prefixing with lustre: Unfortunately, that
> won't help: it has only been since March of this year that (with
> community support) the Lustre driver in MPICH2 passed all the ROMIO
> tests, and now we need to get that into OpenMPI.
>
> ==rob
>
> --
> Rob Latham
> Mathematics and Computer Science Division
> Argonne National Lab, IL USA
>
More information about the parallel-netcdf
mailing list