Bonjour,
je suis actuellement en train d'écrire un programme qui fait un calcul sur diverses configurations. L'objectif est de pouvoir faire un milliard de configurations en quelques jours. Pour chacune des configurations, j'aimerais enregistrer quelques paramètres d'entrée, des résultats intermédiaires et les résultats finaux (disons l'équivalent de 20 variables de type double). Les calculs étant déjà lourds, il faudrait que le temps d'écriture ne prenne pas trop de temps.
Une fois les calculs terminés, j'aimerais avoir la possibilité de visualiser n'importe quelle configuration pour vérifier que tout s'est bien passé mais aussi analyser les données : les présenter sous forme de carte, sous forme de graphiques... Donc parser les données de manières très variées et ceci pratiquement en temps réel (ie réponse en une dizaine de secondes).
Un calcul rapide me fait penser que je serai dans un ordre de grandeur de quelques dizaines voir centaines de Go.
J'aimerais donc savoir comment pouvoir gérer cela. Voici mes idées, mais j'imagine qu'il existe des techniques plus efficaces :
* stocker chaque paramètre dans un fichier binaire :
- avantage = je peux aller chercher une info assez rapidement avec un seekg()
- inconvénient = plusieurs fichiers ouverts en parallèle => est-ce que ce ne sera pas limitant au moment d'écrire sur le disque
- question : un thread dédié à l'écriture, ça a un sens ?
* stocker tout ça en XML
- avantage : tout dans le même fichier et simple à lire pour l'utilisateur
- inconvénient : XML verbeaux et même en SAX, ça risque d'être long à parser ?
* j'ai lu qu'il existait des formats XML compressés comme du EXI ?
* base de donées : efficace avec un tel volume de données ?
Auriez-vous des conseils à me donner ? Merci d'avance.
Partager