Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Usability: Make computers and codes entities more flexible #12

Open
ramirezfranciscof opened this issue Mar 1, 2023 · 6 comments
Open
Labels
roadmap/proposed A roadmap item that has been proposed but not yet processed

Comments

@ramirezfranciscof
Copy link
Member

Motivation

When computers and codes were originally designed, a certain level of rigidity on their properties was established in order to try to impose a stricter level of control over the preservation of the provenance. However, the frequent changes an updates that computer clusters perform on their systems forces users to be also updating the ways in which they access those resources. Part of this required versatility was taken into account by allowing some parameters of computer access to be set in the configuration of the computer, rather than in its attributes during setup. However, many users find that this is not enough and express frustration at the limitations that these entities still have.

Some examples include:

  • After updating software in clusters, some software change location and thus the respective code needs to be updated or changed to a new one. Creating a new code is the natural solution, but it tends to then over-complicate querying later.

  • One may want to set up a computer to be able to be used with different schedulers (specially considering the inclusion of meta-schedulers such as aiida-hyperqueue), but by doing so the remote folders created by one are technically in a different computer and thus copying of files between those is not allowed.

Desired Outcome

Rethink how immutability works in the computer and code nodes, what restrictions can be relaxed, which ones we want to keep to ensure a cleaner provenance, and what other options can we offer users to facilitate dealing with these immutability problems in the cases that need to remain.

Impact

This will potentially improve usability for all users of AiiDA.

Complexity

Since this is not a bug or missing feature, but a direct consequence of how we enforce the "respect" for the provenance and this clashing or resulting inconvenience in practical usage, the biggest issue here is to rethink a more general principle of AiiDA. Since this is coming from unforeseen practical inconvenience, it is worth it to first try to do a thorough compilation of user frustrations and also some thinking into other potential problems.

Progress

The first task should be to do a comprehensive analysis of the situation and gather any remaining use case that may be relevant to consider.

@ramirezfranciscof ramirezfranciscof added the roadmap/proposed A roadmap item that has been proposed but not yet processed label Mar 1, 2023
@ramirezfranciscof
Copy link
Member Author

  • After updating software in clusters, some software change location and thus the respective code needs to be updated or changed to a new one. Creating a new code is the natural solution, but it tends to then over-complicate querying later.

@mbercx I know you have been particularly frustrated by this, do you want to add anything to my description or even subdivide into other "use cases" (or more "problematic situations") that we may want to consider separately?

@ltalirz
Copy link
Member

ltalirz commented Apr 2, 2023

Here is one possible approach to solve this problem (copy-on-edit): aiidateam/aiida-core#4980 (comment)

@mbercx
Copy link
Member

mbercx commented Nov 8, 2023

Quick note on the following use case: changing the workdir of a computer:

https://aiida.discourse.group/t/change-the-work-directory-of-a-computer/141/2

Apparently this is already possible via the Python API, but there may be an issue with the current implementation.

@sphuber
Copy link

sphuber commented Nov 8, 2023

Quick note on the following use case: changing the workdir of a computer:

I think the fact it is currently possible is actually really a bug and should be fixed. Doesn't make sense that this property is mutable and others are not.

@mbercx
Copy link
Member

mbercx commented Nov 8, 2023

I think the fact it is currently possible is actually really a bug and should be fixed. Doesn't make sense that this property is mutable and others are not.

Ah, I see. ^^ Still, it's a good example use case of this road map item. Having to reconfigure all your codes because you want to change where the calculations are run is a bit tedious.

@mbercx
Copy link
Member

mbercx commented May 9, 2024

Another use case in line with this road map item: Make the computer scheduler configurable + allow this to be changed for any CalcJob via the metadata.options, see this discourse topic:

https://aiida.discourse.group/t/how-to-change-the-scheduler-of-a-computer-for-one-job/378

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
roadmap/proposed A roadmap item that has been proposed but not yet processed
Projects
None yet
Development

No branches or pull requests

4 participants