Rapport du DOE sur la science du développement et de l’utilisation de logiciels scientifiques

Créer un bon logiciel scientifique est difficile. Souvent, un logiciel est développé pour résoudre un problème spécifique dans un domaine de recherche particulier. De nombreux projets fonctionnent souvent sur un chemin critique et peuvent être fragiles lorsqu’ils sont utilisés ou adaptés ailleurs. De plus, un logiciel basé sur un projet (ou une thèse) peut être abandonné parce que l’auteur ou le groupe de recherche ne dispose pas des fonds nécessaires pour maintenir ou améliorer l’application. Enfin, comme pour de nombreux codes scientifiques, les rendre librement accessibles est une option réfléchie, mais souvent la masse critique nécessaire à un effort soutenu n’existe pas (c’est-à-dire que quelques personnes utilisent le code).

Pour être clair, malgré ces limitations, de nombreuses applications commerciales et scientifiques ouvertes et performantes existent encore. Un rapport d’un atelier parrainé par le DOE en 2021 sur les logiciels scientifiques examine de manière approfondie et éclairée l’état actuel des logiciels scientifiques. Il propose quelques mesures concrètes pour améliorer la situation.

Basé sur la conférence virtuelle sur la science du développement et de l’utilisation de logiciels scientifiques tenue en décembre 2021, le rapport s’intitule Besoins fondamentaux de recherche dans la science du développement et de l’utilisation de logiciels scientifiques : investir dans les logiciels est un investissement dans la science. Le rapport est substantiel (68 pages) et a compté sur plus de quarante contributeurs avec les principaux auteurs suivants Heroux, Michael A., Bernholdt, David E., McInnes, Lois Curfman, Cary, John R., Katz, Daniel S., Raybourn, Elaine. M., et Rouson, Damien.

Ce qui suit est un bref aperçu axé sur les logiciels HPC. Dans le cadre de l’atelier, les participants ont identifié trois orientations de recherche prioritaires (PRD) et trois thèmes transversaux cruciaux (de portée excessive) centrés sur les idées suivantes :

Les logiciels sont devenus un élément essentiel de la science moderne, ayant un impact sur les découvertes, les politiques et le développement technologique. Pour maintenir et améliorer la confiance dans la science fournie via les logiciels, nous devons améliorer les processus et les outils qui nous aident à créer et à utiliser des logiciels, et cette amélioration nécessite une compréhension approfondie de la diversité des équipes et des individus effectuant le travail.

Chaque PRD, tel que présenté ci-dessous, était motivé par plusieurs questions clés pour orienter les participants.

PRD1 : Développer des outils de nouvelle génération pour améliorer la productivité des développeurs et la durabilité des logiciels

Questions clés: Comment pouvons-nous tirer parti des outils émergents qui intègrent l’intelligence artificielle/l’apprentissage automatique (IA/ML) pour améliorer la productivité des développeurs de logiciels scientifiques ? Comment pouvons-nous créer et adapter des outils pour améliorer l’efficacité et l’efficience des développeurs, la durabilité des logiciels et la prise en charge de l’évolution continue des logiciels ? Comment soutenir et encourager l’adoption efficace de nouveaux outils par les développeurs ?

De nombreux outils assistent les développeurs dans leurs activités. De nombreux outils bien établis dans le monde du logiciel au sens large peuvent ne pas être largement connus ou utilisés dans le développement de logiciels scientifiques. Nous anticipons l’émergence de futurs environnements de génération de logiciels qui traduisent l’intention du programmeur scientifique en fragments de code source qui peuvent ensuite être ajustés et affinés. Nous attendons également des avancées dans les outils permettant de générer des tests logiciels, de la documentation, un code source clair et lisible, et bien plus encore. Les défis auxquels est confrontée la communauté du logiciel scientifique consistent notamment à garantir que les futurs outils tiennent compte des exigences en matière de logiciels scientifiques qui pourraient ne pas être hautement prioritaires dans d’autres domaines et à saisir les opportunités qui peuvent être propres aux logiciels scientifiques mais qui restent critiques. Des efforts sont également nécessaires pour faciliter l’adoption de nouveaux outils, notamment une formation efficace, ainsi qu’une aide à l’intégration de ces outils dans des flux de travail déjà complexes.

PRD2 : Développer des méthodologies et des outils pour améliorer de manière globale le développement et l’utilisation de logiciels scientifiques en équipe

