Conclusions and Future Work
The maintenance burden of modern computing systems continues to grow with added complexity. Fortunately, tooling exists to drastically reduce that burden for many development and deployment tasks, and implementing such modern practices is well worth the effort for most distributed code projects.
Our efforts to modernize our qhist tool will ensure that future developments are easy to deploy, more robust, and less prone to manual process error. These improvements are largely self-documenting as well, so in the event that new maintainers take over the project, the spin-up time should be shorter.
There are, of course, many avenues for future work. With respect to qhist specifically, we would like to pursue the following directions, organized by time horizon:
Short Term
Add more test coverage to the pytest suite
Add more comments and docstrings in the code, where necessary
Prototype extensions to the
PbsRecordclass, either via child classes or config-file defined custom fieldsDeploy the new
qhistversion to our users
Medium Term
Support other distribution platforms (e.g., Conda, Spack)
Implement a client-server mode, to resolve data locality issue
Possible Long Term Directions
Support user-defined output fields derived from standard fields
Support more statistical summaries (currently the user can display an average of numerical fields across selected jobs)
Reintroduce some sorting capability without exploding memory requirements
Finally, we intend to apply this same modernization process to our other custom utilities like qstat-cache and pbsprio.