Open chrisjsewell opened 1 year ago
Patch coverage: 100.00
% and no project coverage change.
Comparison is base (
49a7117
) 90.82% compared to head (0b30f35
) 90.82%.:exclamation: Current head 0b30f35 differs from pull request most recent head ff1b699. Consider uploading reports for the commit ff1b699 to get more accurate results
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.
Thanks @chrisjsewell . If we can test this in an integrated way with aiida-core
to show that it will speed up the daemon throughput when under heavy io load, this would be great. One open question is that this does break the interface, so I guess technically we should release this with 0.22
, but that is already out since a while, but is not being used yet in aiida-core
. There has been an open PR for it for a long time (https://github.com/aiidateam/aiida-core/pull/5732) but there is a small problem with the tests that I haven't been able to fix. Running normally seems ok, but have not dared merge it yet. We probably need to set aside some time with the team to test it thoroughly so we can merge it.
Then again, given that 0.22 has already been released, if we are going to bother with proper semver, I guess we should really not merge it in there either and release it with 0.23 instead 🤔
Yeh so I rebased it onto v0.21, just so I could get https://github.com/aiidateam/aiida-core/pull/6079 to work (without PR5732)
Here I mention that I haven't actually implemented any (new) asyncio behaviour for the local/ssh transports, as this may take some more thinking, for a "production ready" to ensure it doesn't create any new problems (e.g. limiting how many file transfers can be running at any one time)
I'm sure for ssh (or Firecrest) it should not be too difficult to show a toy example of a speed up. Obviously it is very dépendant on the type of calculations you are running though, I guess most suited if you are uploading/downloading many 1000s of files and/or very large files (and there is also different async strategies for both)
For sure getting PR5732 through would be nice 👍
As discussed with @giovannipizzi, to allow for introducing
async
methods to the AiiDATransport
classes (particularly for uploading and downloading files)The downstream implementation and explanation in aiida-core is here: https://github.com/aiidateam/aiida-core/pull/6079
(Also makes me think, can you also allow for optional
async
Workflow steps this way)