Qui d'entre vous utilise le format de data HDF5 sous mageia?
Je m'y perds un peu dans toutes les librairies.
Discussions Libres
-
- Voir le profil du membre Anonymous23
- Inscrit le : 19/03/2022
- Groupes :
-
Forgeron
J'ai un gros code Matlab dont je voudrais convertir cœur en C++ puis la surface en python.
Pour ce faire j'envisage:
1) Que le code Matlab fasse des calculs préliminaires et génère des tableaux de données.
2) Il les sauvegarde en HDF5
3) Le code c++ (exécutable) lit les données, fait les calculs, renvoie un HDF5.
4) Matlab le lit et trace les données
Donc je regarde sur Mageia App Db les bibliothèques HDF5 et je trouve:
Une idée de qui fait quoi?
Bonne nuit
B
Dell Précision 5520 et 7810. MGA9 Mate et KDE et Librazik 4
-
- Voir le profil du membre Anonymous23
- Inscrit le : 19/03/2022
- Groupes :
-
Forgeron
C'est la me chose que quand je fais urpmi?
Il va probablement falloir que je compile HDFview
Bonne nuit
Édité par Anonymous23 Le 23/05/2022 à 05h57
Dell Précision 5520 et 7810. MGA9 Mate et KDE et Librazik 4

Papoteur Membre non connecté
-
- Voir le profil du membre Papoteur
- Inscrit le : 03/10/2011
- Groupes :
-
Modérateur
-
Équipe Mageia
-
Administrateur
-
Forgeron
Commençons par aller voir à la source.
Il existe deux versions :
https://svnweb.mageia.org/packages/cauldron/hdf5/current/SPECS/hdf5.spec?revision=1837128&view=markup
https://svnweb.mageia.org/packages/cauldron/hdf5_10/current/SPECS/hdf5_10.spec?view=markup
Si on cherche qui réclame l'une et l'autre des versions :
Code TEXT :
urpmq --whatrequires lib64hdf5_10 hdf5_10 lib64hdf5_10-devel lib64hdf5_hl10 lib64hdf5_hl_cpp11 lib64hdf5_hl_fortran10
Code TEXT :
urpmq --whatrequires lib64hdf5_103 enzo field3d gnudl gnudl gnudl hdf5 jhdf5 labplot lib64alembic1.7 lib64cgns4.1 lib64field3d1.7 lib64gdal27 lib64gdal27 lib64gdal27 lib64hdf5-devel lib64hdf5-static-devel lib64hdf5_103 lib64hdf5_cpp103 lib64hdf5_fortran102 lib64hdf5_hl100 lib64hdf5_hl_fortran100 lib64matio11 lib64matio9 lib64netcdf-devel lib64netcdf-devel lib64netcdf18 lib64netcdf18 lib64petsc3 lib64slurm36 lib64slurm36 lib64slurm36 lib64vigra11 lib64vtk1 med ncl netcdf netcdf octave paraview paraview-devel python3-h5py python3-netcdf4 python3-vigra qgis qgis slurm
on voit clairement que la version 10 n'est utilisée que pour elle même. Elle n'est plus utile, je pense et aurait dû être retirée.
Les paquets notés hl sont indiqués pour fournir des bibliothèque "high level", de haut niveau. C'est une subdivision déterminée sur la base de ce qui est fourni lors de la compilation, par exemple un fichier de librairie libhdf5_hl_cpp.so
Je ne trouve rien pour HDFview. Tu as des sources ?
Yves
-
- Voir le profil du membre Anonymous23
- Inscrit le : 19/03/2022
- Groupes :
-
Forgeron
Oui pour les sources https://www.hdfgroup.org/downloads/hdfview/
on pourrait peut être prendre le rpm mais je n'ai pas envie de m'inscrire.
Bonne journée
Édité par Anonymous23 Le 23/05/2022 à 07h40
Dell Précision 5520 et 7810. MGA9 Mate et KDE et Librazik 4

Yuusha Membre non connecté
-
- Voir le profil du membre Yuusha
- Inscrit le : 04/07/2017
- Groupes :
-
Modérateur
-
Administrateur
-
Forgeron
Je ne vais pas répondre directement à la question, mais toutes ces importations exportations sont-elles nécessaires ? N'y aura-t-il pas une grosse perte de performance due à la lecture/écriture des données ? On a là du Matlab, du C++ et du bash ou du Python pour tout scripter.
-
- Voir le profil du membre Anonymous23
- Inscrit le : 19/03/2022
- Groupes :
-
Forgeron
A priori je peux aussi wrapper le code C++ en Matlab (fichier MEX) ou en Python. Je ne sais pas encore le faire mais c'est faisable.
Les données a passer ne sont pas très grandes. Ce sont les coordonnées d'un systeme d'equations différentielles (vecteurs de quelques milliers de doubles) qui me prennent 15 s a résoudre avec Matlab. Mais ensuite je peux lancer un algo de fit et faire tourner en boucle. Une iteration de 15 s égale des heures de fit. Si l'exe C++ prend 1s et le tranfert de data 0.5 s je suis très gagnant.
J'ai déja optimisé le code Matlab, il n'ira pas plus vite.
En plus j'ai envie de me remettre au C++
Tu pense que ce n'est pas réaliste?
Édité par Anonymous23 Le 23/05/2022 à 14h38
Dell Précision 5520 et 7810. MGA9 Mate et KDE et Librazik 4
-
- Voir le profil du membre Anonymous23
- Inscrit le : 19/03/2022
- Groupes :
-
Forgeron
Je ne sais pas dans quelle mesure le C++ ira si vite.
Dell Précision 5520 et 7810. MGA9 Mate et KDE et Librazik 4

Papoteur Membre non connecté
-
- Voir le profil du membre Papoteur
- Inscrit le : 03/10/2011
- Groupes :
-
Modérateur
-
Équipe Mageia
-
Administrateur
-
Forgeron
baptiste23 :
Effectivement cela postule qu'un langage compilé va 10x plus vite qu'un language interprété.
Je ne sais pas dans quelle mesure le C++ ira si vite.
Je ne sais pas dans quelle mesure le C++ ira si vite.
Ceci ne fait pas trop de doute.
C'est la phase de transfert de données par fichiers interposés qui fait tiquer Yuusha. C'est comme si tu prenais l'autoroute, et à un moment, tu dois traverser un ruisseau à pied sur une planche étroite pour continuer.
Pour une comparaison d'un algorithme implanté en différents langages, voir https://www.mageialinux-online.org/forum/topic-29558-1+demarrons-l-annee-par-un-coup-de-racket.php
Conclusion : avantage au Fortran
Yves
-
- Voir le profil du membre Anonymous23
- Inscrit le : 19/03/2022
- Groupes :
-
Forgeron
Comme je dis le code C fera 100% des calculs. Les donnés a passer sont petites. Matlab sera la (j’espère temporairement) comme interface graphique.
Et puis un des buts est d'apprendre mieux le C.
Je sais que le fortran est un peu plus rapide mais je pense que le C ouvre plus de portes
Je décroche un peu des écrans ce soir
Bonne soirée
Dell Précision 5520 et 7810. MGA9 Mate et KDE et Librazik 4

