Plugin_papi_sampler
- Date:
30 Sep 2019
NAME
Plugin_papi_sampler - man page for the LDMSD papi_sampler plugin
SYNOPSIS
Within ldmsd_controller or a configuration file: config name=papi_sampler producer=PRODUCER instance=INSTANCE [ component_id=COMP_ID ] [ stream=STREAM ] [ job_expiry=EXPIRY_SEC ]
DESCRIPTION
papi_sampler monitors PAPI events of processes of Slurm jobs.
The job script must define SUBSCRIBER_DATA environment variable as a JSON object that has at least “papi_sampler” attribute as follows:
SUBSCRIBER_DATA='{"papi_sampler":{"file":"/PATH/TO/PAPI.JSON"}}'
where the “file” attribute inside “papi_sampler” points to a JSON-formatted text file containing user-defined schema name and PAPI events of interest, e.g.
{ "schema": "my_papi", "events": [ "PAPI_TOT_INS", "PAPI_L1_DCM" ] }
papi_sampler relies on slurm_notfifier SPANK plugin to notify it about the starting/stopping of jobs on the node over ldmsd_stream. Please consult Plugin_slurm_notifier(7) for more information on how to deploy and configure it. The value of SUBSCRIBER_DATA from the job script is carried over to papi_sampler when the job started, and an LDMS set will be created according to the PAPI JSON file pointed by the SUBSCRIBER_DATA. In the case of multi-tenant (multiple jobs running on a node), each job has its own set. The set is deleted after job_expiry period after the job exited.
CONFIG OPTIONS
- name=papi_sampler
This MUST be papi_sampler (the name of the plugin).
- producer=PRODUCER
The name of the data producer (e.g. hostname).
- instance=INSTANCE
This is mandatory due to the fact that papi_sampler extends sampler_base and this option is required by sampler_base config. However, the value is ignored and can be anything. The actual name of the papi_sampler instance is PRODUCER/SCHEMA/JOB_ID.
- component_id=COMPONENT_ID
An integer identifying the component (default: 0).
- stream=STREAM
The name of the stream that slurm_notifier SPANK plugin uses to notify the job events. This attribute is optional with the default being slurm.
- job_expiry=EXPIRY_SEC
The number of seconds to retain the set after the job has exited. The default value is 60.
BUGS
No known bugs.
EXAMPLES
Plugin configuration example:
load name=papi_sampler config name=papi_sampler producer=node0 instance=NA component_id=2 job_expiry=10 start name=papi_sampler interval=1000000 offset=0
Job script example:
#!/bin/bash export SUBSCRIBER_DATA='{"papi_sampler":{"file":"/tmp/papi.json"}}' srun bash -c 'for X in {1..60}; do echo $X; sleep 1; done'
PAPI JSON example:
{ "schema": "my_papi", "events": [ "PAPI_TOT_INS", "PAPI_L1_DCM" ] }
SEE ALSO
Plugin_slurm_notifier(7), Plugin_syspapi_sampler(7), ldmsd(8), ldms_quickstart(7), ldmsd_controller(8), ldms_sampler_base(7).