You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Expect slurm version 21.08
* Search slurm version in slurm_version.h
Starting from Slurm >= 21.08, slurm version is declared in this
dedicated header file.
* Port templates to Slurm 21.08
These templates have been generated using autopxd2, installed with:
$ pip install autopxd2
Then, *.pxd files have been generated using these commands:
$ cd /usr/include
$ autopxd --include-dir . slurm/slurm_errno.h > \
~/pyslurm/jinja2/slurm_errno.h.pxd
$ autopxd --include-dir . slurm/slurm.h > \
~/pyslurm/jinja2/slurm.h.pxd
$ autopxd --include-dir . slurm/slurmdb.h > \
~/pyslurm/jinja2/slurmdb.h.pxd
Then, jinja2/slurm.h.pxd and jinja2/slurmdb.h.pxd have been manually
modified to:
- Remove libc.stdint import
- Remove duplicated slurm_errno symbols
- Include defines from dedicated subdir
Additionally:
- in jinja2/slurm.h.pxd:
- symbols SLURM_ERROR, SLURM_SUCCESS and SLURM_VERSION have been
restored,
- slurm_addr_t control_addr and pthread_mutex_t lock are commented
out, just like before, to avoid compilation error with these types
(they are not used by pyslurm).
- in jinja2/slurmdb.h.pxd, all symbols duplicated in
jinja2/slurm.h.pxd have been removed.
This finally produces this commit.
* Transpose e79981c in template
* Update slurmdb CLUSTER_FLAGS defs for 21.08
* Update slurm CPU_FREQ defs for 21.08
* Update NODE_STATE defs for slurm 21.08
* Update DEBUG_FLAG defs for slurm 21.08
* Update READY_* defs for slurm 21.08
* Generate pyslurm/slurm.pxd based on template
To generate this files, I used j2cli:
$ pip install j2cli
$ j2 jinja2/slurm.j2 > pyslurm/slurm.pxd
* Update python structures for slurm 21.08
There are some new parameters, some have vanished, some have been
renamed.
* Update *.pxi following latest defs changes
* Add new sibling arg to slurm_kill_job2()
Slurm 21.08 slurm_kill_job2() now expects a fourth char* sibling
argument.
* Bump __version__
* Typo fix in slurmdb job dict key
* Update slurm version in README
* Update NODE_STATE in examples
* Use docker image tag 21.08.0 for tests
* Update test_slurm_api_version expected value
* Use NULL slurmdb_connection_get persist_conn_flags
Use hard-coded NULL slurm.slurmdb_connection_get() persist_conn_flags
consistently. Persistent connections are not used in PySlurm. The
variable was declared to NULL and not used elsewhere, the pointer was
not preallocated in class slurmdb_jobs.
I propose NULL to be used consistently in both cases.
Co-authored-by: Nicholas Carriero <[email protected]>
* Initialize and dealloc slurmdb_clusters db_conn
Class slurmdb_clusters db_conn attribute is declared and used in get()
but it was not initialized with a proper connection. Also close and
free the allocation in __dealloc__().
Co-authored-by: Nicholas Carriero <[email protected]>
* Add missing slurm_init() and slurm_fini()
Starting from Slurm 20.11, slurm_init() must be called prior to any
other Slurm library API calls. For the moment, its load Slurm
configuration structure. For reference:
SchedMD/slurm@e35a6e3
On the other side, slurm_fini() cleanup the configuration data
structures in memory.
Co-authored-by: Nicholas Carriero <[email protected]>
* Call slurm_init() at pyslurm module load
This way, PySlurm consumers do not have to do it explicitely.
* Bump to docker-centos7-slurm:21.08.6
* fix: update tests to use pyenv
Co-authored-by: Nicholas Carriero <[email protected]>
Co-authored-by: Giovanni Torres <[email protected]>
0 commit comments