Skip to main content

Configuration

This reference guide documents all the configuration parameters available in WisIO. These parameters control the behavior of analyzers, outputs, and cluster configurations.

Using Configuration Parameters

WisIO uses Hydra for configuration management, which provides a flexible way to organize and override parameters. You can specify parameters in several ways:

  1. Command line overrides:

    wisio trace_path=path/to/traces +analyzer=recorder percentile=0.99
  2. Group selection:

    wisio +analyzer=dftracer +cluster=slurm +output=csv
  3. Nested parameters:

    wisio output.max_bottlenecks=5 cluster.n_workers=4

Core Parameters

ParameterTypeDefaultDescription
trace_pathstringRequiredPath to the I/O trace data for analysis
percentilefloatnullPercentile threshold for significant I/O operations
thresholdintnullSeverity threshold value for significant I/O operations
time_granularityfloat1e6Time granularity for analysis (varies by analyzer)
metricslist[str]["iops"]Metrics to analyze (e.g., "iops", "bandwidth")
debugboolfalseEnable debug mode with more verbose output
verboseboolfalseEnable verbose information display
view_typeslist[str]["time_range", "file_name", "proc_name"]Views to analyze for bottlenecks
logical_view_typesboolfalseEnable logical view types for hierarchical analysis
exclude_bottleneckslist[str][]List of bottleneck types to exclude from analysis
exclude_characteristicslist[str][]List of I/O characteristics to exclude from reporting

Analyzer Configuration

WisIO supports multiple analyzers for different trace formats. You can select an analyzer using the +analyzer=<type> parameter.

Common Analyzer Parameters

These parameters are available for all analyzer types:

ParameterTypeDefaultDescription
analyzer.bottleneck_dirstring${hydra:runtime.output_dir}/bottlenecksDirectory for saving bottleneck data
analyzer.checkpointbooltrueEnable checkpointing of analysis state
analyzer.checkpoint_dirstring${hydra:runtime.output_dir}/checkpointsDirectory for saving checkpoints
analyzer.time_approximatebooltrueUse approximate time for analysis
analyzer.time_granularityfloatVaries by analyzerTime granularity specific to the analyzer

Darshan Analyzer (+analyzer=darshan)

For analyzing Darshan DXT trace files.

ParameterTypeDefaultDescription
analyzer.time_granularityfloat1e3Time granularity for Darshan (in nanoseconds)

DFTracer Analyzer (+analyzer=dftracer)

For analyzing DFTracer trace files.

ParameterTypeDefaultDescription
analyzer.time_granularityfloat1e6Time granularity for DFTracer (in nanoseconds)

Recorder Analyzer (+analyzer=recorder)

For analyzing Recorder trace files.

ParameterTypeDefaultDescription
analyzer.time_granularityfloat1e7Time granularity for Recorder (in nanoseconds)

Output Configuration

Control how analysis results are presented and stored.

Common Output Parameters

These parameters are available for all output types:

ParameterTypeDefaultDescription
output.compactboolfalseUse compact output format
output.group_behaviorboolfalseGroup similar bottlenecks by behavior
output.namestring""Custom name for the output
output.root_onlybooltrueOnly show output on the root process
output.view_nameslist[str][]Specific views to include in output

Console Output (+output=console)

For displaying results directly in the console.

ParameterTypeDefaultDescription
output.max_bottlenecksint3Maximum number of bottlenecks to display
output.show_debugboolfalseShow debug information
output.show_characteristicsbooltrueShow I/O characteristics
output.show_headerbooltrueShow header information

CSV Output (+output=csv)

For saving results to CSV files.

No additional parameters beyond the common ones.

SQLite Output (+output=sqlite)

For storing results in an SQLite database.

ParameterTypeDefaultDescription
output.run_db_pathstring""Path to the SQLite database file

Cluster Configuration

WisIO can distribute analysis across multiple nodes or cores using various cluster configurations.

Common Cluster Parameters

These parameters are available for all cluster types:

ParameterTypeDefaultDescription
cluster.local_directorystring/tmp/${hydra:job.name}/${hydra:job.id}Directory for cluster temporary files

Local Cluster (+cluster=local)

For running analysis on a local machine.

ParameterTypeDefaultDescription
cluster.hoststringnullHost address for the local cluster
cluster.memory_limitintnullMemory limit per worker
cluster.n_workersintnullNumber of worker processes
cluster.processesbooltrueUse processes instead of threads
cluster.silence_logsint50 (CRITICAL)Log level for silencing cluster logs

Job Queue Cluster Parameters

These parameters are common to LSF, PBS, and SLURM clusters:

ParameterTypeDefaultDescription
cluster.coresint16Number of cores per job
cluster.death_timeoutint60Timeout for worker death detection
cluster.job_directives_skiplist[str][]Job directives to skip
cluster.job_extra_directiveslist[str][]Extra job directives
cluster.log_directorystring""Directory for job logs
cluster.memorystringnullMemory per job
cluster.processesint1Number of processes per job
cluster.scheduler_options.dashboard_addressstringnullDashboard address
cluster.scheduler_options.hoststringCurrent hostnameHost for the scheduler

LSF Cluster (+cluster=lsf)

For running on LSF-based HPC systems.

ParameterTypeDefaultDescription
cluster.use_stdinbooltrueUse stdin for job submission

Advanced Usage Examples

Analyzing with Different Time Granularities

# Use a fine-grained time granularity for detailed analysis
wisio +analyzer=darshan time_granularity=1e2 trace_path=path/to/traces

# Use a coarse-grained granularity for faster analysis of large datasets
wisio +analyzer=recorder time_granularity=1e8 trace_path=path/to/traces

Filtering Bottlenecks

# Exclude specific bottleneck types
wisio trace_path=path/to/traces exclude_bottlenecks=["small_io", "metadata_heavy"]

# Focus only on certain views
wisio trace_path=path/to/traces view_types=["file_name", "proc_name"]

Using Multiple Output Formats

# Generate both console output and save to CSV
wisio trace_path=path/to/traces +output=console,csv

Cluster-Specific Configuration

# Run on a SLURM cluster with specific resources
wisio trace_path=path/to/traces +cluster=slurm \
cluster.cores=32 \
cluster.memory=64GB \
cluster.job_extra_directives=["--partition=compute", "--qos=normal"]