aiida.net Computational Materials Science in the High-Throughput - - PowerPoint PPT Presentation

aiida net computational materials science in the high
SMART_READER_LITE
LIVE PREVIEW

aiida.net Computational Materials Science in the High-Throughput - - PowerPoint PPT Presentation

aiida.net Computational Materials Science in the High-Throughput Era with AiiDA and the Materials Cloud Leopold Talirz, Aliaksandr V. Yakutovich, Daniele Ongari Today's schedule 9:00-10:30 Introductory lecture 10:30-11:00 Coffee


slide-1
SLIDE 1

aiida.net

Computational Materials Science in the High-Throughput Era
 
 with AiiDA and the Materials Cloud

Leopold Talirz, Aliaksandr V. Yakutovich, Daniele Ongari

slide-2
SLIDE 2

Today's schedule

2

9:00-10:30 Introductory lecture 10:30-11:00 Coffee break 11:00-12:00 Getting everybody set up
 Group A: Room X | Group B: Room Y 12:00-13:00 Lunch break 13:00-17:00 Tutorial & exercises
 Group A: Room X | Group B: Room Z

slide-3
SLIDE 3

Outline

3

❶ ❷

Motivation, Architecture Topic of today's tutorial

slide-4
SLIDE 4

Outline

3

❶ ❷

Motivation, Architecture Topic of today's tutorial

slide-5
SLIDE 5

Motivation

4

High-Throughput

Computational Materials Science Challenges

Reproducibility Open Science Knowledge Transfer

slide-6
SLIDE 6

Challenge 1 − High Throughput

5

20 years (1998)
 ↓ 4 hours (2018)

www.top500.org/statistics/perfdevel

Top 500 Supercomputer Performance

My MacBook

50k x / 20 years

slide-7
SLIDE 7

Challenge 1 − High Throughput

5

20 years (1998)
 ↓ 4 hours (2018)

www.top500.org/statistics/perfdevel

Top 500 Supercomputer Performance

My MacBook

1 material (1998)
 ↓ 50k materials (2018) OR 50k x / 20 years

slide-8
SLIDE 8

Motivation

6

High-Throughput

Computational Materials Science Challenges

Reproducibility Open Science Knowledge Transfer

  • Organize large numbers of

calculations

  • Deal with corner cases


(theory, code, infrastructure)

  • Many strings to pull

Source: istockphoto.com

slide-9
SLIDE 9

Motivation

7

High-Throughput Reproducibility Open Science Knowledge Transfer

  • Keep track of what you


calculate

  • Keep track of how you did it
  • Within a research group:


Can Alice reproduce what Bob computed 1 year ago?

Source: academiccoachingandwriting.org

Computational Materials Science Challenges

slide-10
SLIDE 10

Challenge 2 − Reproducibility

8

IS THERE A REPRODUCIBILITY CRISIS?

Nature 533, 452–454 (2016)

slide-11
SLIDE 11

Challenge 2 − Reproducibility

9

Nature 533, 452–454 (2016)

slide-12
SLIDE 12

Challenge 2 − Reproducibility

9

No excuses in computational science We can and must be fully reproducible


Nature 533, 452–454 (2016)

slide-13
SLIDE 13

High-throughput Example

10

DISCOVERING NEW TWO-DIMENSIONAL MATERIALS

  • N. Mounet et al. Nat Nanotech 13, 246-52 (2018). doi: 10.1038/s41565-017-0035-5
slide-14
SLIDE 14

High-throughput Example

10

DISCOVERING NEW TWO-DIMENSIONAL MATERIALS

  • N. Mounet et al. Nat Nanotech 13, 246-52 (2018). doi: 10.1038/s41565-017-0035-5

STARTING FROM ICSD/COD DATABASE:

  • 108 423 unique 3D structures
  • 5619 layered structures
  • >100 000 DFT calculations
  • >30 000 material properties
  • >1·109 attributes
slide-15
SLIDE 15

High-throughput Example

10

DISCOVERING NEW TWO-DIMENSIONAL MATERIALS

  • N. Mounet et al. Nat Nanotech 13, 246-52 (2018). doi: 10.1038/s41565-017-0035-5

STARTING FROM ICSD/COD DATABASE:

  • 108 423 unique 3D structures
  • 5619 layered structures
  • >100 000 DFT calculations
  • >30 000 material properties
  • >1·109 attributes

Data needs to be condensed in a few plots

slide-16
SLIDE 16

