Hermes  0.9.5-beta
Hierarchical Distributed I/O Buffering System
hermes::Config Struct Reference

#include <hermes_types.h>

Collaboration diagram for hermes::Config:

Public Attributes

size_t capacities [kMaxDevices]
 
int block_sizes [kMaxDevices]
 
int num_slabs [kMaxDevices]
 
int slab_unit_sizes [kMaxDevices][kMaxBufferPoolSlabs]
 
f32 desired_slab_percentages [kMaxDevices][kMaxBufferPoolSlabs]
 
f32 bandwidths [kMaxDevices]
 
f32 latencies [kMaxDevices]
 
f32 arena_percentages [kArenaType_Count]
 
int num_devices
 
int num_targets
 
u32 max_buckets_per_node
 
u32 max_vbuckets_per_node
 
u32 system_view_state_update_interval_ms
 
std::string mount_points [kMaxDevices]
 
std::string swap_mount
 
int num_buffer_organizer_retries
 
int is_shared_device [kMaxDevices]
 
std::string rpc_server_host_file
 
std::string rpc_server_base_name
 
std::vector< std::string > host_numbers
 
std::string rpc_server_suffix
 
std::vector< std::string > host_names
 
std::string rpc_protocol
 
std::string rpc_domain
 
int rpc_port
 
int buffer_organizer_port
 
int rpc_num_threads
 
int bo_num_threads
 
api::PlacementPolicy default_placement_policy
 
bool default_rr_split
 
Thresholds bo_capacity_thresholds [kMaxDevices]
 
char buffer_pool_shmem_name [kMaxBufferPoolShmemNameLength]
 
std::vector< std::string > path_exclusions
 
std::vector< std::string > path_inclusions
 

Detailed Description

System and user configuration that is used to initialize Hermes.

Member Data Documentation

◆ capacities

size_t hermes::Config::capacities[kMaxDevices]

The total capacity of each buffering Device

◆ block_sizes

int hermes::Config::block_sizes[kMaxDevices]

The block sizes of each Device

◆ num_slabs

int hermes::Config::num_slabs[kMaxDevices]

The number of slabs that each Device has

◆ slab_unit_sizes

int hermes::Config::slab_unit_sizes[kMaxDevices][kMaxBufferPoolSlabs]

The unit of each slab, a multiple of the Device's block size

◆ desired_slab_percentages

f32 hermes::Config::desired_slab_percentages[kMaxDevices][kMaxBufferPoolSlabs]

The percentage of space each slab should occupy per Device. The values for each Device should add up to 1.0.

◆ bandwidths

f32 hermes::Config::bandwidths[kMaxDevices]

The bandwidth of each Device

◆ latencies

f32 hermes::Config::latencies[kMaxDevices]

The latency of each Device

◆ arena_percentages

f32 hermes::Config::arena_percentages[kArenaType_Count]

The percentages of the total available Hermes memory allotted for each ArenaType

◆ num_devices

int hermes::Config::num_devices

The number of Devices

◆ num_targets

int hermes::Config::num_targets

The number of Targets

◆ max_buckets_per_node

u32 hermes::Config::max_buckets_per_node

The maximum number of buckets per node

◆ max_vbuckets_per_node

u32 hermes::Config::max_vbuckets_per_node

The maximum number of vbuckets per node

◆ system_view_state_update_interval_ms

u32 hermes::Config::system_view_state_update_interval_ms

The length of a view state epoch

◆ mount_points

std::string hermes::Config::mount_points[kMaxDevices]

The mount point or desired directory for each Device. RAM Device should be the empty string.

◆ swap_mount

std::string hermes::Config::swap_mount

The mount point of the swap target.

◆ num_buffer_organizer_retries

int hermes::Config::num_buffer_organizer_retries

The number of times the BufferOrganizer will attempt to place a swap blob into the hierarchy before giving up.

◆ is_shared_device

int hermes::Config::is_shared_device[kMaxDevices]

If non-zero, the device is shared among all nodes (e.g., burst buffs)

◆ rpc_server_host_file

std::string hermes::Config::rpc_server_host_file

The name of a file that contains host names, 1 per line

◆ rpc_server_base_name

std::string hermes::Config::rpc_server_base_name

The hostname of the RPC server, minus any numbers that Hermes may auto-generate when the rpc_hostNumber_range is specified.

◆ host_numbers

std::vector<std::string> hermes::Config::host_numbers

The list of numbers from all server names. E.g., '{1, 3}' if your servers are named ares-comp-1 and ares-comp-3

◆ rpc_server_suffix

std::string hermes::Config::rpc_server_suffix

The RPC server name suffix. This is appended to the base name plus host number.

◆ host_names

std::vector<std::string> hermes::Config::host_names

The parsed hostnames from the hermes conf

◆ rpc_protocol

std::string hermes::Config::rpc_protocol

The RPC protocol to be used.

◆ rpc_domain

std::string hermes::Config::rpc_domain

The RPC domain name for verbs transport.

◆ rpc_port

int hermes::Config::rpc_port

The RPC port number.

◆ buffer_organizer_port

int hermes::Config::buffer_organizer_port

The RPC port number for the buffer organizer.

◆ rpc_num_threads

int hermes::Config::rpc_num_threads

The number of handler threads per RPC server.

◆ bo_num_threads

int hermes::Config::bo_num_threads

The number of buffer organizer threads.

◆ default_placement_policy

api::PlacementPolicy hermes::Config::default_placement_policy

The default blob placement policy.

◆ default_rr_split

bool hermes::Config::default_rr_split

Whether blob splitting is enabled for Round-Robin blob placement.

◆ bo_capacity_thresholds

Thresholds hermes::Config::bo_capacity_thresholds[kMaxDevices]

The min and max capacity threshold in MiB for each device at which the BufferOrganizer will trigger.

◆ buffer_pool_shmem_name

char hermes::Config::buffer_pool_shmem_name[kMaxBufferPoolShmemNameLength]

A base name for the BufferPool shared memory segement. Hermes appends the value of the USER environment variable to this string.

◆ path_exclusions

std::vector<std::string> hermes::Config::path_exclusions

Paths prefixed with the following directories are not tracked in Hermes Exclusion list used by darshan at darshan/darshan-runtime/lib/darshan-core.c

◆ path_inclusions

std::vector<std::string> hermes::Config::path_inclusions

Paths prefixed with the following directories are tracked by Hermes even if they share a root with a path listed in path_exclusions


The documentation for this struct was generated from the following file: