Advanced Filtering Guide
S9S provides powerful filtering capabilities to help you find exactly what you need across thousands of jobs, nodes, and resources. This guide covers all filtering features and syntax.
🔍 Basic Filtering
Quick Filter
Press
/
# Simple text search /analysis # Find items containing "analysis" /GPU # Case-insensitive search for "GPU" /node001 # Find specific node
Clear Filters
- - Clear current filter and exit search mode
Esc
- - Clear all active filters
:clear
- - Toggle last filter on/off
Ctrl+/
🎯 Filter Syntax
Field-Specific Filters
Target specific fields with the
field:value
# Job filters /user:alice # Jobs by user alice /name:simulation # Jobs with "simulation" in name /jobid:12345 # Specific job ID /state:RUNNING # Jobs in RUNNING state /partition:gpu # Jobs in GPU partition # Node filters /node:node001 # Specific node /state:idle # Idle nodes /features:gpu # Nodes with GPU feature /memory:>128GB # Nodes with >128GB RAM
Operators
S9S supports various comparison operators:
Operator | Description | Example |
---|---|---|
| Equals |
|
| Not equals |
|
| Greater than |
|
| Less than |
|
| Greater or equal |
|
| Less or equal |
|
| Regex match |
|
| Wildcard |
|
| Range |
|
📊 Advanced Filtering
Compound Filters
Combine multiple filters with spaces (AND logic):
# Jobs by alice in GPU partition /user:alice partition:gpu # Running jobs with more than 4 nodes /state:RUNNING nodes:>4 # Failed jobs submitted today /state:FAILED submitted:today
OR Logic
Use comma-separated values for OR logic:
# Jobs in RUNNING or PENDING state /state:RUNNING,PENDING # Jobs in gpu or cpu partition /partition:gpu,cpu # Jobs by alice or bob /user:alice,bob
Complex Queries
Combine AND and OR logic:
# Alice or Bob's GPU jobs /user:alice,bob partition:gpu state:RUNNING # High priority pending jobs in specific partitions /state:PENDING priority:>1000 partition:gpu,highmem
🕐 Time-Based Filters
Relative Time
Use human-readable time expressions:
# Submitted time /submitted:<1h # Less than 1 hour ago /submitted:>1d # More than 1 day ago /submitted:today # Submitted today /submitted:yesterday # Submitted yesterday /submitted:thisweek # This week /submitted:lastweek # Last week # Runtime /runtime:>30m # Running more than 30 minutes /runtime:<2h # Running less than 2 hours /runtime:1h-3h # Between 1 and 3 hours
Absolute Time
Use specific dates and times:
# ISO format /submitted:>2023-12-01 /started:<2023-12-25T18:00:00 # Date shortcuts /submitted:2023-12-01..2023-12-31 /ended:yesterday..today
🔢 Numeric Filters
Resource Filters
Filter by resource usage:
# Node count /nodes:4 # Exactly 4 nodes /nodes:>8 # More than 8 nodes /nodes:2..16 # Between 2 and 16 nodes # Memory (supports units) /memory:>32GB # More than 32GB /memory:64GB..128GB # Between 64GB and 128GB /memory:<=1TB # Up to 1TB # CPUs /cpus:>48 # More than 48 CPUs /cpus:24,48,96 # Specific CPU counts # GPUs /gpus:>0 # Has GPUs /gpus:8 # Exactly 8 GPUs
Priority and QoS
# Priority /priority:>1000 # High priority jobs /priority:0..500 # Low to medium priority # QoS /qos:normal # Normal QoS /qos:high,critical # High or critical QoS
🎨 Regular Expressions
Use regex for complex pattern matching:
# Enable regex with ~ operator /name:~"analysis_\d{4}" # analysis_0001, analysis_0002, etc. /user:~"(alice|bob)_.*" # alice_* or bob_* users /output:~"error|warning" # Find errors or warnings /script:~"python.*\.py$" # Python scripts # Case-insensitive regex /name:~"(?i)GPU" # Matches gpu, GPU, Gpu, etc. # Negative lookahead /name:~"^(?!test).*" # Not starting with "test"
🏷️ State Filters
Job States
# Single state /state:RUNNING /state:PENDING /state:COMPLETED /state:FAILED # Multiple states /state:RUNNING,PENDING /state:!COMPLETED # Not completed # State groups (S9S shortcuts) /state:active # RUNNING,PENDING /state:ended # COMPLETED,FAILED,CANCELLED /state:problem # FAILED,TIMEOUT,NODE_FAIL
Node States
# Basic states /state:idle /state:allocated /state:down /state:drain # Compound states /state:idle+drain # Idle and draining /state:allocated+drain # Allocated but draining # State shortcuts /state:available # idle,mixed /state:unusable # down,drain,maint
🔖 Saved Filters
Creating Saved Filters
Save frequently used filters:
# Save current filter :filter save my-jobs "/user:${USER} state:active" # Save with description :filter save gpu-pending "/partition:gpu state:PENDING" --desc "Pending GPU jobs" # Save complex filter :filter save inefficient "/state:RUNNING efficiency:<0.5 runtime:>1h"
Using Saved Filters
# List saved filters :filter list # Load saved filter :filter load my-jobs # Or use shortcut /~my-jobs # Edit saved filter :filter edit gpu-pending # Delete saved filter :filter delete old-filter
Filter Presets
S9S includes built-in filter presets:
Preset | Description | Filter |
---|---|---|
| Active jobs |
|
| My jobs |
|
| Recent jobs |
|
| Failed jobs |
|
| GPU jobs |
|
| Long jobs |
|
| Today's jobs |
|
🔄 Dynamic Filters
Auto-Refresh Filters
Filters that update automatically:
# Jobs submitted in last hour (updates) /submitted:<1h # Currently running jobs /state:RUNNING elapsed:>0 # Recently completed /state:COMPLETED ended:<10m
Context-Aware Filters
Filters that adapt to current view:
# In Jobs view /efficiency:<0.7 # Low efficiency jobs # In Nodes view /load:>0.8 # High load nodes # In Users view /active:true # Users with running jobs
📝 Filter Examples
Common Use Cases
Find Stuck Jobs
/state:PENDING submitted:>1h reason:!Resources
Inefficient GPU Jobs
/partition:gpu state:RUNNING gpu_util:<50%
Failed Jobs Today
/state:FAILED ended:today user:${USER}
High Memory Jobs
/memory:>500GB state:RUNNING,PENDING
Jobs Near Time Limit
/state:RUNNING time_left:<30m
Power User Filters
Complex Resource Query
/nodes:>16 cpus:>512 memory:>1TB partition:large state:PENDING
Multi-User Team Filter
/user:~"^(alice|bob|charlie)" project:ml_research state:!COMPLETED
Performance Analysis
/state:RUNNING runtime:>2h efficiency:<0.5 partition:!debug
⚡ Performance Tips
Efficient Filtering
- Use indexes: Filter by indexed fields first (JobID, User, State)
- Narrow scope: Start with restrictive filters, then broaden
- Save complex filters: Reuse instead of retyping
- Use shortcuts: Learn preset filters for common queries
Filter Optimization
# Good: Indexed field first /state:RUNNING user:alice partition:gpu # Less efficient: Unindexed field first /name:analysis state:RUNNING user:alice
🎯 Filter Shortcuts
Keyboard Shortcuts
Key | Action | Description |
---|---|---|
| Start filter | Enter filter mode |
| Autocomplete | Complete filter fields |
| History | Browse filter history |
| Toggle | Toggle last filter |
| Presets | Show filter presets |
| Clear | Clear current filter |
Command Mode Filters
# Apply filter via command :filter "state:RUNNING nodes:>4" # Chain filters :filter add "user:alice" :filter add "partition:gpu" # Remove specific filter :filter remove "user:alice"
🔧 Troubleshooting Filters
Common Issues
No Results
- Check filter syntax
- Verify field names
- Try broader criteria
- Check for typos
Too Many Results
- Add more specific criteria
- Use compound filters
- Filter by state first
- Add time constraints
Slow Filters
- Avoid regex on large datasets
- Use indexed fields first
- Limit time range
- Consider saved filters
🚀 Next Steps
- Practice filters in Mock Mode
- Set up Saved Filters
- Learn Batch Operations with filters
- Explore Export Options for filtered data