2012-02-10 15 views
23

Ho appena scoperto il formato HDF5 e sto pensando di utilizzarlo per archiviare dati 3D distribuiti su un cluster di server applicazioni Java. Ho scoperto che ci sono diverse implementazioni disponibili per Java, e vorrei sapere le differenze tra loro:HDF5 in Java: quali sono le differenze tra le API disponibili?

più importante, vorrei sapere:

  • Come mu ch dell'API nativa è coperto, esistono limitazioni che non sono nell'API nativa?

  • Se è disponibile il supporto per "Parallel HDF5"?

  • Una volta caricati i dati 3D, ricevo un "overhead di chiamata nativa" ogni volta che accedo a un elemento in un array 3D? Cioè, i dati vengono effettivamente trasformati in oggetti Java o rimangono nella "memoria nativa/JNI "?

  • C'è qualche sanno stabilità problemi con un particolare implementazione, dal momento che un incidente in codice nativo richiede normalmente l'intero JVM verso il basso?

risposta

19

HDF Java segue un approccio a più livelli:

  • JHI5 - il basso livello wrapper JNI: molto flessibile, ma anche abbastanza noioso da usare.

  • Pacchetto di oggetti HDF Java: un'interfaccia di alto livello basata su JHI5.

  • HDFView - un'applicazione di visualizzazione basata su Java basata sul pacchetto di oggetti HDF Java.

JHDF5 fornisce un edificio interfaccia di alto livello sullo strato JHI5 che fornisce la maggior parte della funzionalità di HDF5 a Java. L'API ha una curva di apprendimento poco profonda e nasconde la maggior parte del lavoro di manutenzione da parte dello sviluppatore. È possibile eseguire il pacchetto di oggetti HDF Java (e HDFView) sull'interfaccia JHI5 che fa parte di JHDF5, in modo che le due API possano coesistere all'interno di un programma Java.

Permafrost e Nujan sembrano lontani dall'essere completi a questo punto e il permafrost non ha visto molte attività recentemente, quindi sembra che non siano la prima scelta in questo momento.

Penso che un buon percorso per te sia quello di dare un'occhiata sia al pacchetto di oggetti Java HDF5 che a JHDF5, decidere quale delle due API soddisfare meglio le tue esigenze e andare con quella.

Disclaimer: Ho lavorato all'interfaccia JHDF5, quindi potrei essere di parte.

Problemi correlati