On Tue, Jun 10, 2014 at 11:40:07PM +0100, Tony Kennedy - Ventana Systems UK 
wrote:
> I've got to store anything from ten to possibly millions of time
> series. At the moment, I create a simple dataspace and store the
> time series which all works. But once I get to a few thousand time
> series, performance drops off so HDF5 is no longer an option for me.
> 
> Can anyone suggest anything I can try? The function to write the
> data to the HDF5 is below, it's pretty simple.
> 
> Any suggestions at all are more than welcome.

If I read correctly, you do not close the attribute attr2 or its dataspace aid2.
This may take up memory and decrease performance.

Regards,

Pierre

> 
> All the best,
> 
> Tony.
> 
> 
> int AddTimeSeriesToHDF5File(int file_id, charutf8* pStrVarName,
> double *pVars, int nVals, BOOL bCompress)
> {
>     hsize_t            dims[1];
>     hid_t            dataspace_id;
>     hid_t            dcpl, aid2 ;
>     hid_t            dataset_id;
>     hid_t            attr2;
>     herr_t            status;
>     hid_t            plist_id;        //compress
>     hsize_t            cdims[1];
> 
>     //bCompress = FALSE;
>     bCompress = TRUE;
> 
>     dims[0] = nVals;
>     dataspace_id = H5Screate_simple(1, dims, NULL);
> 
>     if ( bCompress )
>     {
>         plist_id  = H5Pcreate (H5P_DATASET_CREATE);
>         cdims[0] = nVals;
>         status = H5Pset_chunk (plist_id , 1, cdims);
> 
>         status = H5Pset_deflate (plist_id , 9);
>     }
>     else
>     {
>         plist_id = H5P_DEFAULT;
>     }
> 
>     //Compact dataset test start
>     //dcpl = H5Pcreate (H5P_DATASET_CREATE);
>     //status = H5Pset_layout (dcpl, H5D_COMPACT);
>     //Compact dataset test end
> 
>     // Open an existing dataset.
>     dataset_id = H5Dcreate2(file_id, pStrVarName, H5T_NATIVE_DOUBLE,
> dataspace_id, H5P_DEFAULT, plist_id , H5P_DEFAULT);
> 
>     //Attribute set start
>     aid2  = H5Screate(H5S_SCALAR);
>     attr2 = H5Acreate2(dataset_id, "Number of points",
> H5T_NATIVE_INT, aid2, H5P_DEFAULT, H5P_DEFAULT);
>     status = H5Awrite(attr2, H5T_NATIVE_INT, &nVals);
>     //Attribute set end
> 
>     //Now try writing data
>     status = H5Dwrite(dataset_id, H5T_NATIVE_DOUBLE, H5S_ALL,
> H5S_ALL, H5P_DEFAULT, pVars);
>     status = H5Sclose(dataspace_id);
>     status = H5Dclose(dataset_id);
>     status = H5Pclose(plist_id);
> 
>     return status;
> }
> 

> _______________________________________________
> Hdf-forum is for HDF software users discussion.
> [email protected]
> http://mail.lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org
> Twitter: https://twitter.com/hdf5

-- 
-----------------------------------------------------------
Pierre de Buyl
KU Leuven - Polymer Chemistry and Materials
T +32 16 327355
W http://pdebuyl.be/
-----------------------------------------------------------

_______________________________________________
Hdf-forum is for HDF software users discussion.
[email protected]
http://mail.lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org
Twitter: https://twitter.com/hdf5

Reply via email to