[petsc-users] VecLoad hdf5

Matthew Knepley knepley at gmail.com
Fri Dec 7 19:18:45 CST 2018


On Fri, Dec 7, 2018 at 4:17 PM Josh L <ysjosh.lo at gmail.com> wrote:

> I call VecSetBlockSizes before VecSetSizes instead of after, then it is
> working fine now.
> It can run with any number of processor.
> Is there any reason for this? I am using petsc/3.10 and Fortran.
>

Yes. VecSetSizes() calculates the division among processes. If you provide
the block size first,
it makes sure that blocks are not cut by the process division.

  Thanks,

     Matt


> Thanks,
> Josh
>
>
> Matthew Knepley <knepley at gmail.com> 於 2018年12月4日 週二 下午6:44寫道:
>
>> We have example code that writes and loads from HDF5. If you can't modify
>> that, send a simple
>> sample code that fails.
>>
>>   Thanks,
>>
>>     Matt
>>
>> On Tue, Dec 4, 2018 at 5:53 PM Josh L via petsc-users <
>> petsc-users at mcs.anl.gov> wrote:
>>
>>>
>>>
>>> Smith, Barry F. <bsmith at mcs.anl.gov> 於 2018年12月4日 週二 下午4:43寫道:
>>>
>>>>
>>>>
>>>> > On Dec 4, 2018, at 4:09 PM, Josh L <ysjosh.lo at gmail.com> wrote:
>>>> >
>>>> > I haven't figured out what causes it. I just use binaryopen instead
>>>> of HDF5, and everything works fine.
>>>>
>>>>    Did you originally save the data into the file with HDF5 format?
>>>>
>>>
>>> Yes, by
>>>     Set Vec name, and block size
>>>     PetscViewerHDF5Open(write)
>>>     VecView(vec,viewer)
>>>
>>>
>>> >
>>>> >
>>>> >
>>>> > Josh L <ysjosh.lo at gmail.com> 於 2018年12月4日 週二 下午2:55寫道:
>>>> > The first error comes from
>>>> > PetscStackCallHDF5Return(group,H5Gcreate2,(file_id, groupName, 0,
>>>> H5P_DEFAULT, H5P_DEFAULT));
>>>> >  #000: H5G.c line 314 in H5Gcreate2(): unable to create group
>>>> >     major: Symbol table
>>>> >     minor: Unable to initialize object
>>>> >
>>>> >
>>>> > Josh L <ysjosh.lo at gmail.com> 於 2018年12月4日 週二 下午2:38寫道:
>>>> > I set the name of 2 vectors to be the same, but still get the same
>>>> error.
>>>> >
>>>> >
>>>> >
>>>> > Josh L <ysjosh.lo at gmail.com> 於 2018年12月4日 週二 下午2:06寫道:
>>>> > I just found out that I missed that note in VecLoad manual page, and
>>>> I am trying it now.
>>>> > Thanks.
>>>> >
>>>> >
>>>> >
>>>> > Smith, Barry F. <bsmith at mcs.anl.gov> 於 2018年12月4日 週二 下午2:00寫道:
>>>> >
>>>> >    Hmm, this is a guess. HDF5 files read in objects based on their
>>>> names. Are you sure that the vector you saved and the vector you later try
>>>> to read in have the same name? You can set the name of the loaded vector
>>>> with PetscObjectSetName((PetscObject)nv,"name") after you create it to
>>>> match the name you used to save the vector.
>>>> >
>>>> >    Barry
>>>> >
>>>> >
>>>> > > On Dec 4, 2018, at 1:42 PM, Josh L via petsc-users <
>>>> petsc-users at mcs.anl.gov> wrote:
>>>> > >
>>>> > > Hi,
>>>> > >
>>>> > > I have a vec.h5 that generated serially by
>>>> > >   gv is a sequential vec
>>>> > >  VecSetblockSize(gv,3)
>>>> > >  PetscViewerHDF5Open(vec,h5,write)
>>>> > >   VecView(gv)
>>>> > >
>>>> > > and I want to read in with different number of processor by
>>>> > >   DMGetGlobalVector(dm,nv)
>>>> > >   PetscViewerHDF5Open(write)
>>>> > >   VecLoad(nv)
>>>> > >
>>>> > > nv has bs=3, and I have set bs for gv as 3.
>>>> > >
>>>> > > I get the following error. any hint to solve it ? thanks
>>>> > >
>>>> > > Error in HDF5 call H5Gcreate2() Status -1
>>>> > >   #000: H5G.c line 314 in H5Gcreate2(): unable to create group
>>>> > >     major: Symbol table
>>>> > >     minor: Unable to initialize object
>>>> > >   #001: H5Gint.c line 194 in H5G__create_named(): unable to create
>>>> and link to group
>>>> > >     major: Symbol table
>>>> > >     minor: Unable to initialize object
>>>> > >   #002: H5L.c line 1638 in H5L_link_object(): unable to create new
>>>> link to object
>>>> > >     major: Links
>>>> > >     minor: Unable to initialize object
>>>> > >   #003: H5L.c line 1882 in H5L_create_real(): can't insert link
>>>> > >     major: Symbol table
>>>> > >     minor: Unable to insert object
>>>> > >   #004: H5Gtraverse.c line 861 in H5G_traverse(): internal path
>>>> traversal failed
>>>> > >     major: Symbol table
>>>> > >     minor: Object not found
>>>> > >   #005: H5Gtraverse.c line 641 in H5G_traverse_real(): traversal
>>>> operator failed
>>>> > >     major: Symbol table
>>>> > >     minor: Callback failed
>>>> > >   #006: H5L.c line 1685 in H5L_link_cb(): unable to create object
>>>> > >     major: Object header
>>>> > >     minor: Unable to initialize object
>>>> > >   #007: H5O.c line 3016 in H5O_obj_create(): unable to open object
>>>> > >     major: Object header
>>>> > >     minor: Can't open object
>>>> > >   #008: H5Goh.c line 268 in H5O_group_create(): unable to create
>>>> group
>>>> > >     major: Symbol table
>>>> > >     minor: Unable to initialize object
>>>> > >   #009: H5Gint.c line 245 in H5G__create(): unable to create group
>>>> object header
>>>> > >     major: Symbol table
>>>> > >     minor: Unable to initialize object
>>>> > >   #010: H5Gobj.c line 163 in H5G__obj_create(): unable to create
>>>> group
>>>> > >     major: Symbol table
>>>> > >     minor: Unable to create file
>>>> > >   #011: H5Gobj.c line 206 in H5G__obj_create_real(): no write
>>>> intent on file
>>>> > >     major: Object cache
>>>> > >     minor: Bad value
>>>> > >
>>>> > >
>>>> > >
>>>> >
>>>>
>>>>
>>
>> --
>> What most experimenters take for granted before they begin their
>> experiments is infinitely more interesting than any results to which their
>> experiments lead.
>> -- Norbert Wiener
>>
>> https://www.cse.buffalo.edu/~knepley/
>> <http://www.cse.buffalo.edu/~knepley/>
>>
>

-- 
What most experimenters take for granted before they begin their
experiments is infinitely more interesting than any results to which their
experiments lead.
-- Norbert Wiener

https://www.cse.buffalo.edu/~knepley/ <http://www.cse.buffalo.edu/~knepley/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20181207/74337fcb/attachment-0001.html>


More information about the petsc-users mailing list