Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
The CECAM Electronic Structure Library:community-driven development of software libraries for
electronic structure simulations
Yann Pouillon1,2
1. Universidad de Cantabria, Santander, Spain2. Simune Atomistics, Donostia-San Sebastian, Spain
FHI-AIMS Workshop, Munich, 2018/07/09
Pouillon (UNICAN, Simune) FHI-AIMS 2018 1 / 34
Outline
1 Quick tour of the ESL
2 ESL Coding Workshops
3 Libraries and tools
4 Data standards
Pouillon (UNICAN, Simune) FHI-AIMS 2018 2 / 34
A library for electronic structure
Wikipedia definition
Collection of sources of information and similar resources, made accessibleto a defined community for reference or borrowing. It provides physical ordigital access to material, and may be a physical building or room, or avirtual space, or both.
The ESL
Collection of software modules
Open space for discussion
Laboratory for co-design
Keywords: shared modular quality software
Pouillon (UNICAN, Simune) FHI-AIMS 2018 3 / 34
A library for electronic structure
Wikipedia definition
Collection of sources of information and similar resources, made accessibleto a defined community for reference or borrowing. It provides physical ordigital access to material, and may be a physical building or room, or avirtual space, or both.
The ESL
Collection of software modules
Open space for discussion
Laboratory for co-design
Keywords: shared modular quality software
Pouillon (UNICAN, Simune) FHI-AIMS 2018 3 / 34
A library for electronic structure
Wikipedia definition
Collection of sources of information and similar resources, made accessibleto a defined community for reference or borrowing. It provides physical ordigital access to material, and may be a physical building or room, or avirtual space, or both.
The ESL
Collection of software modules
Open space for discussion
Laboratory for co-design
Keywords: shared modular quality software
Pouillon (UNICAN, Simune) FHI-AIMS 2018 3 / 34
A story of entangled collaborations
Pouillon (UNICAN, Simune) FHI-AIMS 2018 4 / 34
Why the ESL?
Code 1
Feature A
Feature B
Feature C
Code 2
Feature A
Feature B
Feature D
Code 3
Feature A
Feature E
Feature F
Former silo mentality
Duplication of code
Duplication of efforts
Duplication of data
Duplication of errors
Multiple drains
Pouillon (UNICAN, Simune) FHI-AIMS 2018 5 / 34
Why the ESL?
Code 1
Feature A
Feature B
Feature C
Code 2
Feature A
Feature B
Feature D
Code 3
Feature A
Feature E
Feature F
Emerging development model
Collaborate!
Develop open standards
Refactor existing code
Co-design new developments
Multiple benefits
Pouillon (UNICAN, Simune) FHI-AIMS 2018 5 / 34
Why the ESL?
Code 1
Feature A
Feature B
Feature C
Code 2
Feature A
Feature B
Feature D
Code 3
Feature A
Feature E
Feature F
Pouillon (UNICAN, Simune) FHI-AIMS 2018 6 / 34
Why the ESL?
Code 1
Feature C
Library 1
Feature A
Library 2
Feature B
Code 2
Feature A
Feature B
Feature D
Code 3
Feature A
Feature E
Feature F
Pouillon (UNICAN, Simune) FHI-AIMS 2018 6 / 34
Why the ESL?
Code 1
Feature C
Library 1
Feature A
Library 2
Feature B
Code 2
Feature A
Feature D
Code 3
Feature A
Feature E
Feature F
Pouillon (UNICAN, Simune) FHI-AIMS 2018 6 / 34
Why the ESL?
Code 1
Feature C
Library 1
Feature A
Library 2
Feature B
Code 2
Feature A
Feature D
Code 3
Feature E
Feature F
Library 3
Feature A
Pouillon (UNICAN, Simune) FHI-AIMS 2018 6 / 34
The dependency hell
Solution
Provide a consistent bundle of ESL components
Pouillon (UNICAN, Simune) FHI-AIMS 2018 7 / 34
The dependency hell
Solution
Provide a consistent bundle of ESL components
Pouillon (UNICAN, Simune) FHI-AIMS 2018 7 / 34
Why the ESL?
Code 1
Feature C
Code 2
Feature D
Code 3
Feature E
Feature F
ESL Bundle
Library 4
Feature A
Library 5
Feature B
ESL Demo
Plane Waves
Atom-Centered
Pouillon (UNICAN, Simune) FHI-AIMS 2018 8 / 34
Why the ESL?
Code 1
Feature C
Code 2
Feature D
Code 3
Feature E
Feature F
ESL Bundle
Library 4
Feature A
Library 5
Feature B
ESL Demo
Plane Waves
Atom-Centered
Pouillon (UNICAN, Simune) FHI-AIMS 2018 8 / 34
The ESL in a nutshell
Pouillon (UNICAN, Simune) FHI-AIMS 2018 9 / 34
Outline
1 Quick tour of the ESL
2 ESL Coding Workshops
3 Libraries and tools
4 Data standards
Pouillon (UNICAN, Simune) FHI-AIMS 2018 10 / 34
Bird’s-eye view of the ESL
https://esl.cecam.org/
ESL
Wiki
Good practice
Data standards
Libraries & tools
Workshops
Pouillon (UNICAN, Simune) FHI-AIMS 2018 11 / 34
ESL Workshops
What they areFor the whole electronic structure community
Long workshops (usually 10-12 days)
10-20 participants
Discussions (2-3 days) and coding sessions (7-10 days)
Minimum requirements: openness & some programming experience
What they are notStandard CECAM workshops
Tutorials for programmers
Efforts oriented towards one code
Pouillon (UNICAN, Simune) FHI-AIMS 2018 12 / 34
ESL Workshops
What they areFor the whole electronic structure community
Long workshops (usually 10-12 days)
10-20 participants
Discussions (2-3 days) and coding sessions (7-10 days)
Minimum requirements: openness & some programming experience
What they are notStandard CECAM workshops
Tutorials for programmers
Efforts oriented towards one code
Pouillon (UNICAN, Simune) FHI-AIMS 2018 12 / 34
2014: Kick-off Workshop
SummaryExtended software development workshopCECAM-HQ-EPFL, Lausanne, SwitzerlandJune 30-July 02: usual CECAM workshopJuly 03-August 06: experimental coding workshopFormat: 3 days for discussions + 5 weeks for development35 participants (3 days) + 8-14 developers (coming & going)https://www.cecam.org/workshop-1063.html
Extensive discussions on:
coding standardsdocumentationlicensesESL organizationvarious other topics
Design and initial wiki population
Kick-start of several ESL modules
Pouillon (UNICAN, Simune) FHI-AIMS 2018 13 / 34
2015: Low-level utilities
SummaryElectronic Structure Library coding workshop: utilities toolbox CECAM-HQ-EPFL, Lausanne,SwitzerlandFormat: 1 day for discussions + 4 days for developmentJune 01-June 0520 participants (12 for the coding sessions)https://www.cecam.org/workshop-1163.html
Memory management, error handling, ...
Advancement of coding standards
Geometry tools
Pouillon (UNICAN, Simune) FHI-AIMS 2018 14 / 34
2016: Core design of solvers
SummaryElectronic Structure Library coding workshop: solversZCAM, Zaragoza, SpainJune 06-June 17Format: 3 days for discussions + 8 days for development20 participants (12 for the coding sessions)https://www.cecam.org/workshop-1274.html
Kohn-Sham solvers
Poisson solvers
Atomic solvers
One E-CAM post-doc dedicated to maintaining and expanding the ESL
Pouillon (UNICAN, Simune) FHI-AIMS 2018 15 / 34
2016: Core design of solvers
SummaryElectronic Structure Library coding workshop: solversZCAM, Zaragoza, SpainJune 06-June 17Format: 3 days for discussions + 8 days for development20 participants (12 for the coding sessions)https://www.cecam.org/workshop-1274.html
Kohn-Sham solvers
Poisson solvers
Atomic solvers
One E-CAM post-doc dedicated to maintaining and expanding the ESL
Pouillon (UNICAN, Simune) FHI-AIMS 2018 15 / 34
2017: Iterative eigensolvers
SummaryElectronic Structure Library coding workshop: driversSISSA, Trieste, ItalyJuly 10-July 21Format: 3 days for discussions + 9 days for development20 participants (8 for the coding sessions)https://www.cecam.org/workshop-1435.html
Refactoring
Re-design test suites
Providing working stand-alonecomponents
One E-CAM post-doc dedicated to maintaining and expanding the ESL
Pouillon (UNICAN, Simune) FHI-AIMS 2018 16 / 34
2017: Iterative eigensolvers
SummaryElectronic Structure Library coding workshop: driversSISSA, Trieste, ItalyJuly 10-July 21Format: 3 days for discussions + 9 days for development20 participants (8 for the coding sessions)https://www.cecam.org/workshop-1435.html
Refactoring
Re-design test suites
Providing working stand-alonecomponents
One E-CAM post-doc dedicated to maintaining and expanding the ESL
Pouillon (UNICAN, Simune) FHI-AIMS 2018 16 / 34
2018: ESL Demonstrator
SummaryElectronic Structure Library coding workshop: ESL demonstratorCECAM-HQ-EPFL, Lausanne, SwitzerlandFebruary 05-February 16Format: 2 days for discussions + 9 days for development25 participants (12 for the coding sessions)https://www.cecam.org/workshop-1425.html
Adopt perspective of ESL users
Solve dependency hell
Show flexibility of ESL components
Starting a collaboration with MOLSSI
Pouillon (UNICAN, Simune) FHI-AIMS 2018 17 / 34
2018: ESL Demonstrator
SummaryElectronic Structure Library coding workshop: ESL demonstratorCECAM-HQ-EPFL, Lausanne, SwitzerlandFebruary 05-February 16Format: 2 days for discussions + 9 days for development25 participants (12 for the coding sessions)https://www.cecam.org/workshop-1425.html
Adopt perspective of ESL users
Solve dependency hell
Show flexibility of ESL components
Starting a collaboration with MOLSSI
Pouillon (UNICAN, Simune) FHI-AIMS 2018 17 / 34
2019: Performance & streamlining
SummaryExtended Software Development Workshop: Scaling Electronic Structure ApplicationsCECAM-IRL, Dublin, IrelandJanuary 07-January 17Format: 3 days for discussions + 8 days for development25 participants expected (10-12 for coding sessions)https://www.cecam.org/workshop-1640.html
New & future architectures (hybrid,exascale)
Increasing user bases & typologies
Smoothly integrate new use cases
Inscriptions open, limited slots, please ask the speaker!
Pouillon (UNICAN, Simune) FHI-AIMS 2018 18 / 34
2019: Performance & streamlining
SummaryExtended Software Development Workshop: Scaling Electronic Structure ApplicationsCECAM-IRL, Dublin, IrelandJanuary 07-January 17Format: 3 days for discussions + 8 days for development25 participants expected (10-12 for coding sessions)https://www.cecam.org/workshop-1640.html
New & future architectures (hybrid,exascale)
Increasing user bases & typologies
Smoothly integrate new use cases
Inscriptions open, limited slots, please ask the speaker!
Pouillon (UNICAN, Simune) FHI-AIMS 2018 18 / 34
Outline
1 Quick tour of the ESL
2 ESL Coding Workshops
3 Libraries and tools
4 Data standards
Pouillon (UNICAN, Simune) FHI-AIMS 2018 19 / 34
Bird’s-eye view of the ESL
https://esl.cecam.org/
ESL
Wiki
Good practice
Data standards
Libraries & tools
Workshops
Pouillon (UNICAN, Simune) FHI-AIMS 2018 20 / 34
Libraries & tools
Libs & tools
Input/Output
XC
Solvers
Utilities
Workflows
Pouillon (UNICAN, Simune) FHI-AIMS 2018 21 / 34
Input/output
Input/Output
Futile
LibFDF
LibPSML
Pspio
LibESCDF
Pouillon (UNICAN, Simune) FHI-AIMS 2018 22 / 34
Exchange-correlation
XC
LibXC
LibGridXC
Libvdwxc
Pouillon (UNICAN, Simune) FHI-AIMS 2018 23 / 34
Solvers
Solvers
ELSIESDW Drivers
LibOMM
POKE PSolver
SQARE
Pouillon (UNICAN, Simune) FHI-AIMS 2018 24 / 34
Utilities
Utilities
FutileELPA
MatrixSwitch
PEXSI Docker images
Copyright updater
Pouillon (UNICAN, Simune) FHI-AIMS 2018 25 / 34
Complex workflows
WorkflowsFlook FLOS
Pouillon (UNICAN, Simune) FHI-AIMS 2018 26 / 34
The ESL Bundle
Quick installgit clone https://gitlab.e-cam2020.eu/esl/esl-bundle.git
cd esl-bundle
mkdir builddir
cd builddir
../jhbuild.py -f ../rcfiles/gfortran+mpi.rc
ELSI
FDF
Fdict
Flook
Futile
LibGridXC
LibPSML
LibXC
LibYAML
PSolver
Pspio
Scotch
SuperLU
XMLF90
esl-bundle+ netCDF+ netCDF-Fortran+ ONCVPSP= siesta-bundle
Pouillon (UNICAN, Simune) FHI-AIMS 2018 27 / 34
Zooming-in on the ESL Demonstrator
Layers vs. slices
Challenge: build the thinnest possible “slice of cake” that bringssomething useful to the community as a whole.
Pouillon (UNICAN, Simune) FHI-AIMS 2018 28 / 34
Outline
1 Quick tour of the ESL
2 ESL Coding Workshops
3 Libraries and tools
4 Data standards
Pouillon (UNICAN, Simune) FHI-AIMS 2018 29 / 34
Bird’s-eye view of the ESL
https://esl.cecam.org/
ESL
Wiki
Good practice
Data standards
Libraries & tools
Workshops
Pouillon (UNICAN, Simune) FHI-AIMS 2018 30 / 34
ESCDF
Seed: ETSF File Format / ETSF IO
Started with NoMaD
Lead taken by EUSpec
Open specifications
HDF5-based library
System
Basis sets
Densities
Potentials
States
Settings
Pouillon (UNICAN, Simune) FHI-AIMS 2018 31 / 34
Acknowledgments
Dominic Tildesley, Emilio Artacho, Mike Payne
Ignacio Pagonabarraga
Node leaders at ZCAM & CECAM-IRL
CECAM staff
E-CAM staff
FHI-AIMS workshop organizers
Special thanks: Volker Blum
All ESL contributors
Pouillon (UNICAN, Simune) FHI-AIMS 2018 32 / 34
Acknowledgments
Thank you for your time!
Pouillon (UNICAN, Simune) FHI-AIMS 2018 33 / 34
Attributions & licensed material
Most vector graphics have been downloaded from https://openclipart.org/, the resthas been created by ESL developers
Some pictures have been downloaded from https://commons.wikimedia.org/, theremaining ones are photos taken by ESL volunteers or CECAM staff
The logo of Wikipedia requires the mention of the following notice:By Version 1 by Nohat (concept by Paullusmagnus); Wikimedia. - File:Wikipedia-logo.svgas of 14 May 2010T23:16:42, CC BY-SA 3.0,https://en.wikipedia.org/w/index.php?curid=33285413
This presentation uses graphical material from the Font Awesome Project, under the FontAwesome License (https://fontawesome.com/license)
Pouillon (UNICAN, Simune) FHI-AIMS 2018 34 / 34