AiiDA
Automated Interactive Infrastructure and Database for Computational Science


If you use AiiDA please cite:
AiiDA 1.0: S.P. Huber et al. arXiv:2003.12476 (2020)
AiiDA 0.x: G. Pizzi et al. Comp. Mat. Sci. 111, 218-230 (2016) (open access)

Posts

Report on the 2020 AiiDA virtual tutorial

👤 🕔 July 22, 2020 Comments Off on Report on the 2020 AiiDA virtual tutorial

All the presentations and material used for the hands-on sessions can be found on the tutorial webpage.

Due to the ongoing pandemic, this year’s edition of the AiiDA tutorial was organised in an entirely virtual format, which gave us the opportunity to expand our admittance to a truly global audience. In total, we accepted 85 participants from 30 countries and 13 different time zones. Incorporating this wide range of time zones presented an interesting challenge, and so we decided to split participants into two groups, running duplicate hands-on sessions for each group at different times of the day.

All presentations were pre-recorded and published on YouTube before the start of the tutorial. Next to the talks, which introduced the concepts for each of the hand-on sessions, there were also many interesting contributions from several of AiiDA’s plugin developers. The hands-on sessions were organised via Zoom meetings, with our instructors on hand to provide feedback to the participants and breakout rooms made available for one-on-one assistance.

The tutorial schedule, showing the time slots for both groups A and B.

The first day started with a brief introduction, after which we made sure the participants were able to connect to their Quantum Mobile virtual machines, hosted on Amazon’s web services. Once everyone was ready to get started, Giovanni Pizzi kicked off the hands-on sessions by explaining the basics of using AiiDA. After a short break, Francisco Ramirez guided the session on running computations through the AiiDA engine, using Quantum ESPRESSO as an example.

The first session on Wednesday, presented by Casper Andersen and Aliaksandr Yakutovich, was devoted to some essential tools for managing data and querying your database. After the break, Marnik Bercx coordinated an initial session on how to write workflows in AiiDA, continuing through to Thursday with Sebastiaan Huber introducing more advanced methods to improve the robustness of your workflows. In Thursday’s second session, Leopold Talirz explained the basics on writing plugins, after which participants could either work through a prepared example to understand the concepts, or start working on writing a plugin for an external code they wanted to run using AiiDA.

Participants of group A at the end of the plugin developer Q&A session.

On the last day a Q&A panel was arranged with a number of plugin developers, who were kind enough to take time out of their busy schedule to answer questions about their work. Finally, the last session was dedicated to helping the participants install and run AiiDA on their machine, facilitated by a step-by-step explanation from Chris Sewell. After the closing remarks, a final hands-on session was available to participants who had further questions for our team or required more assistance with their AiiDA installation.

Participants of group B during the first hands-on session on Thursday.

As many of the instructors were present for most of the hands-on sessions of both groups, this resulted in some long days for some! However, their energy and dedication never wavered, which was very much appreciated by the participants. 

Feedback on the skills and responsiveness of the instructors.

All in all, the first virtual AiiDA tutorial was a great success! As shown by the graphs below, participants were very happy with the format and tutorial material, and close to 80% said that we should organise more virtual tutorials in the future, even once travelling no longer is an issue. We have also received many valuable suggestions which we will consider to further improve the next tutorials.

Thanks to all who attended, and we look forward to hearing from you again!

AiiDA project & Google Season of Docs

👤 🕔 April 22, 2019 Comments Off on AiiDA project & Google Season of Docs


The AiiDA project is happy to announce its application to participate in this year’s Google Season of Docs (GSoD). GSoD tries to bring open source projects and technical writers together: To give technical writers experience in contributing to open source projects and help opens source projects to improve their documentation and interact with the technical writing community.

What happens next

See also the full timeline:

  • April 30, 2019 Google publishes the list of accepted mentoring organizations
  • May 29, 2019 Start of technical writer application period. More details about the application process can be found in the technical writer guide, where also the application form will be published
  • June 28, 2019 End of technical writer application period

Prospective technical writers

Are you a technical writer with a background in (or affinity to) computational materials science, physics or chemistry? Would you be interested in boosting a tool that lets researchers manage thousands of simultaneous calculations on supercomputers and helps them work in an open-science environment, making their research reproducible and FAIR? Then please read on!

If you would like to discuss your application or project ideas, please feel free to contact Kevin or any of the other coordinators and prospective mentors:

What is AiiDA?

Simulations and high-throughput computational screenings have emerged as indispensable tools in materials’ science. The important impact of quantum simulations on science in general is underscored by the fact that 12 of the 100 most cited papers of the entire scientific literature deal with simulations based on density functional-theory .

Computational materials science involves screening thousands to hundreds of thousands of materials for key figures of merit. Running thousands of calculations is a nontrivial task in itself and calls for an infrastructure to help orchestrate the calculations and organize the output data, while also ensuring that others can easily reproduce the work. To this aim, there are two important requirements for such an infrastructure: First, it must be flexible enough to support a large variety of simulation workflows; second, it should require minimal overhead compared to the ‘conventional’ way of running simulations.

AiiDA is a python package that is built to make this possible: while automating simulations on supercomputers, it stores the full provenance of data and calculations in a directed graph (see Figure 1c) that can be easily queried using a high-level interface. Moreover, it provides a workflow engine that make it possible to automate and run complex simulations with simple, small snippets of code by using predefined ‘turn-key’ workflows (see Figure 1). Currently, 34 plugins provide support different codes and provide over 50 workflows to compute basic and advanced materials properties.

AiiDA workflows
Figure 1: Complex computational workflow for the Aluminum band structure (a) started using a turnkey workflow as shown in (b). The resulting computational graph (c) that is automatically stored in the AiiDA database. Source: Pizzi, G., Togo, A., & Kozinsky, B. (2018). Provenance, workflows, and crystallographic tools in materials science: AiiDA, spglib, and seekpath. MRS Bulletin, 43(9), 696-702. doi:10.1557/mrs.2018.203

Project ideas

