2012-02-10 7 views
23

Acabo de descubrir el formato HDF5 y estoy considerando usarlo para almacenar datos 3D distribuidos en un clúster de servidores de aplicaciones Java. He descubierto que hay varias implementaciones disponibles para Java, y les gustaría saber las diferencias entre ellos:HDF5 en Java: ¿Cuál es la diferencia entre las API disponibles?

más importante, me gustaría saber:

  • Cómo mu Se cubre el ch de la API nativa, ¿existen limitaciones que no cumplan en la API nativa?

  • ¿Hay soporte para "Parallel HDF5"?

  • Una vez que se cargan mis datos 3D, ¿recibo una "sobrecarga de llamada nativa" cada vez que accedo a un elemento en una matriz 3D? Es decir, ¿los datos en realidad se convierten en objetos Java o permanecen en "memoria nativa/JNI "?

  • ¿Hay alguna saben estabilidad problemas con un implementación particular, ya que un accidente en código nativo normalmente se lleva a toda la JVM abajo?

Respuesta

19

HDF Java sigue un enfoque por capas:

  • JHI5 - los envoltorios de bajo nivel JNI: muy flexible, pero también bastante tedioso de usar.

  • Paquete de objetos HDF de Java: una interfaz de alto nivel basada en JHI5.

  • HDFView: una aplicación de visor basada en Java basada en el paquete de objetos HDF de Java.

JHDF5 proporciona una construcción de interfaz de alto nivel en la capa JHI5 que proporciona la mayor parte de la funcionalidad de HDF5 a Java. La API tiene una curva de aprendizaje superficial y oculta la mayor parte del trabajo de mantenimiento del desarrollador. Puede ejecutar el paquete de objetos Java HDF (y HDFView) en la interfaz JHI5 que forma parte de JHDF5, de modo que las dos API pueden coexistir dentro de un programa Java.

Permafrost y Nujan parecen estar lejos de estar completos en este punto y Permafrost no ha visto mucha actividad recientemente, por lo que parece que no es la primera opción en este momento.

Creo que una buena ruta para usted es echar un vistazo tanto al paquete de objetos Java HDF5 como a JHDF5, decidir cuál de las dos API se ajusta mejor a sus necesidades e ir con esa.

Descargo de responsabilidad: He trabajado en la interfaz JHDF5, por lo que puede ser parcial.

Cuestiones relacionadas