The CECAM Electronic Structure Library: community-driven … · 2018-07-21 · The CECAM Electronic...

47
The CECAM Electronic Structure Library: community-driven development of software libraries for electronic structure simulations Yann Pouillon 1,2 1. Universidad de Cantabria, Santander, Spain 2. Simune Atomistics, Donostia-San Sebasti´ an, Spain FHI-AIMS Workshop, Munich, 2018/07/09 Pouillon (UNICAN, Simune) FHI-AIMS 2018 1 / 34

Transcript of The CECAM Electronic Structure Library: community-driven … · 2018-07-21 · The CECAM Electronic...

Page 1: The CECAM Electronic Structure Library: community-driven … · 2018-07-21 · The CECAM Electronic Structure Library: community-driven development of software libraries for electronic

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

Page 2: The CECAM Electronic Structure Library: community-driven … · 2018-07-21 · The CECAM Electronic Structure Library: community-driven development of software libraries for electronic

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

Page 3: The CECAM Electronic Structure Library: community-driven … · 2018-07-21 · The CECAM Electronic Structure Library: community-driven development of software libraries for electronic

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

Page 4: The CECAM Electronic Structure Library: community-driven … · 2018-07-21 · The CECAM Electronic Structure Library: community-driven development of software libraries for electronic

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

Page 5: The CECAM Electronic Structure Library: community-driven … · 2018-07-21 · The CECAM Electronic Structure Library: community-driven development of software libraries for electronic

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

Page 6: The CECAM Electronic Structure Library: community-driven … · 2018-07-21 · The CECAM Electronic Structure Library: community-driven development of software libraries for electronic

A story of entangled collaborations

Pouillon (UNICAN, Simune) FHI-AIMS 2018 4 / 34

Page 7: The CECAM Electronic Structure Library: community-driven … · 2018-07-21 · The CECAM Electronic Structure Library: community-driven development of software libraries for electronic

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

Page 8: The CECAM Electronic Structure Library: community-driven … · 2018-07-21 · The CECAM Electronic Structure Library: community-driven development of software libraries for electronic

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

Page 9: The CECAM Electronic Structure Library: community-driven … · 2018-07-21 · The CECAM Electronic Structure Library: community-driven development of software libraries for electronic

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

Page 10: The CECAM Electronic Structure Library: community-driven … · 2018-07-21 · The CECAM Electronic Structure Library: community-driven development of software libraries for electronic

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

Page 11: The CECAM Electronic Structure Library: community-driven … · 2018-07-21 · The CECAM Electronic Structure Library: community-driven development of software libraries for electronic

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

Page 12: The CECAM Electronic Structure Library: community-driven … · 2018-07-21 · The CECAM Electronic Structure Library: community-driven development of software libraries for electronic

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

Page 13: The CECAM Electronic Structure Library: community-driven … · 2018-07-21 · The CECAM Electronic Structure Library: community-driven development of software libraries for electronic

The dependency hell

Solution

Provide a consistent bundle of ESL components

Pouillon (UNICAN, Simune) FHI-AIMS 2018 7 / 34

Page 14: The CECAM Electronic Structure Library: community-driven … · 2018-07-21 · The CECAM Electronic Structure Library: community-driven development of software libraries for electronic

The dependency hell

Solution

Provide a consistent bundle of ESL components

Pouillon (UNICAN, Simune) FHI-AIMS 2018 7 / 34

Page 15: The CECAM Electronic Structure Library: community-driven … · 2018-07-21 · The CECAM Electronic Structure Library: community-driven development of software libraries for electronic

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

Page 16: The CECAM Electronic Structure Library: community-driven … · 2018-07-21 · The CECAM Electronic Structure Library: community-driven development of software libraries for electronic

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

Page 17: The CECAM Electronic Structure Library: community-driven … · 2018-07-21 · The CECAM Electronic Structure Library: community-driven development of software libraries for electronic

The ESL in a nutshell

Pouillon (UNICAN, Simune) FHI-AIMS 2018 9 / 34

Page 18: The CECAM Electronic Structure Library: community-driven … · 2018-07-21 · The CECAM Electronic Structure Library: community-driven development of software libraries for electronic

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

Page 19: The CECAM Electronic Structure Library: community-driven … · 2018-07-21 · The CECAM Electronic Structure Library: community-driven development of software libraries for electronic

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

Page 20: The CECAM Electronic Structure Library: community-driven … · 2018-07-21 · The CECAM Electronic Structure Library: community-driven development of software libraries for electronic

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

Page 21: The CECAM Electronic Structure Library: community-driven … · 2018-07-21 · The CECAM Electronic Structure Library: community-driven development of software libraries for electronic

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

Page 22: The CECAM Electronic Structure Library: community-driven … · 2018-07-21 · The CECAM Electronic Structure Library: community-driven development of software libraries for electronic

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

Page 23: The CECAM Electronic Structure Library: community-driven … · 2018-07-21 · The CECAM Electronic Structure Library: community-driven development of software libraries for electronic

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

Page 24: The CECAM Electronic Structure Library: community-driven … · 2018-07-21 · The CECAM Electronic Structure Library: community-driven development of software libraries for electronic

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

