[petsc-users] Unable to create >4GB sized HDF5 files on Cray XC30

Juha Jäykkä juhaj at iki.fi
Tue Nov 12 04:37:13 CST 2013


Hi Jed,

Let's see what comes of this... I forked petsc/petsc and created a pull 
request. There are probably loads of unneeded casts and at least one "+1" just 
to make sure I'm not rounding a float down into an integer under any 
circumstances.

> Thanks, the logic looks reasonable.  Unfortunately, I don't think we can
> have comprehensive tests because the large file sizes won't work in many
> test environments.  That said, we could have a configurable parameter
> instead of hard-coding 4 GiB, in which case we could set it to 1 MiB (or
> less) for testing.

I'll leave the parameter for others to implement: I don't have a good idea of 
how to do that. I believe I can provide a testing environment (but no access 
to it, I'm afraid) for those big files, just let me know what kind of test 
suite I should create. Not that the old chunking seems to have had much 
testing considering how seriously broken it is. ;)

> > +  // just in case some libraries do not empty memory for local variables:
> We have to use C89-style comments because of Microsoft.

What is this, Microsoft's compiler cannot do C99? Is it too new a standard, at 
14 years old?

> > +
> > +  // some requirements for the chunks (assuming no split along time-step)
> > +  int ranks;
> Declarations cannot be mixed with statements in C89.

Microsoft again? I've reverted these *standard* pieces of code into an 
obsolete, old standard. I really had no idea there are STILL compilers around 
which cannot do C99.

> PetscObjectComm((PetscObject)xin).  And please name the variable "size"
> or "comm_size".

Done.

> One reasonable thing is to write
> 
>   hsize_t Ki = 1024;
> 
> and then
> 
>   Gi = Ki*Ki*Ki;

Done.

> I would prefer to move all the logic below into a function
> VecGetHDF5ChunkSize().  Note that almost the same logic appears in

Done.

> Please use PetscMax() and PetscMin().  You can define the 3-way versions
> at the top of the file if need be.

Done. I also removed the 3-way versions.

> You mixed tabs and spaces here.  Please use all spaces.

Probably forgot. =) I mostly write python, so I'm very surprised I managed to 
mix tabs and spaces, considering how nice side-effects that often has in 
python.

I hope this works and can get to the next release.

Cheers,
Juha
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 230 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20131112/1c5037bb/attachment.pgp>


More information about the petsc-users mailing list