Bonjour le forum,
mon métier est le calcul de structures, dans l'aéronautique; il consiste, quand mes collègues dessinateurs ont fait les plans d'une pièce ou d'un assemblage de pièces, à vérifier par le calcul si c'est assez léger pour décoller puis assez solide pour ne pas casser en vol.
Je vais prochainement devoir améliorer sérieusement un programme que j'ai commencé à faire; c'est une vulgaire moulinette séquentielle, qui traduit des codes qu'elle trouve dans un premier fichier d'entrée, à l'aide de données se trouvant dans deux autres fichiers, pour fabriquer un fichier de sortie qui est une image modifiée du premier fichier d'entrée.
Il se trouve que le premier fichier d'entrée fait environ deux millions de lignes, et les deux autres quelques centaines seulement, et le traitement complet dure environ cinq minutes; il faudrait s'arranger pour que ce processus soit réalisable trois cent mille fois en une semaine; soit en six cent mille secondes, ce qui fait que le processus unitaire devrait durer deux secondes au lieu de cinq minutes. (gain d'un facteur 150)
Il est bien évident que l'on va changer de machine; un linux itanium tourne déjà près de six fois plus vite que la vieille HP 9000 où il y a le compilateur fortran que j'utilise pour l'instant, mais on pourrait gagner un peu plus s'il le faut vraiment.
Il doit également être possible d'utiliser un compilateur le plus performant possible pour cette application.
Par ailleurs dans le programme, certaines boucles de recherche parcourent entièrement les deux petits fichiers d'entrée, et je vais m'employer à ce que les variables puissent être trouvées par indexation, donc directement et sans recherche.
Toujours dans le code, je vais m'arranger pour qu'aucune partie de test ne se fasse deux fois.
Mais j'ai peur que cela ne suffise pas.
En me présentant ces objectifs, mon chef à évoqué du développement en C ou C++; je connais un peu le C, que j'utilise séquentiellement, exactement comme du fortran; alors est-ce que le basculement vers ce langage pourrait nous faire gagner du temps d'exécution ?
Et qu'en est il du C++ ? Je connais très peu la POO (je n'ai jamais fait qu'un seul développement en python) mais il me semble que cette structure de langage ne changerait pas grand chose.
Que pensez vous de tout ça ?
Mreci de me donner toutes vos impressions, même les plus farfelues, parce qu'il me faut vraiment faire feu de tout bois pour y arriver.
David
Partager