- Having multiple users accessing the same database/repository and therefore natively sharing/reusing calculation results (As far as I know this is probably not yet possible, but I think that it would be nice to have).
- A sort of server/client implementation as setting up AiiDA locally demands a bit of technical knowledge and needs a linux operating system. Especially when working with students I don't think I can expect them to go through this process.
I also saw that the AiiDA rest API is continouosly extended (also towards starting and managing AiiDA processes), would it make sense to set up an interface via this API in the future? What are the use-cases intended for this API?
Dear Holger,
You are right that currently using a multi-user setup for AiiDA is not straightforward.
However, I think it should be possible as the basic infrastructure is there.
In principle it is possible to have multiple clients connect to the same storage, which as you have figured out consists by default of a Postgres database and a file repository on the local file system.
As long as the file system is accessible on all clients, this setup should work just fine.
Each client would create its own AiiDA instance (essentially just the `.aiida` config folder with the `config.json` file) and configure a profile that points to the Postgres database and the file repository.
Each client could for example mount the file system of the file repository through sshfs if the machine where it is mounted can be accessed over SSH.
As you also already mentioned, as of AiiDA v2.1 the storage backend is pluginnable.
I have used this concept to create the `aiida-s3` plugin (https://github.com/sphuber/aiida-s3) which replaces the file repository on the local file system with an object store (AWS S3 and Azure Blob Storage are currently implemented).
Although this makes connecting multiple clients to the same storage more straightforward, one should of course expect a non-negligible performance hit.
Whether this is acceptable depends on your usage and use-case.
I am working on improving the performance of these solutions, but this will be a long-term project.
Concerning the REST API: there are currently two implementations:
The aiida-restapi plugin was created some time ago, but found little traction for the time being.
Recently, I have been updating it to add more control features, such as starting/stopping the daemon, and playing/pausing/killing of processes.
I think the feature set it has now is quite complete.
If you find this useful and think there are features missing, please feel free to open feature requests on the Github repo.
I will most probably be able to dedicate time to implement them as we are also using it now ourselves.
If this project is useful, I am thinking of writing a Python client library to make using the API less verbose (currently one has to type a lot of boilerplate).
Let me know if this would be useful to you and I can keep you in the loop of its design and development.
Hope this was useful and feel free to ask if you have any more questions.
Regards,
Sebastiaan
--
AiiDA is supported by the NCCR MARVEL (http://nccr-marvel.ch/), funded by the Swiss National Science Foundation, and by the European H2020 MaX Centre of Excellence (http://www.max-centre.eu/).
Before posting your first question, please see the posting guidelines at http://www.aiida.net/?page_id=356 .
---
You received this message because you are subscribed to the Google Groups "aiidausers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to aiidausers+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/aiidausers/99e0c4f9-2c08-4f07-aaaf-f8573b7f6797n%40googlegroups.com.