HDF5

From Alliance Doc
Jump to navigation Jump to search
This site replaces the former Compute Canada documentation site, and is now being managed by the Digital Research Alliance of Canada.

Ce site remplace l'ancien site de documentation de Calcul Canada et est maintenant géré par l'Alliance de recherche numérique du Canada.

This page is a translated version of the page HDF5 and the translation is 100% complete.
Other languages:

Généralités

HDF5 (pour Hierarchical Data Format) est une bibliothèque de formatage des données scientifiques et qui en facilite le stockage, la lecture, la visualisation, la manipulation et l'analyse. Elle traite tous les types de données et sa conception permet autant des entrées-sorties flexibles et efficaces que la prise en charge de forts volumes de données. Elle est portable et extensible et peut accompagner les applications dans leur évolution. La suite HDF5 Technology comprend des outils et des applications pour la gestion, la manipulation, la visualisation et l'analyse de données en format HDF5. HDF (appelée aussi HDF4) est une bibliothèque et un format de fichier multiformat pour le stockage et la gestion sur plusieurs ordinateurs. HDF4 est le format original et même si elle est toujours supportée, la version HDF5 est recommandée.

Description

HDF a été conçue pour

  • de forts volumes de données et des données complexes, mais peut être utilisée pour de bas volumes et des données simples
  • toutes les tailles et tous les types de systèmes (portable)
  • stockage et entrée-sortie flexibles et efficients
  • applications peuvent évoluer et traiter de nouveaux modèles

HDF comprend :

  • un format de fichier pour le stockage de données HDF4/HDF5
  • un modèle pour organiser et accéder des données HDF4/HDF5 avec diverses applications
  • plusieurs logiciels dont des bibliothèques, des modules linguistiques et plusieurs outils spécifiques au format

Références :

Points forts

  • Les données sont indépendantes de l'architecture matérielle (endianness).
  • Les données structurées en unités physiques permettent le suivi de l'information pertinente.
  • Utilisable en parallèle (MPI-IO)
  • Les données peuvent être compressées à l'écriture (zlib ou szip).
  • Interfaces pour C, C++, Fortran 90, Java et Python
  • Gère tous les types de données (plus que NetCDF ).
  • Lecture et écriture en format .mat de Matlab.
  • Gratuit pour la plupart des plateformes

Points faibles

  • Interface plus compliquée que celle de NetCDF .
  • HDF5 n'exige pas UTF-8; ASCII est habituellement employé.
  • Les ensembles de données ne peuvent être libérés sans qu'une copie du fichier soit créée avec un autre outil.

Guide de démarrage

Nous abordons ici les détails de configuration.

Modules d'environnement

Les modules suivants sont disponibles sur Cedar et Graham via CVMFS :

  • hdf
    • version 4.1 et précédentes
  • hdf5
    • plus récente version de HDF5
  • hdf5-mpi
    • pour utiliser MPI

Exécutez module avail hdf pour connaître les versions disponibles pour le compilateur et les modules MPI que vous avez chargés. Pour la liste complète des modules HDF4/HDF5, exécutez module -r spider '.*hdf.*'.

Utilisez code>module load hdf/version ou module load hdf5/version pour configurer l'environnement selon la version sélectionnée. Par exemple, pour charger HDF5 version 1.8.18, lancez

Question.png
[name@server ~]$ module load hdf5/1.8.18

Scripts de soumission de tâche

Pour des exemples de scripts pour l'ordonnanceur Slurm, consultez Exécuter des tâches. Nous vous recommandons d'utiliser la commande module load ...dans votre script.

Lier à des bibliothèques HDF

Voici des exemples en mode séquentiel et en mode parallèle ː

Mode séquentiel

[name@server ~]$ module load hdf5/1.8.18
[name@server ~]$ gcc example.c -lhdf5


Mode parallèle

[name@server ~]$ module load hdf5-mpi/1.8.18
[name@server ~]$ mpicc example.c -lhdf5


Exemple

Consultez un exemple de lecture et écriture dans un ensemble de données. Des nombres entiers sont d'abord écrits avec des dimensions data space de DIM0xDIM1, puis le fichier est fermé. Le fichier est ensuite rouvert, les données sont lues et affichées.

Compilez et exécutez avec

[name@server ~]$ module load hdf5-mpi
[name@server ~]$ mpicc h5ex_d_rdwr.c -o h5ex_d_rdwr -lhdf5
[name@server ~]$ mpirun -n 2 ./h5ex_d_rdwr


Utilitaires

Vous trouverez la liste complète sur le site web du Hdfgroup. Soulignons les utilitaires suivants ː

  • HDF5 ODBC Connector
interface SQL pour le format HDF5 data en Excel, Tableau et autres
  • HDFView
fureteur Java et paquet objets pour HDF5-1.10 (identification d'objets 64-bits) et HDF 4.2.12 (et suivantes)
  • quelques outils en ligne de commande
    • gif2h5/h52gif
    • h5cc, h5fc, h5c++
    • h5debug
    • h5diff
    • h5dump
    • h5import
  • h5check
vérification de la validité d'un fichier HDF5
  • h5edit
outils d'édition