AiiDA is documented on ReadTheDocs and also offers a variety of tutorial material from university classes, schools and workshops (https://aiidateam.github.io/aiida-tutorials/ , https://github.com/aiidateam/aiida_demos, https://github.com/aiidateam/aiida-max-examples, https://aiida-core.readthedocs.io/en/stable/tutorial/index.html) most of which were written for AiiDA 0.x.

Following several alpha and beta versions, 2019 will see the release of AiiDA version 1.0. AiiDA 1.0 brings a number of new features, a redesign of the provenance model as well as of many AiiDA internals. The projects for the 2019 GSoD will focus on updating the available documentation and tutorial material to reflect the changes which were introduced in AiiDA 1.0.

Note: These are project ideas. We highly welcome your suggestions on how to make the documentation more effective as well as how to best accommodate your talents as a technical writer.

AiiDA Tutorials: Teaching AiiDA

Recently, a new major release of AiiDA changed several parts of the API wherefore existing tutorials (https://aiidateam.github.io/aiida-tutorials/ , https://github.com/aiidateam/aiida_demos, https://github.com/aiidateam/aiida-max-examples, https://aiida-core.readthedocs.io/en/stable/tutorial/index.html) need to be updated to reflect these changes.

Moreover, from the perspective of a new user, it would be probably easier to find all existing tutorials in a consistent and updated form in one place (e.g. a with tag with the versions on which the tutorials were tested, see also http://matgenb.materialsvirtuallab.org/). On top of that, several codes that AiIDA supports are not represented with a tutorial — it would be great to add new jupyter notebooks, ideally on MyBinder, showcasing how to use AiiDA with those plugins.
We can suggest plugins which are well developed and contain advanced features (and for which we know the authors) and can help the technical writers in prioritizing.
The technical writer could then test examples from the plugin repositories and create a tutorial, maybe even in form of a screencast (some videos can already be found on the Materials Cloud), explaining a common workflow using AiiDA and one of the many AiiDA plugins.
Existing videos and screencasts could be updated, or at least annotated, to reflect the changes with the new major release. An ambitious technical writer might even set out to develop a online course teaching the basics of AiiDA (writing workflows, querying the database) in the form of a MOOC. An bit less ambitious goal would be to bring existing tutorials on our youtube channel into a consistent format.

AiiDA docs

The AiiDA documentation, written in Sphinx and hosted on ReadTheDocs, is our main effort to document the usage and development of AiiDA. A technical writer could contribute in several ways to this documentation: First, the complete documentation needs to be checked for compatibility with the AiiDA 1.0 release. Second, the documentation can still be extended and refactored to improve the user experience. Sometimes, we encounter issues that are not documented or are not clear enough, or we realise that the organisation of the documentation does not make it easy to find the section that is being searched for. Hence, it would be great to check for frequent issues on the mailing list and include those in the documentation.

AiiDA web site

We feel that our web page could to be updated to better highlight the main features of AiiDA. Currently, the feature section is hidden and should be updated to reflect the feature set of the most recent release. A technical writer could help developing this section and writing a ‘why use AiiDA’ section, ideally supported by appealing visualizations.
We would welcome interactive feature demonstrations or a carousel with examples in which AiiDA was used. This could include links to the databases on the Materials Cloud archive or even interviews with researchers, discussing how they used AiiDA in their research and publication process.

AiiDA plugins migration workshop – EPFL, 25-29 March 2019

👤 🕔 January 11, 2019 Comments Off on AiiDA plugins migration workshop – EPFL, 25-29 March 2019

An AiiDA plugin migration workshop will be held at EPFL Lausanne, Switzerland, aiming at collecting about 20 participants.

The workshop will start on Monday 25th March at 2PM and end on Friday 29th March at 1PM.

We are in the process of preparing the AiiDA code towards the 1.0 release, in which we have recently introduced python 2 + python 3 support (already available in the 1.0 alpha releases). While we strive to always maintain back-compatibility, we have realised that there were a few needed improvements to the API and we felt that the 1.0 release was the right moment to introduce them. (Note: while existing “codebases” will need (often very straightforward) migration-which is
what this workshop is for-existing “databases” will be fully compatible and be automatically migrated when users upgrade to AiiDA 1.0).

The aim of this workshop is to directly support AiiDA plugin developers in the migration of their plugins to support both python 2 and python 3, as well as the changes introduced in AiiDA 1.0.

This workshop is focused on migrating existing plugins (a full list of the plugins supporting almost 60 different codes can be found on the AiiDA plugin registry page). Another tutorial for new developers of plugins and workflows will be held in Lausanne in the week 20-24 May 2019 and will be advertised soon (stay tuned!).

We will also reserve some time for discussions on plugin interfaces and their homogenisation and common APIs, exploiting this unique occasion bringing together many plugin developers.

Main topics

  • explanation of the changes on 1.0;
  • hands-on workshop on porting plugins to py2+3 and new aiida 1.0;
  • discussions on common interfaces to different plugins for common functionalities (e.g. crystal structure relaxation, band structure, …);
  • discussion of automated plugin testing against different versions of AiiDA, python, …

Program
Every day there will be an informal coffee break from 11:00 – 11:15 and 16:00 – 16:15

Monday 25th
2:00 – 2:15: Registration
2:15 – 2:20: Introductory talk
2:20 – 3:20: What’s new in v1.0.0 + backwards incompatible changes (Sebastiaan)
3:20 – 4:00: Talk on python2/python3 compatibility
4:00 – 4:30: Coffee break
4:30 – 4:45: Plugin migration – step by step instructions
4:45 – 6:00: Hands-on plugin migration workshop

Tuesday 26th
09:00 – 09:45: Tutorial on plugin versioning and git-flow model of releasing
09:45 – 11:00: Hands-on plugin migration workshop
13:00 – 14:00: Lunch
14:00 – 18:00: Hands-on plugin migration workshop

Wednesday 27th
09:00 – 13:00: Hands-on plugin migration workshop
13:00 – 14:00: Lunch
14:00 – 14:45: Talk on new workflow and engine features
14:45 – 18:00: Hands-on plugin migration workshop
19:00 – 22:00: Social dinner (place to be announced)

Thursday 28th
09:00 – 13:00: Open discussion on plugin common guidelines and common workflow interfaces
13:00 – 14:00: Lunch
14:00 – 18:00: Hands-on plugin migration workshop

Friday 29th
09:00 – 13:00: Hands-on plugin migration workshop

Support

This workshop is supported by the NCCR MARVEL funded by the Swiss National Science Foundation and by the European H2020 MaX Centre of Excellence.