High-throughput Example

11

DISCOVERING NEW TWO-DIMENSIONAL MATERIALS

STARTING FROM ICSD/COD DATABASE:

  • 108 423 unique 3D structures
  • 5619 layered structures
  • >100 000 DFT calculations
  • >30 000 material properties
  • >1·109 attributes

Methods: Impossible to describe every detail

  • N. Mounet et al. Nat Nanotech 13, 246-52 (2018). doi: 10.1038/s41565-017-0035-5
slide-17
SLIDE 17

High-throughput Example

11

DISCOVERING NEW TWO-DIMENSIONAL MATERIALS

STARTING FROM ICSD/COD DATABASE:

  • 108 423 unique 3D structures
  • 5619 layered structures
  • >100 000 DFT calculations
  • >30 000 material properties
  • >1·109 attributes

Methods: Impossible to describe every detail

For authors, reproducing all data is challenging. For peers, reproducing all data is almost impossible.

  • N. Mounet et al. Nat Nanotech 13, 246-52 (2018). doi: 10.1038/s41565-017-0035-5
slide-18
SLIDE 18

High-throughput Example

12

DISCOVERING NEW TWO-DIMENSIONAL MATERIALS

STARTING FROM ICSD/COD DATABASE:

  • 108 423 unique 3D structures
  • 5619 layered structures
  • >100 000 DFT calculations
  • >30 000 material properties
  • >1·109 attributes

Methods: Impossible to describe every detail








  • Computational science platform
  • for high-throughput calculations
  • with automatic data provenance
  • N. Mounet et al. Nat Nanotech 13, 246-52 (2018). doi: 10.1038/s41565-017-0035-5

For authors, reproducing all data is challenging. For peers, reproducing all data is almost impossible.

slide-19
SLIDE 19

13

AiiDA architecture

slide-20
SLIDE 20

1. The core: AiiDA python API

14

AiiDA architecture

slide-21
SLIDE 21

AiiDA architecture

2. User interface: 
 python scripts, verdi command line tool, verdi shell

15

slide-22
SLIDE 22

AiiDA architecture

3.AiiDA daemon: manage interaction with 
 remote computers without user intervention

16 Calculation state TOSUBMIT
 
 WITHSCHEDULER RETRIEVED PARSED FINISHED

slide-23
SLIDE 23

AiiDA architecture

4. AiiDA Object-Relational Mapper (ORM): 
 stores data, codes and calculations in local database

17

slide-24
SLIDE 24

AiiDA: Calculation example

18

code = Code.get_from_string('pw-6.3@daint-mr25') calc = code.new_calc() calc.set_max_wallclock_seconds(600) calc.set_resources({"num_machines": 2}) Structure = DataFactory('structure') structure = Structure(ase = read('TiO2.cif')) Parameter = DataFactory('parameter') parameters = Parameter({ 'CONTROL': { 'calculation': 'scf', 'restart_mode': 'from_scratch', }, 'SYSTEM': { 'ecutwfc': 40., }}) Kpoints = DataFactory('array.kpoints') kpoints = Kpoints(kpoints_mesh = [4,4,4]) calc.use_structure(structure) calc.use_parameters(parameters) calc.use_kpoints(kpoints) calc.use_pseudos_from_family('SSSP_efficiency_v1.0') calc.store_all() calc.submit()

slide-25
SLIDE 25

AiiDA: Calculation example

18

Switch computers in one line
 supports different schedulers, version of codes, …

code = Code.get_from_string('pw-6.3@daint-mr25') calc = code.new_calc() calc.set_max_wallclock_seconds(600) calc.set_resources({"num_machines": 2}) Structure = DataFactory('structure') structure = Structure(ase = read('TiO2.cif')) Parameter = DataFactory('parameter') parameters = Parameter({ 'CONTROL': { 'calculation': 'scf', 'restart_mode': 'from_scratch', }, 'SYSTEM': { 'ecutwfc': 40., }}) Kpoints = DataFactory('array.kpoints') kpoints = Kpoints(kpoints_mesh = [4,4,4]) calc.use_structure(structure) calc.use_parameters(parameters) calc.use_kpoints(kpoints) calc.use_pseudos_from_family('SSSP_efficiency_v1.0') calc.store_all() calc.submit()

slide-26
SLIDE 26

AiiDA: Calculation example

18

Define (only) necessary inputs Interface designed by plugin Switch computers in one line
 supports different schedulers, version of codes, …

code = Code.get_from_string('pw-6.3@daint-mr25') calc = code.new_calc() calc.set_max_wallclock_seconds(600) calc.set_resources({"num_machines": 2}) Structure = DataFactory('structure') structure = Structure(ase = read('TiO2.cif')) Parameter = DataFactory('parameter') parameters = Parameter({ 'CONTROL': { 'calculation': 'scf', 'restart_mode': 'from_scratch', }, 'SYSTEM': { 'ecutwfc': 40., }}) Kpoints = DataFactory('array.kpoints') kpoints = Kpoints(kpoints_mesh = [4,4,4]) calc.use_structure(structure) calc.use_parameters(parameters) calc.use_kpoints(kpoints) calc.use_pseudos_from_family('SSSP_efficiency_v1.0') calc.store_all() calc.submit()

slide-27
SLIDE 27

AiiDA: Calculation example

18

Inputs stored in the DB Define (only) necessary inputs Interface designed by plugin Switch computers in one line
 supports different schedulers, version of codes, …

code = Code.get_from_string('pw-6.3@daint-mr25') calc = code.new_calc() calc.set_max_wallclock_seconds(600) calc.set_resources({"num_machines": 2}) Structure = DataFactory('structure') structure = Structure(ase = read('TiO2.cif')) Parameter = DataFactory('parameter') parameters = Parameter({ 'CONTROL': { 'calculation': 'scf', 'restart_mode': 'from_scratch', }, 'SYSTEM': { 'ecutwfc': 40., }}) Kpoints = DataFactory('array.kpoints') kpoints = Kpoints(kpoints_mesh = [4,4,4]) calc.use_structure(structure) calc.use_parameters(parameters) calc.use_kpoints(kpoints) calc.use_pseudos_from_family('SSSP_efficiency_v1.0') calc.store_all() calc.submit()

slide-28
SLIDE 28

AiiDA: Calculation example

18

Handing over to the daemon Inputs stored in the DB Define (only) necessary inputs Interface designed by plugin Switch computers in one line
 supports different schedulers, version of codes, …

code = Code.get_from_string('pw-6.3@daint-mr25') calc = code.new_calc() calc.set_max_wallclock_seconds(600) calc.set_resources({"num_machines": 2}) Structure = DataFactory('structure') structure = Structure(ase = read('TiO2.cif')) Parameter = DataFactory('parameter') parameters = Parameter({ 'CONTROL': { 'calculation': 'scf', 'restart_mode': 'from_scratch', }, 'SYSTEM': { 'ecutwfc': 40., }}) Kpoints = DataFactory('array.kpoints') kpoints = Kpoints(kpoints_mesh = [4,4,4]) calc.use_structure(structure) calc.use_parameters(parameters) calc.use_kpoints(kpoints) calc.use_pseudos_from_family('SSSP_efficiency_v1.0') calc.store_all() calc.submit()

slide-29
SLIDE 29

Data provenance: Directed Acyclic Graphs

19

slide-30
SLIDE 30

From calculations to workflows: phonon dispersion

Main-Workflow

Structure Relaxation Dynamical matrices Interatomic force constants Phonon dispersion

  • N. Mounet et al.
slide-31
SLIDE 31

From calculations to workflows: phonon dispersion

Main-Workflow

Structure Relaxation Dynamical matrices Interatomic force constants Phonon dispersion

Relaxation #1 Relaxation #2 Relaxation #n

Structure cell converged

  • N. Mounet et al.
slide-32
SLIDE 32

From calculations to workflows: phonon dispersion

Main-Workflow

Structure Relaxation Dynamical matrices Interatomic force constants Phonon dispersion

Relaxation #1 Relaxation #2 Relaxation #n

Structure cell converged Restart management Restart (wall-time exceeded, …)

PW vc-relax PW vc-relax PW vc-relax

several failure cases handled automatically

  • N. Mounet et al.
slide-33
SLIDE 33

From calculations to workflows: phonon dispersion

Main-Workflow

Structure Relaxation Dynamical matrices Interatomic force constants Phonon dispersion Sub-workflows Single calculations

Relaxation #1 Relaxation #2 Relaxation #n

Structure cell converged Restart management Restart (wall-time exceeded, …)

PW vc-relax PW vc-relax PW vc-relax

several failure cases handled automatically

Initialize PH PH on q-grid Collect phonons

Parallelization

