@@ -7,12 +7,67 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
8
8
## Unreleased on the [ 23.11.x] ( https://github.com/PySlurm/pyslurm/tree/23.11.x ) branch
9
9
10
+ ### Added
11
+
10
12
- New Classes to interact with Database Associations (WIP)
11
13
- ` pyslurm.db.Association `
12
14
- ` pyslurm.db.Associations `
13
15
- New Classes to interact with Database QoS (WIP)
14
16
- ` pyslurm.db.QualityOfService `
15
17
- ` 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.
16
71
17
72
## [ 23.11.0] ( https://github.com/PySlurm/pyslurm/releases/tag/v23.11.0 ) - 2024-01-27
18
73
0 commit comments