Skip to content

GSoC 2020 Projects

Leopold Talirz edited this page Feb 3, 2020 · 17 revisions

Getting started with AiiDA

AiiDA is a workflow manager for computational science, with roots in computational materials science. It helps researchers manage large numbers of simulations (1k, 10k, 100k, ...) and complex workflows involving multiple executables. At the same time, it records the provenance of the entire simulation pipeline with the aim to make it fully reproducible.

AiiDA is used in research projects at universities, research institutes and companies (examples of recent works using AiiDA are [1] [2] [3]).

To be considered as a GSoC student, we ask you to make a small pull request to aiida-core - could be a simple bug fix, improving the documentation, etc. See GitHub issues by-label

Why work on AiiDA?

  • Help accelerate the transition to open (computational) science
  • Contribute to fixing the reproducibility crisis. Computational science is a good place to start.
  • Work with people who are passionate about both science and coding

A background in materials science is not required, but a basic interest in materials science topics will make things easier for you.

Project 1 - Title

Level: intermediate

Description (2-5 sentences)

Expected outcomes

Skills

Project 2 - Unified ORM API for bulk-object creation

Level: intermediate

Description: AiiDA has her own front-end Object Relational Mapper (ORM) to map python objects to the corresponding database records and wraps around two other ORM libraries, Django and SqlAlchemy. This ORM allows users to create new objects, such as nodes in the provenance graph through the python API. The export/import functionality in AiiDA, which allows to export (parts) of a provenance graph and import it in another database, currently facilitates the sharing of data between users. The import functionality requires the creation of a lot of new objects in the database at once.

Expected outcomes

This project will

  1. make the import implementation backend ORM independent by passing through AiiDA's front-end ORM
  2. implement bulk insertion functionality in that ORM to make the importing of data as efficient as possible

Skills

This project will require the participant to work with the ORM of AiiDA so an understanding of Object Relational Mapper's is important. AiiDA's ORM is implemented with two different libraries, Django and SqlAlchemy, so previous experience with those is desirable but not required. Finally, AiiDA uses PostgreSQL as the Relational Database Management System (RDBMS), therefore knowledge and previous experience with PostgreSQL and/or SQL in general is important

Project N - Your Idea Here

If you're already familiar with AiiDA and have your own idea on how to improve it, we're happy to consider it. In this case, please think about the steps of how you would go about attacking the problem so that we can draw up a rough work plan.

Mentorship

Available co-mentors are

We have an active Slack workspace & biweekly developer meetings.

Clone this wiki locally