michael-herbst.com Research and projects

michael-herbst.com
  • Blog
    • Recent articles
    • Article archives
  • Research
    • Collaborations
    • Software / DFTK / adcc
    • Reliable and efficient DFT
    • Robust error control / algorithmic differentiation
    • Core-excited states
  • Publications
  • Upcoming
  • Curriculum Vitae
  • Teaching
    • Mathematical Aspects of Computational Chemistry
    • RWTH Julia workshop 2022
    • Juliacon DFTK workshop 2021
    • All teaching resources
  • Contact

Julia lightning talk

Yesterday I gave a short lightning talk at the Inria Devmeetup about Julia. My intention was to show a few of the design aspects of this rather recent programming language and motivated from my experiences in my current PostDoc project at the MATHERIALS team hint at interesting ongoing developments. For this I chose to show some (hopefully) representative code examples in a Jupyter notebook, interactively running the Julia code using an IJulia kernel.

For demonstrating Julia's multiple dispatch paradigm, I hinted how functionality (like the mysquare function in my example) can be easily implemented in a way such that code can be combined with multiple different computational backends. Such backends include distributed array storage for large chunks of data or arrays of static size, where the size information may be used at compile-time to speed up the byte code for small problems. GPU backends are possible as well, but I did not go into this in my presentation. With respect to speed I show some timings from a heat equation example (courtesy Antoine Levitt) comparing a Julia, a python and a C implementation. Last but not least I hinted at the interoperability with python packages and Fortran code and showed a plotting example, where I used Zygote to automatically compute and show the gradient of a function using adjoint-mode automatic differentiation.

The notebook I used for the presentation is both attached below and can be found on github as well. For a rendered version of the notebook you can open it in nbviewer.

Link
Julia: A numerical programming language (Notebook lightning talk)
View notebook in nbviewer
Posted on Mi 17 April 2019 in Research.

Tags: talk Julia programming and scripting and Inria Devmeetup

Social

  • Blog articles (Atom)
  • github.com/mfherbst
  • 0000-0003-0378-7921
  • arXiv.org preprints

Recent publications

  • Efficient response property calculations in DFT
  • Surrogate models for quantum spin systems
  • QCDB / QCEngine
  • Adaptive damping for SCFs
  • Q-Chem 5 paper
  • Full list of publications ...

Recent talks

  • GdR nbody meeting
  • GdR REST ML discussion
  • VMD 2021: Black-box DFT methods
  • Full list of talks ...

Recent teaching

  • DFTK workshop: Mathematics and numerics of density-functional theory
  • Mathematical Aspects of Computational Chemistry
  • An introduction to the Julia programming language
  • Full list of teaching ...

Blog categories

  • Chaos
  • Publications
  • Research
  • System Administration
  • Teaching
  • Uncategorised

    Blog tags

  • adcc
  • algebraic-diagrammatic construction
  • computer science
  • convergence
  • Coulomb Sturmians
  • DFT
  • DFTK
  • electronic structure theory
  • high-throughput
  • HPC
  • invited talk
  • Julia
  • Kohn-Sham
  • lazy matrices
  • numerical analysis
  • programming and scripting
  • solid state
  • talk
  • theoretical chemistry
  • workshop
Powered by pelican, python and Jinja2.