Skip to main content

Policy API

Selecting a policy

Pass a DMRSuggestion value to dmr_check:

#include "dmr.h"

DMR_AUTO(dmr_check(ROUND_POLICY), save(), (void)NULL, cleanup());

See DMRSuggestion for all available values.

Policy bounds (collective)

DMRStatus dmr_set_policy_min_nodes(int nodes);
DMRStatus dmr_set_policy_max_nodes(int nodes);
DMRStatus dmr_set_policy_stride(int multiplier);
DMRStatus dmr_set_policy_pref_nodes(int nodes);
DMRStatus dmr_set_reconf_step_inhibitor(int steps);

Expand/shrink sizing (rank 0 only)

Values apply to the next reconfiguration only and reset afterwards.

DMRStatus dmr_set_nodes_next_expand(int nodes);
DMRStatus dmr_set_procs_next_expand(int procs);
DMRStatus dmr_set_ppn_next_expand(int ppn);
DMRStatus dmr_set_nodes_next_shrink(int nodes);
DMRStatus dmr_set_procs_next_shrink(int procs);
DMRStatus dmr_set_jobs_next_shrink(int jobs);

Expansion control (collective)

DMRStatus dmr_cancel_expansion(void);

State queries

int dmr_get_current_node_count(void);
int dmr_get_reconfig_count(void);
int dmr_get_active_expansions(void);
int dmr_pending_expansion(void);
int dmr_get_nodes_next_expand(void);
int dmr_get_procs_next_expand(void);
int dmr_get_nodes_next_shrink(void);
int dmr_get_procs_next_shrink(void);

For usage patterns see Policies Overview and DMR Policies.