aiidateam / aiida-hyperqueue

AiiDA plugin for the HyperQueue metascheduler.
http://aiida-hyperqueue.readthedocs.io/
MIT License
5 stars 9 forks source link

Refactoring, bug fixes and adding tests #18

Closed unkcpz closed 4 months ago

unkcpz commented 6 months ago

This PR is open since I use the branch to test the demo server lightweight scheduler integration. The PR bundles bunch of things include:

The major change I made in terms of resource setting is I didn't use num_mpiprocs and rename num_cores -> num_cpus, rename memory_Mb -> memory_mb. The reason is that I think this kind of "meta-scheduler" for task farming is not inherit from either ParEnvJobResource as SGE type scheduler nor NodeNumberJobResource. When we use hyperqueue for task farming or for local machine as light-weight scheduler we only set number of cpus and size of memory to allocate for each job. The multi-node support of hyperqueue is under experiments and will not cover our use case from what I can expect. But this is the point worth to discuss, looking forward to see your opinions @giovannipizzi @mbercx

Issues:

Must have features:

unkcpz commented 4 months ago

I want to merge the PR first so I can keep on working on support multi-node feature needed by Timo of on using this in demo server deployment. It will not affect current user if package is installed from pypi. We can decide when to release a new one after check if everything is ready. For me, I had it tested and run millions on Eiger and Daint and on demo server. Let me know if you don't agree @mbercx.

Keep it open too long also means need to rework after https://github.com/aiidateam/aiida-core/pull/6043.

mbercx commented 4 months ago

Might want to split up the changes in multiple commits, but I would understand if you don't want to go through the hassle. Also fine to squash and merge and simply have a single commit that describes all the changes.

unkcpz commented 4 months ago

Thanks @mbercx!!

Also fine to squash and merge and simply have a single commit that describes all the changes.

I'll rebase to less commits and reword a bit the commit message and do a rebase merge. I did one rebase before and try to keep every commit independent as possible.