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"]