Yuusha Membre non connecté
-
- Voir le profil du membre Yuusha
- Inscrit le : 04/07/2017
- Groupes :
-
Modérateur
-
Administrateur
-
Forgeron
La première est une perte de précision à chaque écriture. Tant que tu calcules, tu es à la précision machine. Sauf que ce ne sont pas des valeurs aussi précises que tu écris dans un fichier. Or la machine accumule les erreurs à chaque opération. Mais il n'y a pas de direction préférentielle de l'erreur donc elles peuvent se compenser. Lorsque tu écris dans un fichier, tu figes l'erreur. Dans la grande majorité des cas, on s'en fiche. Mais parfois l'erreur machine se voit. C'est beaucoup le cas dans les processus de type Monte Carlo par marche aléatoire. À force de tirer des milliers de particules en les faisant bouger par milliers de petits pas, les erreurs se voient.
La deuxième est l'augmentation des accès disques. Tant que tu es dans le programme, tu es en RAM (voir en cache), lorsque tu écris un fichier, tu passes sur le disque. Et là, même avec SSD, ça se voit clairement sur les performances. Sur les clusters de calcul, les disques ne sont pas au même endroit que le nœud de calcul. Même si tout est relié en InfiniBand, on perd en performance.
Ta méthode est tout à fait valide. Ce sont juste des pistes d'améliorations.
Je n'ai jamais réussi à me mettre au HDf5. J'ai tenté, mais finalement je suis parti sur d'autres formats comme le VTK.
-
- Voir le profil du membre Anonymous23
- Inscrit le : 19/03/2022
- Groupes :
-
Forgeron
Je me remets à tenter d’intégrer le hdf5 dans mon programme.
Le but est le suivant: écrire un jeu de données comportant les coefficients des équations a résoudre. Coder en C l’équation vectorielle principale. Calculer avec le jeu des coefficients, rapatrier vers Matlab le résultat et comparer si il est identique. SI c'est OK on pourra alors aller chercher Sundials pour résoudre l'équation. Quand le programme marchera, ce qui va me prendre des mois si j'y arrive vu que je dois réapprendre le C, on pourra réfléchir a la meilleure manière de lui passer les données. Mais cela m’intéresse pour l'instant de jeter un œil au hdf5 car c'est un format qui est utilisé dans mon boulot.
Première étape: j'ai sauvegardé mes données en hdf5.
Deuxième étape: je veux les regarder avec hdf5view donc installer hdf5view sans crasher mon PC comme la dernière fois.
Les instructions sont
Du coup si je regarde les dépendances en hdf5 dans ajout/suppression de programmes j'ai

Questions:
1: est ce que urpmf liste les dépendances installées ou les dépendances possibles a installer?
urpmf bin/ant me dit : ant:/usr/bin/ant
c'est donc que je l'ai déja?
2: a part la première ligne "hdf5" des paquets qu'on peut installer et en excluant comme proposé par Papoteur les hdf5_10, a quoi servent les autres?
3: J'ai aussi java-11-openjdk. Comment je règle la variable d’environnement?
Bonne journée
Édité par Anonymous23 Le 28/05/2022 à 11h56
Dell Précision 5520 et 7810. MGA9 Mate et KDE et Librazik 4

nic80 Membre non connecté
-
- Voir le profil du membre nic80
- Inscrit le : 06/08/2018
- Groupes :
-
Modérateur
urpmf bin/ant retourne les paquets qui contiennent la chaine de caractère. Cela n' indique rien sur l' installation du paquet correspondant sur la machine, pour cela il est préférable d' utiliser la commande "rpm -q ant".
La visualisation dans le CCM, indique les paquets installés ( l' icône verte indiquant un paquet installé, l' icône rouge un paquet sélectionné pour installation).
Tout ce qui est marqué devel contient souvent des entêtes ( fichier .h par exemple) donc plus utilisés si l' un veut faire de la compilation d' un programme qui en aurait besoin.
Comme je vois dans les différentes bibilothèques, fortran, java, c++, je suppose que c' est lié à ces langages et la possibilité d' interagir avec ceux ci ?
Édité par nic80 Le 28/05/2022 à 13h03
-
- Voir le profil du membre Anonymous23
- Inscrit le : 19/03/2022
- Groupes :
-
Forgeron
Pas pu trouver comment contourner le problème.
Dell Précision 5520 et 7810. MGA9 Mate et KDE et Librazik 4

Yuusha Membre non connecté
-
- Voir le profil du membre Yuusha
- Inscrit le : 04/07/2017
- Groupes :
-
Modérateur
-
Administrateur
-
Forgeron

nic80 Membre non connecté
-
- Voir le profil du membre nic80
- Inscrit le : 06/08/2018
- Groupes :
-
Modérateur
jhdf5 et jhdf également, mais bon bien que présents dans /usr/lib/java, ils ne semblent pas être trouvés.
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie