Hi Kent,

On May 3, 2011, at 11:20 AM, Williams, Norman K wrote:

> OK.
> 
> 
> I'm not entirely clear how to coordinate different memory and disk
> footprints, particularly when using the C++ interface.
> 
> The steps I know about:
> 
> 1. Open the file
> 2. Open the DataSet.
> 3. Obtain the DataSpace from the Dataset.
> 4. Select a hyperslab to read data into a voxel buffer.
> 
> I select a hyperslab from the dataset to read based on the image region
> specified by the user. It's a little more complicated than that in ITK,
> but that summarizes the process.
> 
> At what stage in the process do I specify a different in-memory dataspace?

        The voxel buffer is the buffer that you want to describe with the 
in-memory dataspace. So, you'd define a new dataspace (with H5Screate) that 
specified the correct dimensions for your buffer.

> And how do I specify it's position in the larger on-disk dataspace?

        You specify a selection in the on-disk dataspace (probably with 
H5Sselect_all, H5Sselect_hyperslab, H5Sselect_elements, etc) and a selection in 
the in-memory dataspace (in the same way) and when you call H5Dread, the 
elements are transferred from the on-disk dataset into the memory buffer.

> If there's example code in the manual, just point me there.

        I think Binh-Minh already pointed you to the C++ examples, and you can 
search for H5Sselect_hyperslab in the 'examples' subdirectory of the HDF5 
distribution.

        Quincey

> On 5/3/11 10:56 AM, "Quincey Koziol" <[email protected]> wrote:
> 
>> Hi Kent,
>> 
>> On May 3, 2011, at 10:16 AM, Williams, Norman K wrote:
>> 
>>> I am using the H5Sselect_hyperslab method for both reading and writing
>>> already. Additionally when I write out an image, I 'chunk' the output
>>> and
>>> compress it.
>>> 
>>> 
>>> The question I have is what I can do to minimize the memory footprint.
>>> Based on my reading in the documentation, the Hyperslab interface
>>> actually
>>> scatters/gathers to/from an in-memory dataset, leading me to believe the
>>> entire dataset will be allocated in system memory.
>>> 
>>> So the question is how would I use HDF5 in such a way as to minimize the
>>> memory footprint in this context?
>> 
>>   You are allowed to create a memory dataspace that is different from
>> the dataset's dataspace in the file.  That will allow you to tune the
>> memory footprint.
>> 
> 
> 
> 
> ________________________________
> Notice: This UI Health Care e-mail (including attachments) is covered by the 
> Electronic Communications Privacy Act, 18 U.S.C. 2510-2521, is confidential 
> and may be legally privileged.  If you are not the intended recipient, you 
> are hereby notified that any retention, dissemination, distribution, or 
> copying of this communication is strictly prohibited.  Please reply to the 
> sender that you have received the message in error, then delete it.  Thank 
> you.
> ________________________________
> 
> _______________________________________________
> Hdf-forum is for HDF software users discussion.
> [email protected]
> http://mail.hdfgroup.org/mailman/listinfo/hdf-forum_hdfgroup.org


_______________________________________________
Hdf-forum is for HDF software users discussion.
[email protected]
http://mail.hdfgroup.org/mailman/listinfo/hdf-forum_hdfgroup.org

Reply via email to