Page 25: The CECAM Electronic Structure Library: community-driven … · 2018-07-21 · The CECAM Electronic Structure Library: community-driven development of software libraries for electronic

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

Page 26: The CECAM Electronic Structure Library: community-driven … · 2018-07-21 · The CECAM Electronic Structure Library: community-driven development of software libraries for electronic

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

Page 27: The CECAM Electronic Structure Library: community-driven … · 2018-07-21 · The CECAM Electronic Structure Library: community-driven development of software libraries for electronic

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

Page 28: The CECAM Electronic Structure Library: community-driven … · 2018-07-21 · The CECAM Electronic Structure Library: community-driven development of software libraries for electronic

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

Page 29: The CECAM Electronic Structure Library: community-driven … · 2018-07-21 · The CECAM Electronic Structure Library: community-driven development of software libraries for electronic

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

Page 30: The CECAM Electronic Structure Library: community-driven … · 2018-07-21 · The CECAM Electronic Structure Library: community-driven development of software libraries for electronic

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

Page 31: The CECAM Electronic Structure Library: community-driven … · 2018-07-21 · The CECAM Electronic Structure Library: community-driven development of software libraries for electronic

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

Page 32: The CECAM Electronic Structure Library: community-driven … · 2018-07-21 · The CECAM Electronic Structure Library: community-driven development of software libraries for electronic

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

Page 33: The CECAM Electronic Structure Library: community-driven … · 2018-07-21 · The CECAM Electronic Structure Library: community-driven development of software libraries for electronic

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

Page 34: The CECAM Electronic Structure Library: community-driven … · 2018-07-21 · The CECAM Electronic Structure Library: community-driven development of software libraries for electronic

Libraries & tools

Libs & tools

Input/Output

XC

Solvers

Utilities

Workflows

Pouillon (UNICAN, Simune) FHI-AIMS 2018 21 / 34

Page 35: The CECAM Electronic Structure Library: community-driven … · 2018-07-21 · The CECAM Electronic Structure Library: community-driven development of software libraries for electronic

Input/output

Input/Output

Futile

LibFDF

LibPSML

Pspio

LibESCDF

Pouillon (UNICAN, Simune) FHI-AIMS 2018 22 / 34

Page 36: The CECAM Electronic Structure Library: community-driven … · 2018-07-21 · The CECAM Electronic Structure Library: community-driven development of software libraries for electronic

Exchange-correlation

XC

LibXC

LibGridXC

Libvdwxc

Pouillon (UNICAN, Simune) FHI-AIMS 2018 23 / 34

Page 37: The CECAM Electronic Structure Library: community-driven … · 2018-07-21 · The CECAM Electronic Structure Library: community-driven development of software libraries for electronic

Solvers

Solvers

ELSIESDW Drivers

LibOMM

POKE PSolver

SQARE

Pouillon (UNICAN, Simune) FHI-AIMS 2018 24 / 34

Page 38: The CECAM Electronic Structure Library: community-driven … · 2018-07-21 · The CECAM Electronic Structure Library: community-driven development of software libraries for electronic

Utilities

Utilities

FutileELPA

MatrixSwitch

PEXSI Docker images

Copyright updater

Pouillon (UNICAN, Simune) FHI-AIMS 2018 25 / 34

Page 39: The CECAM Electronic Structure Library: community-driven … · 2018-07-21 · The CECAM Electronic Structure Library: community-driven development of software libraries for electronic

Complex workflows

WorkflowsFlook FLOS

Pouillon (UNICAN, Simune) FHI-AIMS 2018 26 / 34

Page 40: The CECAM Electronic Structure Library: community-driven … · 2018-07-21 · The CECAM Electronic Structure Library: community-driven development of software libraries for electronic

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

Page 41: The CECAM Electronic Structure Library: community-driven … · 2018-07-21 · The CECAM Electronic Structure Library: community-driven development of software libraries for electronic

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

Page 42: The CECAM Electronic Structure Library: community-driven … · 2018-07-21 · The CECAM Electronic Structure Library: community-driven development of software libraries for electronic

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

Page 43: The CECAM Electronic Structure Library: community-driven … · 2018-07-21 · The CECAM Electronic Structure Library: community-driven development of software libraries for electronic

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

Page 44: The CECAM Electronic Structure Library: community-driven … · 2018-07-21 · The CECAM Electronic Structure Library: community-driven development of software libraries for electronic

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

Page 45: The CECAM Electronic Structure Library: community-driven … · 2018-07-21 · The CECAM Electronic Structure Library: community-driven development of software libraries for electronic

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

Page 46: The CECAM Electronic Structure Library: community-driven … · 2018-07-21 · The CECAM Electronic Structure Library: community-driven development of software libraries for electronic

Acknowledgments

Thank you for your time!

Pouillon (UNICAN, Simune) FHI-AIMS 2018 33 / 34

Page 47: The CECAM Electronic Structure Library: community-driven … · 2018-07-21 · The CECAM Electronic Structure Library: community-driven development of software libraries for electronic

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