PH on q1 PH on q2 PH on qn

  • N. Mounet et al.
slide-34
SLIDE 34

Workflows = Encapsulation

21 params = {'input': {'kpoints_density': 0.2, 'convergence': 'tight'}, 'structure': structure, 'pseudo_family': pseudo_family, 'machinename': 'mycluster', 'pw_input':{'volume_conv_threshold': 5e-2}, 'pw_parameters': { 'SYSTEM': {'ecutwfc': 30.}, 'ELECTRONS': {'conv_thr': 1.e-10}} 'ph_input':{ 'distance_kpoints_in_dispersion': 0.005, 'diagonalization': 'cg'} } future = submit(PhBandsWorkflow, **params)

From minimal inputs ...

slide-35
SLIDE 35

Workflows = Encapsulation

21 params = {'input': {'kpoints_density': 0.2, 'convergence': 'tight'}, 'structure': structure, 'pseudo_family': pseudo_family, 'machinename': 'mycluster', 'pw_input':{'volume_conv_threshold': 5e-2}, 'pw_parameters': { 'SYSTEM': {'ecutwfc': 30.}, 'ELECTRONS': {'conv_thr': 1.e-10}} 'ph_input':{ 'distance_kpoints_in_dispersion': 0.005, 'diagonalization': 'cg'} } future = submit(PhBandsWorkflow, **params)

From minimal inputs ...

KpointsData (216283) (372 kpts) MatdynCalculation (216285) FINISHED kpoints BandsData (216385) 'Phonon bands'
  • utput_phonon_bands
FolderData (216383) retrieved RemoteData (216320) remote_folder ParameterData (216384)
  • utput_parameters
Code (209961) 'matdyn-5.1.2-module' code ForceconstantsData (216273) parent_calc_folder ParameterData (216284) parameters ParameterData (216282) settings Q2rCalculation (215983) FINISHED force_constants FolderData (215981) parent_calc_folder Code (209960) 'q2r-5.1.2-module' code ParameterData (215982) parameters InlineCalculation (215980) recollect_qpoints_inline() retrieved FolderData (215920) retrieved_6 FolderData (215976) retrieved_7 FolderData (215978) retrieved_4 FolderData (215797) retrieved_5 FolderData (215848) retrieved_2 FolderData (215924) retrieved_3 FolderData (215831) retrieved_0 FolderData (215912) retrieved_1 FolderData (215895) retrieved_8 FolderData (215829) retrieved_9 FolderData (215252) initial_folder InlineCalculation (215309) distribute_qpoints_inline() retrieved PhCalculation (215430) FINISHED retrieved PhCalculation (215433) FINISHED retrieved PhCalculation (215526) FINISHED retrieved PhCalculation (215427) FINISHED retrieved PhCalculation (215520) FINISHED retrieved PhCalculation (215523) FINISHED retrieved PhCalculation (215517) FINISHED retrieved PhCalculation (215514) FINISHED retrieved PhCalculation (215436) FINISHED retrieved PhCalculation (215529) FINISHED retrieved PhCalculation (215224) FINISHED retrieved ParameterData (215428) settings RemoteData (214841) parent_calc_folder parent_calc_folder parent_calc_folder parent_calc_folder parent_calc_folder parent_calc_folder parent_calc_folder parent_calc_folder parent_calc_folder parent_calc_folder parent_calc_folder Code (209959) 'ph-5.1.2-module' code code code code code code code code code code code ParameterData (215429) parameters KpointsData (215312) (1 kpts) qpoints ParameterData (215431) settings ParameterData (215432) parameters KpointsData (215313) (1 kpts) qpoints ParameterData (215524) settings ParameterData (215525) parameters KpointsData (215310) (1 kpts) qpoints KpointsData (215311) (1 kpts) qpoints ParameterData (215426) parameters ParameterData (215425) settings ParameterData (215518) settings ParameterData (215519) parameters KpointsData (215316) (1 kpts) qpoints ParameterData (215521) settings ParameterData (215522) parameters KpointsData (215317) (1 kpts) qpoints ParameterData (215516) parameters ParameterData (215515) settings KpointsData (215314) (1 kpts) qpoints ParameterData (215512) settings ParameterData (215513) parameters KpointsData (215315) (1 kpts) qpoints KpointsData (215318) (1 kpts) qpoints ParameterData (215435) parameters ParameterData (215434) settings ParameterData (215527) settings ParameterData (215528) parameters KpointsData (215319) (1 kpts) qpoints ParameterData (215223) parameters ParameterData (215222) settings KpointsData (214808) 4x4x4 (+0.0,0.0,0.0) qpoints PwCalculation (214830) scf FINISHED remote_folder qpoint_6 qpoint_7 qpoint_4 qpoint_5 qpoint_2 qpoint_3 qpoint_0 qpoint_1 qpoint_8 qpoint_9 Code (139993) 'pw-5.1.2-module' code UpfData (1658) pseudo_O UpfData (1660) pseudo_Ti ParameterData (214828) parameters ParameterData (214829) settings KpointsData (214807) 6x6x6 (+0.0,0.0,0.0) kpoints UpfData (1905) pseudo_Ba StructureData (214814) BaO3Ti structure structure

