The CECAM electronic structure library and the modular software development paradigm.

The CECAM electronic structure library and the modular software development paradigm.
复制标题

DOI:
10.1063/5.0012901
复制
发表时间:
2020-05
期刊:
The Journal of chemical physics
影响因子:
--
通讯作者:
Micael J. T. Oliveira;Nick R. Papior;Y. Pouillon;V. Blum;E. Artacho;D. Caliste;Fabiano Corsetti;Stefano de Gironcoli;A. Elena;Alberto García;V. García-Suárez;L. Genovese;W. Huhn;G. Huhs;S. Kokott;E. Kucukbenli;A. H. Larsen;A. Lazzaro;I. Lebedeva;Yingzhou Li;D. López-Durán;P. López-Tarifa;Martin Luders;M. Marques;J. Minár;S. Mohr;A. Mostofi;A. O'Cais;M. Payne;T. Ruh;Daniel G. A. Smith;J. Soler;David A. Strubbe;N. Tancogne-Dejean;D. Tildesley;M. Torrent;V. Yu
Micael J. T. Oliveira;Nick R. Papior;Y. Pouillon;V. Blum;E. Artacho;D. Caliste;Fabiano Corsetti;Stefano de Gironcoli;A. Elena;Alberto García;V. García-Suárez;L. Genovese;W. Huhn;G. Huhs;S. Kokott;E. Kucukbenli;A. H. Larsen;A. Lazzaro;I. Lebedeva;Yingzhou Li;D. López-Durán;P. López-Tarifa;Martin Luders;M. Marques;J. Minár;S. Mohr;A. Mostofi;A. O'Cais;M. Payne;T. Ruh;Daniel G. A. Smith;J. Soler;David A. Strubbe;N. Tancogne-Dejean;D. Tildesley;M. Torrent;V. Yu
中科院分区:
其他
文献类型:
--
作者:
Micael J. T. Oliveira;Nick R. Papior;Y. Pouillon;V. Blum;E. Artacho;D. Caliste;Fabiano Corsetti;Stefano de Gironcoli;A. Elena;Alberto García;V. García-Suárez;L. Genovese;W. Huhn;G. Huhs;S. Kokott;E. Kucukbenli;A. H. Larsen;A. Lazzaro;I. Lebedeva;Yingzhou Li;D. López-Durán;P. López-Tarifa;Martin Luders;M. Marques;J. Minár;S. Mohr;A. Mostofi;A. O'Cais;M. Payne;T. Ruh;Daniel G. A. Smith;J. Soler;David A. Strubbe;N. Tancogne-Dejean;D. Tildesley;M. Torrent;V. Yu

文献摘要

相似文献

由于许多成功的软件包,第一性原理电子结构计算现在可供许多学科的大量用户使用,其中一些软件包在本特刊中进行了描述。这种包的传统编码范例是单片的,即,不管其内部结构如何模块化,代码都是独立于其他代码构建的,基本上是从编译器开始构建的,可能除了线性代数和消息传递库。这种模式已经持续了几十年,并且相当成功。然而,电子结构方法本身的成功演变导致了所有软件包中预期的越来越复杂和越来越长的功能列表,这意味着不同软件包之间的复制量越来越大,不仅在初始编码中,而且更重要的是,每次代码需要重新设计以适应计算机硬件架构的演变。电子结构库(ESL)是由CECAM(欧洲原子和分子计算中心)发起的,旨在促进从单片模型的范式转变并促进模块化,其目标是从电子结构代码中提取常见任务,并将其重新设计为每个人都可以使用的开源库。这样的库包括“重型”库,其具有高度并行化和适应其中的新颖硬件的潜力,从而将性能优化和重新工程的复杂计算机科学方面与计算科学分开,例如,物理学家和化学家在实现新想法的时候。我们设想,这种模块化范式将提高整体编码效率,使专家(无论是计算机科学家还是计算科学家)能够更有效地使用他们的技能,并将导致社区中软件的更动态的演变,以及降低新开发人员的进入门槛。然而,这种模式也带来了新的挑战。构建和编译基于许多相互依赖的库(及其版本)的代码比在单个自包含包中交付的代码要复杂得多。在这里,我们描述了ESL的状态,它现在包含的不同的图书馆,未来图书馆的短期和中期计划,以及面临新挑战的方式。ESL是一个社区倡议,其中几个预先存在的代码及其开发人员已经贡献了他们的软件和努力,其中几个代码已经受益,并且仍然对社区开放。
First-principles electronic structure calculations are now accessible to a very large community of users across many disciplines, thanks to many successful software packages, some of which are described in this special issue. The traditional coding paradigm for such packages is monolithic, i.e., regardless of how modular its internal structure may be, the code is built independently from others, essentially from the compiler up, possibly with the exception of linear-algebra and message-passing libraries. This model has endured and been quite successful for decades. The successful evolution of the electronic structure methodology itself, however, has resulted in an increasing complexity and an ever longer list of features expected within all software packages, which implies a growing amount of replication between different packages, not only in the initial coding but, more importantly, every time a code needs to be re-engineered to adapt to the evolution of computer hardware architecture. The Electronic Structure Library (ESL) was initiated by CECAM (the European Centre for Atomic and Molecular Calculations) to catalyze a paradigm shift away from the monolithic model and promote modularization, with the ambition to extract common tasks from electronic structure codes and redesign them as open-source libraries available to everybody. Such libraries include "heavy-duty" ones that have the potential for a high degree of parallelization and adaptation to novel hardware within them, thereby separating the sophisticated computer science aspects of performance optimization and re-engineering from the computational science done by, e.g., physicists and chemists when implementing new ideas. We envisage that this modular paradigm will improve overall coding efficiency and enable specialists (whether they be computer scientists or computational scientists) to use their skills more effectively and will lead to a more dynamic evolution of software in the community as well as lower barriers to entry for new developers. The model comes with new challenges, though. The building and compilation of a code based on many interdependent libraries (and their versions) is a much more complex task than that of a code delivered in a single self-contained package. Here, we describe the state of the ESL, the different libraries it now contains, the short- and mid-term plans for further libraries, and the way the new challenges are faced. The ESL is a community initiative into which several pre-existing codes and their developers have contributed with their software and efforts, from which several codes are already benefiting, and which remains open to the community.