Quantcast

HighFive : Modern HDF5 Header-only C++ interface

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

HighFive : Modern HDF5 Header-only C++ interface

Adrien Devresse
Hi All,

A little announcement, like I think potentially people in the HDF5
community could be interested in that.

We developed at Blue Brain Project ( http://bluebrain.epfl.ch/ )  /
Human Brain Project  (https://www.humanbrainproject.eu/) a simple,
modern, header-only  C++ interface to the libhdf5.
Mainly to overcome the current limitations of the actual HDF5 C++
interface ( no parallel HDF5, no thread safety, not modern C++ friendly )


https://github.com/BlueBrain/HighFive


It is Open Source and here is a non-explicit list of features :

- It supports both serial and parallel HDF5 with C++ ( contrary to the
official bindings that disable c++ bindings when compiled with parallel
mode )

- It does not require any compilation, and is embeddable in any project
( Boost Software License ).

- It supports automatic type mapping with C++ types and STL containers :
std::vector, std::string, std::array, etc...

- It supports Boost MultiArray and Boost UBLAS for Multi-dimentional
dataset and Matrix  load/save to/from HDF5 datasets.

- It is design to be modern C++11 / C++14  friendly

- It aims to be minimalsit and does not have any other dependencies than
libhdf5 itself


It does not support the integrality of the libhdf5 API for now, but If
you have any interest  or comment about it, let us know.


Adrien Devresse
Blue Brain Project / Human Brain Project




_______________________________________________
Hdf-forum is for HDF software users discussion.
[hidden email]
http://lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org
Twitter: https://twitter.com/hdf5
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: HighFive : Modern HDF5 Header-only C++ interface

Miller, Mark C.

That sounds cool. Thanks for sharing and making it available on github.

 

Mark

 

 

"Hdf-forum on behalf of Adrien Devresse" wrote:

 

Hi All,

 

A little announcement, like I think potentially people in the HDF5

community could be interested in that.

 

We developed at Blue Brain Project ( http://bluebrain.epfl.ch/ )  /

Human Brain Project  (https://www.humanbrainproject.eu/) a simple,

modern, header-only  C++ interface to the libhdf5.

Mainly to overcome the current limitations of the actual HDF5 C++

interface ( no parallel HDF5, no thread safety, not modern C++ friendly )

 

 

 

 

It is Open Source and here is a non-explicit list of features :

 

- It supports both serial and parallel HDF5 with C++ ( contrary to the

official bindings that disable c++ bindings when compiled with parallel

mode )

 

- It does not require any compilation, and is embeddable in any project

( Boost Software License ).

 

- It supports automatic type mapping with C++ types and STL containers :

std::vector, std::string, std::array, etc...

 

- It supports Boost MultiArray and Boost UBLAS for Multi-dimentional

dataset and Matrix  load/save to/from HDF5 datasets.

 

- It is design to be modern C++11 / C++14  friendly

 

- It aims to be minimalsit and does not have any other dependencies than

libhdf5 itself

 

 

It does not support the integrality of the libhdf5 API for now, but If

you have any interest  or comment about it, let us know.

 

 

Adrien Devresse

Blue Brain Project / Human Brain Project

 

 

 

 

_______________________________________________

Hdf-forum is for HDF software users discussion.

 


_______________________________________________
Hdf-forum is for HDF software users discussion.
[hidden email]
http://lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org
Twitter: https://twitter.com/hdf5
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: HighFive : Modern HDF5 Header-only C++ interface

Nelson, Jarom

I’ll definitely be cloning and checking it out. Thanks!

 

From: Hdf-forum [mailto:[hidden email]] On Behalf Of Miller, Mark C.
Sent: Thursday, March 23, 2017 8:58 AM
To: HDF Users Discussion List <[hidden email]>
Subject: Re: [Hdf-forum] HighFive : Modern HDF5 Header-only C++ interface

 

That sounds cool. Thanks for sharing and making it available on github.

 

Mark

 

 

"Hdf-forum on behalf of Adrien Devresse" wrote:

 

Hi All,

 

A little announcement, like I think potentially people in the HDF5

community could be interested in that.

 

We developed at Blue Brain Project ( http://bluebrain.epfl.ch/ )  /

Human Brain Project  (https://www.humanbrainproject.eu/) a simple,

modern, header-only  C++ interface to the libhdf5.

Mainly to overcome the current limitations of the actual HDF5 C++

interface ( no parallel HDF5, no thread safety, not modern C++ friendly )

 

 

 

 

It is Open Source and here is a non-explicit list of features :

 

- It supports both serial and parallel HDF5 with C++ ( contrary to the

official bindings that disable c++ bindings when compiled with parallel

mode )

 

- It does not require any compilation, and is embeddable in any project

( Boost Software License ).

 

- It supports automatic type mapping with C++ types and STL containers :

std::vector, std::string, std::array, etc...

 

- It supports Boost MultiArray and Boost UBLAS for Multi-dimentional

dataset and Matrix  load/save to/from HDF5 datasets.

 

- It is design to be modern C++11 / C++14  friendly

 

- It aims to be minimalsit and does not have any other dependencies than

libhdf5 itself

 

 

It does not support the integrality of the libhdf5 API for now, but If

you have any interest  or comment about it, let us know.

 

 

Adrien Devresse

Blue Brain Project / Human Brain Project

 

 

 

 

_______________________________________________

Hdf-forum is for HDF software users discussion.

 


_______________________________________________
Hdf-forum is for HDF software users discussion.
[hidden email]
http://lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org
Twitter: https://twitter.com/hdf5
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: HighFive : Modern HDF5 Header-only C++ interface

Elvis Stansvik
In reply to this post by Adrien Devresse

Den 23 mars 2017 1:58 em skrev "Adrien Devresse" <[hidden email]>:
>
> Hi All,
>
> A little announcement, like I think potentially people in the HDF5
> community could be interested in that.
>
> We developed at Blue Brain Project ( http://bluebrain.epfl.ch/ )  /
> Human Brain Project  (https://www.humanbrainproject.eu/) a simple,
> modern, header-only  C++ interface to the libhdf5.
> Mainly to overcome the current limitations of the actual HDF5 C++
> interface ( no parallel HDF5, no thread safety, not modern C++ friendly )

This looks very nice, thanks for sharing! I have my own (much much more basic) HDF5File class, but I'm seriously considering using this instead, now that I know about it.

I'm interested in how you handle thread safety. I've only had a quick look, but looking at e.g. SliceTraits<Derivate>::read, I can't see any lock being taken before the call to H5Dread (nor around the surrounding C++ code). Do you assume the HDF5 library is compiled in thread safe mode? And is are the wrappers themselves thread safe?

Thanks,
Elvis

>
>
> https://github.com/BlueBrain/HighFive
>
>
> It is Open Source and here is a non-explicit list of features :
>
> - It supports both serial and parallel HDF5 with C++ ( contrary to the
> official bindings that disable c++ bindings when compiled with parallel
> mode )
>
> - It does not require any compilation, and is embeddable in any project
> ( Boost Software License ).
>
> - It supports automatic type mapping with C++ types and STL containers :
> std::vector, std::string, std::array, etc...
>
> - It supports Boost MultiArray and Boost UBLAS for Multi-dimentional
> dataset and Matrix  load/save to/from HDF5 datasets.
>
> - It is design to be modern C++11 / C++14  friendly
>
> - It aims to be minimalsit and does not have any other dependencies than
> libhdf5 itself
>
>
> It does not support the integrality of the libhdf5 API for now, but If
> you have any interest  or comment about it, let us know.
>
>
> Adrien Devresse
> Blue Brain Project / Human Brain Project
>
>
>
>
> _______________________________________________
> Hdf-forum is for HDF software users discussion.
> [hidden email]
> http://lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org
> Twitter: https://twitter.com/hdf5


_______________________________________________
Hdf-forum is for HDF software users discussion.
[hidden email]
http://lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org
Twitter: https://twitter.com/hdf5
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: HighFive : Modern HDF5 Header-only C++ interface

Adrien Devresse

This looks very nice, thanks for sharing! I have my own (much much more basic) HDF5File class, but I'm seriously considering using this instead, now that I know about it.


Thanks :)


I'm interested in how you handle thread safety. I've only had a quick look, but looking at e.g. SliceTraits<Derivate>::read, I can't see any lock being taken before the call to H5Dread (nor around the surrounding C++ code). Do you assume the HDF5 library is compiled in thread safe mode? And is are the wrappers themselves thread safe?

For now, you get the thread safety provided by the HDF5 library yes.
If libhdf5 has been compiled with thread safety, then HighFive is thread safe. If not, you need to do the locking yourself unfortunately.
All the wrappers around libhdf5 provided by HighFive are thread-safe.



Adrien



Le 24. 03. 17 à 08:41, Elvis Stansvik a écrit :

Den 23 mars 2017 1:58 em skrev "Adrien Devresse" <[hidden email]>:
>
> Hi All,
>
> A little announcement, like I think potentially people in the HDF5
> community could be interested in that.
>
> We developed at Blue Brain Project ( http://bluebrain.epfl.ch/ )  /
> Human Brain Project  (https://www.humanbrainproject.eu/) a simple,
> modern, header-only  C++ interface to the libhdf5.
> Mainly to overcome the current limitations of the actual HDF5 C++
> interface ( no parallel HDF5, no thread safety, not modern C++ friendly )

This looks very nice, thanks for sharing! I have my own (much much more basic) HDF5File class, but I'm seriously considering using this instead, now that I know about it.

I'm interested in how you handle thread safety. I've only had a quick look, but looking at e.g. SliceTraits<Derivate>::read, I can't see any lock being taken before the call to H5Dread (nor around the surrounding C++ code). Do you assume the HDF5 library is compiled in thread safe mode? And is are the wrappers themselves thread safe?

Thanks,
Elvis

>
>
> https://github.com/BlueBrain/HighFive
>
>
> It is Open Source and here is a non-explicit list of features :
>
> - It supports both serial and parallel HDF5 with C++ ( contrary to the
> official bindings that disable c++ bindings when compiled with parallel
> mode )
>
> - It does not require any compilation, and is embeddable in any project
> ( Boost Software License ).
>
> - It supports automatic type mapping with C++ types and STL containers :
> std::vector, std::string, std::array, etc...
>
> - It supports Boost MultiArray and Boost UBLAS for Multi-dimentional
> dataset and Matrix  load/save to/from HDF5 datasets.
>
> - It is design to be modern C++11 / C++14  friendly
>
> - It aims to be minimalsit and does not have any other dependencies than
> libhdf5 itself
>
>
> It does not support the integrality of the libhdf5 API for now, but If
> you have any interest  or comment about it, let us know.
>
>
> Adrien Devresse
> Blue Brain Project / Human Brain Project
>
>
>
>
> _______________________________________________
> Hdf-forum is for HDF software users discussion.
> [hidden email]
> http://lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org
> Twitter: https://twitter.com/hdf5



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



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

signature.asc (836 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: HighFive : Modern HDF5 Header-only C++ interface

Elvis Stansvik
2017-03-24 9:02 GMT+01:00 Adrien Devresse <[hidden email]>:

> This looks very nice, thanks for sharing! I have my own (much much more
> basic) HDF5File class, but I'm seriously considering using this instead, now
> that I know about it.
>
>
> Thanks :)
>
>
> I'm interested in how you handle thread safety. I've only had a quick look,
> but looking at e.g. SliceTraits<Derivate>::read, I can't see any lock being
> taken before the call to H5Dread (nor around the surrounding C++ code). Do
> you assume the HDF5 library is compiled in thread safe mode? And is are the
> wrappers themselves thread safe?
>
>
> For now, you get the thread safety provided by the HDF5 library yes.
> If libhdf5 has been compiled with thread safety, then HighFive is thread
> safe. If not, you need to do the locking yourself unfortunately.
> All the wrappers around libhdf5 provided by HighFive are thread-safe.

Alright, thanks for clarifying.

Elvis

>
>
>
> Adrien
>
>
>
> Le 24. 03. 17 à 08:41, Elvis Stansvik a écrit :
>
> Den 23 mars 2017 1:58 em skrev "Adrien Devresse" <[hidden email]>:
>>
>> Hi All,
>>
>> A little announcement, like I think potentially people in the HDF5
>> community could be interested in that.
>>
>> We developed at Blue Brain Project ( http://bluebrain.epfl.ch/ )  /
>> Human Brain Project  (https://www.humanbrainproject.eu/) a simple,
>> modern, header-only  C++ interface to the libhdf5.
>> Mainly to overcome the current limitations of the actual HDF5 C++
>> interface ( no parallel HDF5, no thread safety, not modern C++ friendly )
>
> This looks very nice, thanks for sharing! I have my own (much much more
> basic) HDF5File class, but I'm seriously considering using this instead, now
> that I know about it.
>
> I'm interested in how you handle thread safety. I've only had a quick look,
> but looking at e.g. SliceTraits<Derivate>::read, I can't see any lock being
> taken before the call to H5Dread (nor around the surrounding C++ code). Do
> you assume the HDF5 library is compiled in thread safe mode? And is are the
> wrappers themselves thread safe?
>
> Thanks,
> Elvis
>
>>
>>
>> https://github.com/BlueBrain/HighFive
>>
>>
>> It is Open Source and here is a non-explicit list of features :
>>
>> - It supports both serial and parallel HDF5 with C++ ( contrary to the
>> official bindings that disable c++ bindings when compiled with parallel
>> mode )
>>
>> - It does not require any compilation, and is embeddable in any project
>> ( Boost Software License ).
>>
>> - It supports automatic type mapping with C++ types and STL containers :
>> std::vector, std::string, std::array, etc...
>>
>> - It supports Boost MultiArray and Boost UBLAS for Multi-dimentional
>> dataset and Matrix  load/save to/from HDF5 datasets.
>>
>> - It is design to be modern C++11 / C++14  friendly
>>
>> - It aims to be minimalsit and does not have any other dependencies than
>> libhdf5 itself
>>
>>
>> It does not support the integrality of the libhdf5 API for now, but If
>> you have any interest  or comment about it, let us know.
>>
>>
>> Adrien Devresse
>> Blue Brain Project / Human Brain Project
>>
>>
>>
>>
>> _______________________________________________
>> Hdf-forum is for HDF software users discussion.
>> [hidden email]
>> http://lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org
>> Twitter: https://twitter.com/hdf5
>
>
>
> _______________________________________________
> Hdf-forum is for HDF software users discussion.
> [hidden email]
> http://lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org
> Twitter: https://twitter.com/hdf5
>
>
>
> _______________________________________________
> Hdf-forum is for HDF software users discussion.
> [hidden email]
> http://lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org
> Twitter: https://twitter.com/hdf5

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