-
Notifications
You must be signed in to change notification settings - Fork 5
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
Naming of the different objects and attributes #1
Comments
Another naming question concerns cpus, threads, processes, tasks, processplacement, ... |
Thoughts and proposals on namings. As we need to go on and soon release a first version, I would like to have some things decided on the naming so that hopefully we don't need to change that afterwards. QBase: this is the base object used to have optional MSONable superclass. By default, qtoolkit is installed without ANY dependency. The QBase name is confusing as the user/developer could think it is the base of a queue/queuing system. QEnum: this is the base enum to allow to have it MSONable or not as above. QueueManager: this is the object representing a given cluster with its scheduler system (e.g. slurm or pbs). I find it not so descriptive for a single "cluster". This object is used to interact remotely with the cluster and its scheduler system, e.g. "what is the status of job number something"). |
About the QueueManager, it could represent something else than a cluster+queue manager, for instance a user could have a personal workstation without a queue manager and want to run there. Also, in the future, maybe some cloud might be envisioned. So, I think The others seem fine to me ( |
From my ignorant position (i.e. far away from the code and the other discussions), the question is whether the |
I think initially it was referring to the queue on a remote cluster, but it could be something else than a cluster. I worry that if it is called There could also be an object that would contain the possible |
I like QCluster and QWorker as they also add up to the "implicit convention" that all the objects start with Q. I would go for one or the other. For an object that would "manage" multiple of these (this does not exist, ... yet at least), it could be named QManager. This way all the objects exposed to the user have this "convention", which makes it kind of "nice". |
I think I'm a minimalist. Personally, I'm not the biggest fan of the "Q" prefix, it seems unnecessary. My suggestions would be:
But I'm not too fussy either way! |
Hi all, Thanks for your comments. In any case, if in the future we find that this is annoying and nobody likes it, we can always change (with backward incompatibility though). I'll go with QWorker (also "in line" with workers in jobflow remote, even if they are not the same, at least currently). |
This is not a pressing issue but objects used should be named "nicely" and not confuse the users (or contributors).
One example is "QBase", which is the base object that should be inherited by all classes so that subclasses can be made MSONable or not depending on whether monty is available or not (note that other optional dependencies could be included there). This "QBase" sounds like it is the base class for queues. Another name would make it more clear, e.g. QObject or QtkObject ?
Another example is the word "Queue" (BaseQueue, SlurmQueue). These should represent the object interacting with a queuing system, not a specific queue (a single "queue" is named a partition in slurm, it is named queue in pbs). Another name could be [BaseQueueManager, SlurmManager], [BaseQueingSystemInterface, SlurmInterface], ...
Other examples are likely to occur.
The text was updated successfully, but these errors were encountered: