geopmendpoint(1) – command line tool for dynamic policy control

Synopsis

geopmendpoint [-c | -d | -a | -p POLICY0, POLICY1, ...] ENDPOINT

Description

Command line interface to create, query, read, write, and destroy a GEOPM runtime endpoint.

A GEOPM endpoint is a shared memory attach point to connect a managing process (e.g. a resource manager or job scheduler) to a GEOPM controller. The endpoint supports writing of agent-specific policies and the reading of agent-specific signals. The agent signals and controls are described on the geopmagent(1) man page. The ENDPOINT positional argument specifies the endpoint name and is typically the name associated with the job or the job identifier. This string is arbitrary, but cannot contain the '/' or ',' characters. This name distinguishes all endpoints running on any given compute node (coherent shared memory).

If the geopmendpoint executable is run with no arguments then a list of all policy endpoints available on the system is printed to standard output.

Options

-c

Create an endpoint for an attaching agent.

-d

Destroy the endpoint and send a signal to any attached agent that no more policies will be written or samples read from the endpoint.

-a

Check if an agent has attached to the endpoint, and print the name of the agent if it has. The return value will be non-zero if an agent has not yet attached to the endpoint.

-s

Read a sample from the attached agent, if any. The output has one line per signal. On each line is written the signal name and signal value separated by a colon. The last line of the output represents the SAMPLE_AGE signal which is the elapsed time since the last update to the endpoint by the GEOPM runtime. The signal names provided by an agent can be determined with the geopmagent(1) command line tool. The return value will be non-zero if an agent has not yet attached to the endpoint.

-p POLICY

Set policies for the attached agent. The values to be set for each policy are given in a comma-separated list. The order of these values corresponds to the ordering of the policy names by the geopmagent(1) executable when the attached agent is specified. The return value will be non-zero if an agent has not yet attached to the endpoint.

Examples

List all endpoints on a system when none are open:

$ geopmendpoint

Create two endpoints called "job-123" and "job-321" for agents to attach:

$ geopmendpoint -c job-123
$ geopmendpoint
job-123
$ geopmendpoint -c job-321
$ geopmendpoint
job-123
job-321

Check if agent has attached to endpoint "job-123", but no agent has yet attached:

$ geopmendpoint -a job-123
Error: <geopm> No agent has attached to endpoint.

Check if agent has attached to endpoint "job-321" after a power_balancer agent has attached:

$ geopmendpoint -a job-321
Agent: power_balancer
Nodes: compute-node-4,compute-node-5,compute-node-7,compute-node-8

Set policy at endpoint for power_balancer agent with 250 Watt per node power budget:

$ geopmendpoint -p 250 job-321

Sample from balancing agent with endpoint "job-321":

$ geopmendpoint -s job-321
POWER: 247.2
IS_CONVERGED: 1
EPOCH_RUNTIME: 90.5
SAMPLE_AGE: 1.234E-4

Destroy endpoints "job-123" and "job-321":

$ geopmendpoint -d job-321
$ geopmendpoint
job-123
$ geopmendpoint -d job-123
$ geopmendpoint

See Also

geopm(7), geopm_agent_monitor(7), geopm_agent_power_balancer(7), geopm_agent_power_governor(7), geopm_agent(3), geopm_endpoint(3), geopmagent(1)