@@ -7,12 +7,67 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77
88## Unreleased on the [ 23.11.x] ( https://github.com/PySlurm/pyslurm/tree/23.11.x ) branch
99
10+ ### Added
11+
1012- New Classes to interact with Database Associations (WIP)
1113 - ` pyslurm.db.Association `
1214 - ` pyslurm.db.Associations `
1315- New Classes to interact with Database QoS (WIP)
1416 - ` pyslurm.db.QualityOfService `
1517 - ` pyslurm.db.QualitiesOfService `
18+ - Added ` stats ` attribute to both ` pyslurm.Job ` , ` pyslurm.Jobs ` and
19+ ` pyslurm.db.Jobs `
20+ - Added ` pids ` attribute to ` pyslurm.Job ` which contains Process-IDs of the Job
21+ organized by node-name
22+ - Added ` load_stats ` method to ` pyslurm.Job ` and ` pyslurm.Jobs ` classes.
23+ Together with the ` stats ` and ` pids ` attributes mentioned above, it is now
24+ possible to fetch live statistics (like sstat)
25+ - Switch to link with ` libslurmfull.so ` instead of ` libslurm.so ` <br >
26+ This change really has no impact from a user perspective. Everything will
27+ keep working the same, except that Slurms more internal library
28+ ` libslurmfull.so ` is linked with (which is located alongside the plugins
29+ inside the ` slurm ` directory, which itself is next to ` libslurm.so ` )<br >
30+ Why the change? Because it will likely make development easier. It allows
31+ access to more functions that might be needed in some places, without
32+ completely having to implement them on our own. Implementing the
33+ live-statistics feature, so basically ` sstat ` , is for example not possible
34+ with ` libslurm.so ` <br >
35+ You can keep providing the directory where ` libslurm.so ` resided as
36+ ` $SLURM_LIB_DIR ` to pyslurm, and it will automatically find ` libslurmfull.so `
37+ from there.
38+
39+ ### Fixed
40+
41+ - Fixed ` total_cpu_time ` , ` system_cpu_time ` and ` user_cpu_time ` not getting
42+ calculated correctly for Job statistics
43+ - Actually make sure that ` avg_cpu_time ` , ` min_cpu_time ` , ` total_cpu_time ` ,
44+ ` system_cpu_time ` and ` user_cpu_time ` are integers, not float.
45+
46+ ### Changed
47+
48+ - Breaking: rename ` cpu_time ` to ` elapsed_cpu_time ` in ` pyslurm.Job ` and
49+ ` pyslurm.Jobs ` classes
50+ - Breaking: removed the following attributes from ` pyslurm.db.Jobs ` :<br >
51+ * ` consumed_energy `
52+ * ` disk_read `
53+ * ` disk_write `
54+ * ` page_faults `
55+ * ` resident_memory `
56+ * ` virtual_memory `
57+ * ` elapsed_cpu_time `
58+ * ` total_cpu_time `
59+ * ` user_cpu_time `
60+ * ` system_cpu_time `
61+ - The removed attributes above are now all available within the ` stats `
62+ attribute, which is of type ` pyslurm.db.JobStatistics `
63+ - Renamed the original class of ` pyslurm.db.JobStatistics ` to
64+ ` pyslurm.db.JobStepStatistics ` .<br >
65+ All this class contains is really mostly applicable only to Steps, but
66+ doesn't fully apply at the Job Level.<br >
67+ Therefore, the new ` pyslurm.db.JobStatistics ` class only contains all
68+ statistics that make sense at the Job-level.
69+ - return ` 1 ` as a value for the ` cpus ` attribute in ` pyslurm.db.Job ` when there
70+ is no value set from Slurm's side.
1671
1772## [ 23.11.0] ( https://github.com/PySlurm/pyslurm/releases/tag/v23.11.0 ) - 2024-01-27
1873
0 commit comments