Questions clés: Quels sont les rôles des logiciels dans les processus scientifiques ? Quels sont les rôles clés au sein des équipes de logiciels scientifiques ? Quels facteurs contribuent à l’efficacité des équipes de logiciels scientifiques ? Quels pratiques, processus et outils peuvent contribuer à améliorer le développement, le maintien, l’évolution et l’utilisation des logiciels scientifiques par les équipes ?

À mesure que la compréhension fondamentale des logiciels scientifiques s’améliore, nous prévoyons que les méthodologies et les outils dont nous avons besoin changeront également pour mieux correspondre et soutenir la manière dont les développeurs, les utilisateurs et les autres parties prenantes des logiciels scientifiques travaillent pour accélérer la découverte scientifique. Nous pensons que le développement de modèles mentaux standards autour des principes fondamentaux peut aider la communauté scientifique dans son ensemble à observer, comprendre et améliorer l’efficacité et l’efficience de la découverte scientifique grâce à de meilleures méthodologies et outils pour le développement, l’utilisation et le maintien de logiciels scientifiques, en particulier dans le domaine de la recherche scientifique. contexte d’équipes collaboratives diverses.

PRD3 : Développer des méthodologies, des outils et une infrastructure pour une science fiable à forte intensité logicielle

Questions clés: Comment pouvons-nous faciliter et encourager la réutilisation efficace et efficiente des données et des logiciels de tiers tout en garantissant l’intégrité de nos logiciels et de la science qui en résulte ? Comment pouvons-nous fournir des environnements flexibles qui « intègrent » le suivi des logiciels, la provenance et la gestion des expériences nécessaires pour prendre en charge l’examen par les pairs et la reproductibilité ?

Les résultats scientifiques ne sont dignes de confiance que si tous les aspects du processus scientifique peuvent produire des résultats corrects, transparents, reproductibles et reproductibles. De nombreuses préoccupations doivent être prises en compte pour garantir des résultats informatiques fiables, et toutes doivent être prises en compte dans une certaine mesure si nous voulons réaliser des progrès quantitatifs et qualitatifs. Nos données et logiciels doivent être gérés, archivés et récupérables, et nos étapes de calcul doivent être enregistrées et disponibles pour une utilisation future. Nous devons préserver la provenance jusqu’à la granularité la plus fine pour l’évaluation.

En plus des orientations de recherche identifiées, les thèmes transversaux (de portée excessive) suivants sont proposés pour aider à orienter les efforts proposés.

Thème 1 : Nous devons prendre en compte à la fois les éléments humains et techniques pour mieux comprendre comment améliorer le développement et l’utilisation de logiciels scientifiques. Il est courant de supposer que les défis rencontrés dans la recherche à forte intensité logicielle peuvent être surmontés simplement par une nouvelle innovation technique. Cependant, les individus et les équipes jouent un rôle énorme dans le développement et l’utilisation des logiciels, souvent dans les défis et les solutions potentielles. Par conséquent, nous considérons cet élément humain comme essentiel dans nos efforts pour comprendre et améliorer le développement et l’utilisation de logiciels scientifiques, y compris l’engagement avec des scientifiques sociaux, cognitifs et de l’information et d’autres qui n’ont pas historiquement fait partie de la communauté de recherche informatique du DOE.

Thème 2: Nous devons relever les défis urgents en matière de recrutement et de rétention de la main-d’œuvre dans les sciences informatiques avec une croissance grâce à une diversité accrue, des parcours de carrière stables et en créant une communauté et une culture qui attirent et retiennent les nouvelles générations de scientifiques. Le développement de logiciels scientifiques performants nécessite la contribution combinée de nombreuses personnes possédant un large éventail de compétences et d’expériences, dont la plupart sont également très demandées sur le marché au sens large. Notre capacité à recruter du personnel pour les équipes actuelles et futures nécessite des efforts forts et soutenus pour former, recruter et fidéliser une main-d’œuvre diversifiée en cultivant une culture solidaire et inclusive au sein des sciences informatiques.

Thème 3: Les logiciels scientifiques sont devenus essentiels à tous les domaines de la science et de la technologie, créant des opportunités de partenariats, de collaboration et d’impact élargis. Une informatique puissante et abordable a révolutionné l’entreprise scientifique. L’informatique constitue également la base de nombreux produits technologiques et techniques et éclaire de plus en plus les décisions politiques et autres décisions qui en découlent. En raison de l’importance plus large des logiciels scientifiques, les efforts visant à mieux comprendre et améliorer leur développement et leur utilisation devraient trouver des alliés au-delà du DOE, notamment des praticiens du monde universitaire et de l’industrie, ainsi que d’autres agences gouvernementales qui financent des recherches à forte intensité informatique et logicielle.

Une direction pour le HPC

Bien que le HPC couvre les trois PRD identifiés, une grande partie des efforts HPC se situent directement dans le PRD1, où le développement d’outils de nouvelle génération pour améliorer la productivité des développeurs et la durabilité des logiciels est proposé. Dans le cadre de cette orientation de recherche, les défis et opportunités suivants ont été identifiés :

  1. Les outils et environnements émergents d’IA/ML auront un impact sur la façon dont les artefacts logiciels sont générés et gérés, nécessitant une adaptation à l’économie changeante de la façon dont les logiciels sont développés, utilisés et entretenus.
  2. Les choix d’outils nécessitent une meilleure compréhension de la manière dont les développeurs de logiciels scientifiques prennent leurs décisions.
  3. Comprendre ce que les communautés scientifiques et logicielles HPC ont en commun avec d’autres contextes de développement logiciel est nécessaire pour améliorer l’effet de levier et l’impact des outils logiciels pertinents.
  4. L’utilisation efficace et efficiente de nouvelles architectures nécessite de comprendre et de répondre aux besoins uniques des outils logiciels scientifiques HPC.
  5. La nature collaborative et en équipe du développement et de l’utilisation de logiciels scientifiques peut bénéficier de l’identification et du développement de nouveaux outils.

Sur la base des défis identifiés, les domaines de recherche et de développement suivants ont été proposés. (appelés axes de recherche dans le rapport.

  1. Stratégies de sélection et d’adoption d’outils dans la communauté des logiciels scientifiques et comment faciliter la diffusion, y compris l’utilisation des capacités émergentes d’IA générative.
  2. Approches pour concevoir ou adapter des outils pour répondre aux besoins particuliers de la communauté des logiciels scientifiques tout en conservant une généralité suffisante pour qu’une grande partie du développement, du support et de l’évolution à long terme puisse être pilotée par une communauté plus large.
  3. De nouvelles capacités et outils pour soutenir le développement de logiciels scientifiques, y compris l’efficacité des développeurs, l’efficience, l’évolution continue des logiciels et la durabilité des logiciels.
  4. Outils permettant d’améliorer la qualité et la robustesse et de garantir l’exactitude des logiciels scientifiques, notamment en générant des tests et en donnant des conseils sur les stratégies de test.
  5. De nouvelles capacités et outils pour soutenir le développement et l’utilisation de logiciels scientifiques « à grande échelle » et à grande échelle (équipes, logiciels composites, etc.), y compris des outils pour prédire les risques et la complexité et évaluer la qualité du code à mesure que le code évolue.

Les PRD deux et trois se concentrent sur le développement de logiciels scientifiques en équipe et sur l’infrastructure pour une science fiable à forte intensité logicielle. Bien que ces éléments soient importants, il faudra peut-être d’abord créer une meilleure infrastructure HPC.

Conclusion de l’atelier

Les auteurs prévoient que les résultats des activités de R&D mentionnées ci-dessus auront des impacts positifs substantiels sur le développement et l’utilisation de logiciels scientifiques. Certains résultats spécifiques qu’ils s’attendent à voir sont :

  • Des pratiques et des outils améliorés en matière de développement de logiciels réduiront le coût et le temps de développement et donneront lieu à des produits/projets de meilleure qualité et plus faciles à maintenir.
  • Amélioration de la constitution de l’équipe et de l’interaction des membres de l’équipe, ce qui se traduit par des équipes plus efficaces et efficientes.
  • Amélioration de la confiance dans les résultats produits par la communauté scientifique.

Les auteurs ont également souligné les trois thèmes transversaux qui peuvent être utilisés pour guider les efforts globaux.

  • Considérez les éléments techniques et humains de manière globale.
  • Attirez de nouveaux membres de la communauté, fidélisez et faites progresser les membres actuels et soutenez des cycles de vie de carrière complets.
  • Établir des partenariats entre les communautés.

Ces recommandations et orientations de recherche sont nécessaires pour les logiciels HPC. À une époque où les performances matérielles sont limitées par les méthodes de fabrication, les vitesses d’horloge, la chaleur, la puissance et la disponibilité, se concentrer sur le HPC et les logiciels scientifiques est devenu la voie à suivre pour le HPC.

www.actusduweb.com
Suivez Actusduweb sur Google News


Ce site utilise des cookies pour améliorer votre expérience. Nous supposerons que cela vous convient, mais vous pouvez vous désinscrire si vous le souhaitez. J'accepte Lire la suite