... to complex workflows

slide-36
SLIDE 36

AiiDA − Development

22

Plugin registry: aiidateam.github.io/aiida-registry

  • Free and open source (MIT License)
  • github.com/aiidateam/aiida_core
  • 36 releases, latest stable version: v0.12.2
  • 40 contributors since 2012

AiiDA plugins
 ase, castep, codtools, cp2k, crystal17,
 fleur, gollum, kkr, lammps, nwchem, phonopy, quantumespresso, raspa, siesta, vasp, wannier90, yambo, zeo++, and more ... (+plugin template)

slide-37
SLIDE 37

23

slide-38
SLIDE 38

Motivation

24

High-Throughput Reproducibility Open Science Knowledge Transfer

  • Open Science
  • Supporting Information
  • Just upload everything
  • FAIR data
  • Making data FAIR is hard,


can we make it easier?

Source: Prof. Michel Dumontier

Computational Materials Science Challenges

slide-39
SLIDE 39

High-throughput Example

25

DISCOVERING NEW TWO-DIMENSIONAL MATERIALS

STARTING FROM ICSD/COD DATABASE:

  • 108 423 unique 3D structures
  • 5619 layered structures
  • >100 000 DFT calculations
  • >30 000 material properties
  • >1·109 attributes

Methods: Impossible to describe every detail

For authors, reproducing all data is challenging. For peers, reproducing all data is almost impossible.

  • N. Mounet et al. Nat Nanotech 13, 246-52 (2018). doi: 10.1038/s41565-017-0035-5
slide-40
SLIDE 40

FAIR sharing example

26

https://archive.materialscloud.org/2017.0008/v1

slide-41
SLIDE 41

FAIR sharing example

27

slide-42
SLIDE 42

FAIR sharing example

27

slide-43
SLIDE 43

FAIR sharing example

28

slide-44
SLIDE 44

FAIR sharing example

28

slide-45
SLIDE 45

FAIR sharing example

29

slide-46
SLIDE 46

FAIR sharing example

29

slide-47
SLIDE 47

30

slide-48
SLIDE 48

Motivation

31

High-Throughput Reproducibility Open Science Knowledge Transfer

  • How to transfer your 


insights & expertise, e.g.

  • reporting data sets to 


an experimental group

  • providing a workflow for


your code to a collaborator/
 company

  • ...

Source: quote.ucsd.edu

Computational Materials Science Challenges

slide-49
SLIDE 49 KpointsData (216283) (372 kpts) MatdynCalculation (216285) FINISHED kpoints BandsData (216385) 'Phonon bands'
  • utput_phonon_bands
FolderData (216383) retrieved RemoteData (216320) remote_folder ParameterData (216384)
  • utput_parameters
Code (209961) 'matdyn-5.1.2-module' code ForceconstantsData (216273) parent_calc_folder ParameterData (216284) parameters ParameterData (216282) settings Q2rCalculation (215983) FINISHED force_constants FolderData (215981) parent_calc_folder Code (209960) 'q2r-5.1.2-module' code ParameterData (215982) parameters InlineCalculation (215980) recollect_qpoints_inline() retrieved FolderData (215920) retrieved_6 FolderData (215976) retrieved_7 FolderData (215978) retrieved_4 FolderData (215797) retrieved_5 FolderData (215848) retrieved_2 FolderData (215924) retrieved_3 FolderData (215831) retrieved_0 FolderData (215912) retrieved_1 FolderData (215895) retrieved_8 FolderData (215829) retrieved_9 FolderData (215252) initial_folder InlineCalculation (215309) distribute_qpoints_inline() retrieved PhCalculation (215430) FINISHED retrieved PhCalculation (215433) FINISHED retrieved PhCalculation (215526) FINISHED retrieved PhCalculation (215427) FINISHED retrieved PhCalculation (215520) FINISHED retrieved PhCalculation (215523) FINISHED retrieved PhCalculation (215517) FINISHED retrieved PhCalculation (215514) FINISHED retrieved PhCalculation (215436) FINISHED retrieved PhCalculation (215529) FINISHED retrieved PhCalculation (215224) FINISHED retrieved ParameterData (215428) settings RemoteData (214841) parent_calc_folder parent_calc_folder parent_calc_folder parent_calc_folder parent_calc_folder parent_calc_folder parent_calc_folder parent_calc_folder parent_calc_folder parent_calc_folder parent_calc_folder Code (209959) 'ph-5.1.2-module' code code code code code code code code code code code ParameterData (215429) parameters KpointsData (215312) (1 kpts) qpoints ParameterData (215431) settings ParameterData (215432) parameters KpointsData (215313) (1 kpts) qpoints ParameterData (215524) settings ParameterData (215525) parameters KpointsData (215310) (1 kpts) qpoints KpointsData (215311) (1 kpts) qpoints ParameterData (215426) parameters ParameterData (215425) settings ParameterData (215518) settings ParameterData (215519) parameters KpointsData (215316) (1 kpts) qpoints ParameterData (215521) settings ParameterData (215522) parameters KpointsData (215317) (1 kpts) qpoints ParameterData (215516) parameters ParameterData (215515) settings KpointsData (215314) (1 kpts) qpoints ParameterData (215512) settings ParameterData (215513) parameters KpointsData (215315) (1 kpts) qpoints KpointsData (215318) (1 kpts) qpoints ParameterData (215435) parameters ParameterData (215434) settings ParameterData (215527) settings ParameterData (215528) parameters KpointsData (215319) (1 kpts) qpoints ParameterData (215223) parameters ParameterData (215222) settings KpointsData (214808) 4x4x4 (+0.0,0.0,0.0) qpoints PwCalculation (214830) scf FINISHED remote_folder qpoint_6 qpoint_7 qpoint_4 qpoint_5 qpoint_2 qpoint_3 qpoint_0 qpoint_1 qpoint_8 qpoint_9 Code (139993) 'pw-5.1.2-module' code UpfData (1658) pseudo_O UpfData (1660) pseudo_Ti ParameterData (214828) parameters ParameterData (214829) settings KpointsData (214807) 6x6x6 (+0.0,0.0,0.0) kpoints UpfData (1905) pseudo_Ba StructureData (214814) BaO3Ti structure structure

Workflows = Encapsulation

32 params = {'input': {'kpoints_density': 0.2, 'convergence': 'tight'}, 'structure': structure, 'pseudo_family': pseudo_family, 'machinename': 'mycluster', 'pw_input':{'volume_conv_threshold': 5e-2}, 'pw_parameters': { 'SYSTEM': {'ecutwfc': 30.}, 'ELECTRONS': {'conv_thr': 1.e-10}} 'ph_input':{ 'distance_kpoints_in_dispersion': 0.005, 'diagonalization': 'cg'} } future = submit(PhBandsWorkflow, **params)

From minimal inputs ... ... to complex workflows

slide-50
SLIDE 50

User base

33

User Skills Goals Solution

slide-51
SLIDE 51

User base

33

User Skills Goals Solution Computational Scientist Knows 
 Unix, bash, python

  • run high-throughput calculations
  • write complex workflows
  • develop AiiDA plugins

AiiDA 


  • n the laptop
slide-52
SLIDE 52

User base

33

User Skills Goals Solution Computational Scientist Knows 
 Unix, bash, python

  • run high-throughput calculations
  • write complex workflows
  • develop AiiDA plugins

AiiDA 


  • n the laptop

Experimental Scientist Doesn’t know 
 Unix, bash, python

  • run pre-defined workflows
  • analyze results

AiiDA Lab
 in the cloud

slide-53
SLIDE 53

User base

33

User Skills Goals Solution Computational Scientist Knows 
 Unix, bash, python

  • run high-throughput calculations
  • write complex workflows
  • develop AiiDA plugins

AiiDA 


  • n the laptop

Experimental Scientist Doesn’t know 
 Unix, bash, python

  • run pre-defined workflows
  • analyze results

