AiiDA
Automated Interactive Infrastructure and Database for Computational Science


If you use AiiDA please cite:
AiiDA 1.x
Main paper: S.P. Huber et al., Scientific Data 7, 300 (2020)
AiiDA engine: M. Uhrin et al., Comp. Mat. Sci. 187 (2021)

AiiDA 0.x
First paper, ADES model: G. Pizzi et al. Comp. Mat. Sci. 111, 218-230 (2016) (open access version)

Posts

AiiDA v1.4.0 released

👤 🕔 September 24, 2020 Comments Off on AiiDA v1.4.0 released

This is the fourth minor version of the v1 series and comes with some important performance improvements and features, but also various bug fixes. This is the last version to support Python 3.5.

RabbitMQ server can now be hosted on a different machine

In previous versions, AiiDA only supported connecting to a RabbitMQ instance running on localhost. With v1.4, one can now configure AiiDA to connect to a RabbitMQ instance over TCP/IP with optional SSL enabled. Existing profiles will be automatically migrated to add the standard configuration. To see how a new profile can be configured to connect to a remote RabbitMQ instance, please refer to the documentation.

Group extras

Groups now support setting “extras”: just like nodes, you can now store arbitrary metadata on group instances, as long as it is JSON serializable. The interface to setting, getting and deleting extras on a group is exactly the same as that for nodes. Note that, just as they are for nodes, extras are mutable. It is therefore not advised to use them to store information that is important for data provenance.

Scheduler output parsing

This version comes with a new method for the scheduler base class Scheduler.parse_output that can be implemented by scheduler plugins to parse the output that is generated by the scheduler when running a calculation job. The output consists of the detailed job info (if implemented by the scheduler plugin) and the output written to the stdout and stderr file descriptors. This information can hold important information about how the job terminated. It can be used to determine common problems, such as out-of-memory issues or out-of-walltime errors. The parse_output can return a corresponding exit code that is defined on the CalcJob class. You can take a look at the SlurmScheduler.parse_output implementation as an example of how it parses the OOM and OOW errors. The scheduler output parsing, if implemented, will be called by the engine before the output Parser is called, if any. If the scheduler parsing returns an exit code, the engine will already set it on the node but the output parser will still be called. This allows the output parser to still try to parse some data from the retrieved files, and if desired, override the exit code of the scheduler with a more specific exit code. For details on this process and the interaction between exit codes of scheduler and output parsers, see this section of the documentation.

For more details on this release, see the change log.

Happy computing!

The AiiDA team

AiiDA and Materials Cloud papers published in Nature’s Scientific Data

👤 🕔 September 10, 2020 Comments Off on AiiDA and Materials Cloud papers published in Nature’s Scientific Data

The new paper on AiiDA (describing all the work happened in the past 4+ years) and the paper describing the Materials Cloud (an Open Science Platform designed to enable the seamless sharing of resources in computational materials science) have been published on the Nature’s journal Scientific Data.

You can read the full press story on the NCCR MARVEL website, and you can access them (open access) here:

AiiDA virtual tutorial report

👤 🕔 July 27, 2020 Comments Off on AiiDA virtual tutorial report

A few weeks ago we organised the first virtual edition of our AiiDA tutorial week. Arranging a tutorial for 13 different time zones was challenging, but it was a great experience and we received a lot of positive feedback on the virtual format by the participants. You can read the full report here:

http://www.aiida.net/report-on-the-2020-aiida-virtual-tutorial/

In case you missed the tutorial, you can find all the presentations and hands-on material on the webpage of the event:

https://aiida-tutorials.readthedocs.io/en/latest/pages/2020_Intro_Week/index.html

Thanks again to the participants for attending! We look forward to organising more virtual events in the future.

AiiDA v1.3.0 released

👤 🕔 July 21, 2020 Comments Off on AiiDA v1.3.0 released

A new AiiDA release v1.3.0 is available! You can find more information at our download page. It can be installed through pip as:

    pip install aiida-core==1.3.0
    reentry scan

This is the third minor version of the v1 series and comes with some important performance improvements and features, but also various bug fixes. In addition, the documentation has received a major overhaul, both in structure as well as appearance.

Engine performance

One of the big improvements of AiiDA v1.0 was the switch to an event-based engine that makes it a lot more responsive and performant. Running processes broadcast messages, such as when their state changes, that others, such as the daemon workers, can respond to. In this release, this mechanism is used to make the engine even more responsive. A work chain that runs subprocesses, will now start listening to their state changes, such that once the last running subprocess messages that it has finished, the work chain can resume to the next step immediately. This event-based messaging makes the work chains very responsive, however, it is possible that now and again a message slips through the cracks, in which case the work chain would be waiting indefinitely. As a backup, we keep a polling mechanism that will check the status of each subprocess every interval to see whether it has already finished. In previous releases, this was the only mechanism and it would poll every second. This would keep the computer running AiiDA unnecessarily busy. With the new broadcasting mechanism, we were able to increase the polling interval from 1 to 60 seconds. You can even customize this if you would like:

    verdi config runner.poll.interval 120

Note that this polling mechanism is really a backup system and the engine will not rely on it in the vast majority of cases. Still, if you don’t mind waiting a bit longer in this very unlikely case, you can always increase the interval a bit more.

For more details on this release, see the change log.

Happy computing!

The AiiDA team

AiiDA virtual tutorial registration now open

👤 🕔 June 4, 2020 Comments Off on AiiDA virtual tutorial registration now open

The AiiDA team are pleased to announce that registration for our annual tutorial week (July 7-10 2020) is now open until June 19th.

In light of the COVID-19 pandemic, this tutorial week will be hosted virtually. Talks will be pre-recorded and made available to participants before the event, and hands-on tutorials will be held via Zoom at two timeslots, to accommodate for participants in different time-zones.

The goal of this 4 day-tutorial is to help students and researchers from the field of computational materials science get started with writing reproducible workflows. Participation is free of charge and will cater for up to 80 participants.

For further information and the tentative schedule, and to register, please see the official event page.

Documentation revamp, and more than 50 registered plugins

👤 🕔 June 3, 2020 Comments Off on Documentation revamp, and more than 50 registered plugins
We are thrilled to announce a comprehensive revamp of the AiiDA documentation.
 
With the ultimate goal to lower the entry barrier for new users and to make it easier for both beginners and experienced AiiDA users to find the information they are looking for, the documentation is now divided into four distinct sections: a brief, learning-oriented tutorial, goal-oriented how-to recipes, understanding-oriented topic guides, and information-oriented reference material (for more details on the philosophy, see our wiki). Your feedback is most welcome!
 
We are also happy to report that the AiiDA plugin registry  has reached the milestone of 50 plugin packages (and 100 calculation plugins) – all thanks to your continued contribution to the AiiDA ecosystem.
 

Newly-engineered Materials Cloud Archive

👤 🕔 May 27, 2020 Comments Off on Newly-engineered Materials Cloud Archive

We would like to announce the launch of a newly engineered Materials Cloud Archive, now powered by the same Invenio framework as the massive Zenodo repository at CERN.

Read more…

2020 Questionnaire results – AiiDA papers & testimonials

👤 🕔 May 9, 2020 Comments Off on 2020 Questionnaire results – AiiDA papers & testimonials

The results of the annual questionnaire on AiiDA-powered research projects are out!

Find them on the new aiida.net/science page where we plan to collect future survey results and keep track of publications using AiiDA.

We’ve also asked AiiDA users what they use AiiDA for and how it benefits their day-to-day research. Find their take on aiida.net/testimonials.

AiiDA v1.2.0 released

👤 🕔 April 15, 2020 Comments Off on AiiDA v1.2.0 released

A new AiiDA release v1.2.0 is available! You can find more information at our download page. It can be installed through pip as:

    pip install aiida-core==1.2.0
    reentry scan

 

N.B.:  the `reentry scan` step is crucial as we have added new entry points.

This is the second minor version of the v1 series and comes with mostly new features.
Especially groups have received a lot of new functionality.

Groups can now be subclassed
The `Group` class can now be subclassed to implement custom functionality, just like for example the `Data` node class. They can be registered through entry points in the new entry point category “aiida.groups”. Please refer to the documentation [1] for more details.

Virtual group hierarchy through `GroupPath`
The group concept in AiiDA so far has been “flat”. That is to say, group can contain nodes, but you a group cannot contain another group. Many users have expressed the wish to be able to treat groups a bit more like folders on a filesystem and add some hierarchy to them. Thanks to a contribution by Chris Sewell, the `GroupPath` utility now provides a virtual hierarchy based on the group labels. Forward slash characters ‘/’ in group labels will be interpreted as sub groups. A very short demonstration:

In [1]: from aiida.tools.groups import GroupPath
   ...: Group(label='project/sub/a')
   ...: Group(label='project/sub/b')

In [2]: path = GroupPath('project/sub') 
   ...: for child in path.children: 
   ...:     group = child.get_group() 
   ...:     print('Group<{}> contains {} nodes'.format(group.label, group.count())) 
   ...:
Group<project/sub/a> contains 0 nodes
Group<project/sub/b> contains 0 nodes

Of course the `GroupPath` class provides much more than that and it is also exposed on the CLI through `verdi group path ls`. Extensive documentation of all functionality will be added to the official documentation soon.

More details and download options can be found through the following links:

Pre-prints of upcoming AiiDA & Materials Cloud papers now available

👤 🕔 March 30, 2020 Comments Off on Pre-prints of upcoming AiiDA & Materials Cloud papers now available

After five years of continued development since the first AiiDA paper it was time to sit down and recap how AiiDA has evolved. You can read a pre-print of the upcoming paper on AiiDA 1.0 at Huber, S.P. et al., arXiv:2003.12476 (2020)

We would like to take this opportunity to acknowledge and thank all those who have contributed to this milestone with code, bug fixes, improvements of the documentation, and useful discussions and suggestions:

Oscar D. Arbeláez-Echeverri, Michael Atambo, Valentin Bersier, Marco Borelli, Jocelyn Boullier, Jens Bröder, Ivano E. Castelli, Keija Cui, Vladimir Dikan, Marco Dorigo, Y.-W. Fang, Espen Flage-Larsen, Marco Gibertini, Daniel Hollas, Eric Hontz, Jianxing Huang, Christoph Koch, Ian Lee, Daniel Marchand, Antimo Marrazzo, Simon Pintarelli, Gianluca Prandini, Philipp Rüßmann, Philippe Schwaller, Ole Schütt, Christopher Sewell, Andreas Stamminger, Atsushi Togo, Daniele Tomerini, Nicola Varini, Jason Yu, Austin Zadoks Bonan Zhu, Mario Zic, as well as all coauthors of the manuscript.

We have also just uploaded a pre-print describing the Materials Cloud platform powered by AiiDA in case you’re interested: Talirz, L. et al., arXiv:2003.12510 (2020)

The AiiDA Team

P.S. If your scientific work has benefited from the use of AiiDA 1.0 or the Materials Cloud, please acknowledge this by citing the pre-prints (until the papers are out).