beostat_get_avail_nodes_by_id -- get a list of available nodes for a given identity
#include <sys/beostat.h> int beostat_get_avail_nodes_by_id (int **node_list, uid_t uid, gid_t *gid_list, int gid_size);
- A handle that will have memory allocated and filled with the array of nodes. This memory must be freed by the caller.
- The user identifier number
- A pointer to a list of group identifier numbers
- The number of elements in the previous arguments array
beostat_get_avail_nodes_by_id executes on the master node and
returns a list of nodes that are available to the given user identifier
number who also is a member of the group identifier numbers listed.
Memory allocated by the function for
node_list must be freed by the
int cnt, *node_list, gid_size, i; uid_t uid; gid_t *gid_list; uid = getuid(); gid_size = getgroups (0, gid_list); gid_list = malloc (sizeof (gid_t) * gid_size); getgroups (gid_size, gid_list); cnt = beostat_get_avail_nodes_by_id (&node_list, uid, gid_list, gid_size); printf ("You may run jobs on nodes: "); for (i = 0; i screen>
Returns the number of nodes in
node_list. If an error occurs, it
will return -1.
This function relies on the
Beostat subsystem, which consists of the
proc filesystem on the remote node, the
sendstats daemon on the
remote node, the
recvstats daemon on the master node, and two shared
memory files in the directory
/var/shm. If any part of the system
breaks down, this function could fail.