AiiDA Lab
 in the cloud Student 
 (tutorial/ lecture) some familiarity with 
 Unix, bash, python

  • learn how to use AiiDA
  • learn how to use ab-initio codes
  • take materials home

Quantum Mobile 


  • n the laptop
slide-54
SLIDE 54

AiiDA Lab demo - login

34

slide-55
SLIDE 55

AiiDA Lab demo - login

34

slide-56
SLIDE 56

AiiDA Lab demo - login

35

slide-57
SLIDE 57

AiiDA Lab demo - login

35

slide-58
SLIDE 58

AiiDA Lab demo - appmode

36

slide-59
SLIDE 59

AiiDA Lab demo - appmode

36

slide-60
SLIDE 60

AiiDA Lab demo - terminal

37

slide-61
SLIDE 61

AiiDA Lab demo - terminal

37

slide-62
SLIDE 62

AiiDA Lab demo - phonon submit

38

slide-63
SLIDE 63

AiiDA Lab demo - phonon submit

38

slide-64
SLIDE 64

AiiDA Lab demo - phonon results

39

slide-65
SLIDE 65

AiiDA Lab demo - phonon results

39

slide-66
SLIDE 66

AiiDA Lab Architecture

40

Technologies:

  • JupyterHub (multi-user

server for Jupyter notebooks)

  • Jupyter notebooks


(interactive python,
 + appmode)

  • Docker (isolated

environment for every user)

  • Openstack (software to

manage computing clouds)

slide-67
SLIDE 67

Conclusions

41

  • write simple apps in python
  • Run where you like:
  • on your machine (your machine, your setup)
  • on Quantum Mobile (your machine, our setup)
  • on AiiDA Lab (our machine, our setup)
  • Workflows & Daemon help with automation
  • AiiDA graph = map of the data jungle
  • Your calculations are ready for Open Science
  • FAIR sharing of data
  • Free: 5 GB/record 


(50 GB for AiiDA graphs)

slide-68
SLIDE 68

Acknowledgements

42

slide-69
SLIDE 69

Developers

43

The Materials Cloud And AiiDA teams

Giovanni
 Pizzi (EPFL) Boris
 Kozinsky (BOSCH) Martin
 Uhrin (EPFL) Spyros
 Zoupanos (EPFL) Nicola
 Marzari (EPFL) Snehal P.
 Kumbhar (EPFL) Leonid
 Kahle (EPFL) Sebastiaan


  • P. Huber

(EPFL) Marco Borelli (EPFL) Elsa Passaro (EPFL) Thomas Schulthess (ETHZ,CSCS) Leopold Talirz (EPFL) Joost VandeVondele (ETHZ,CSCS) Aliaksandr Yakutovich (EPFL)

Contributors for the 23+ plugins: Quantum ESPRESSO, Wannier90, CP2K, FLEUR, YAMBO, SIESTA, VASP, … Contributors to aiida_core and former AiiDA team members — Valentin Bersier, Jocelyn Boullier, Jens Broeder, Andrea Cepellotti, Fernando Gargiulo, Dominik Gresch, Rico Häuselmann, Eric Hontz, Christoph Koch, Espen Flage- Larsen, Andrius Merkys, Nicolas Mounet, Tiziano Müller, Riccardo Sabatini, Ole Schütt, Phillippe Schwaller The CSCS support teams

Berend
 Smit (EPFL) Casper Welzel (EPFL)

slide-70
SLIDE 70

Contacts and info

Materials Cloud: materialscloud.org

  • Archive: archive.materialscloud.org
  • AiiDA Lab: aiidalab.materialscloud.org
  • Quantum Mobile: materialscloud.org/work/quantum-mobile

@aiidateam facebook.com/aiidateam Website: aiida.net Docs: aiida-core.readthedocs.io Git repo: github.com/aiidateam/aiida_core/ Plugin registry: aiidateam.github.io/aiida-registry 3 open positions for research software engineers/materials scientists nccr-marvel.ch

slide-71
SLIDE 71
slide-72
SLIDE 72

Quantum Mobile Virtual Machine

46

  • Ubuntu 16.04 LTS
  • AiiDA, AiiDA Lab
  • QE, Siesta, fleur,


yambo, cp2k, ...
 + AiiDA plugins

  • Visualization tools

(xcrysden, …)

  • used in tutorials &

lectures at EPFL, ETH, ...

  • Modular setup:


roll your own Download: materialscloud.org/work/quantum-mobile

Runs on Linux, MacOS and Windows hosts using VirtualBox