General-purpose tool for running multiple experiments in parallel using tmux sessions with timing and logging
# 🔧 Generate example commands
python generate_commands.py --count-example --output count_commands.txt
# 🏃 Run experiments with timing
python run_experiments.py --commands-file count_commands.txt --session count_demo --attach --show-cmd --stay-open
# 📊 Monitor sessions
python monitor_experiments.py --list- 🔄 Parallel Execution: Multiple commands in separate tmux windows
- ⏱️ Timing Info: Start time, end time, elapsed time for each window
- 📝 Auto Logging:
stdbuf -oL -eL teefor real-time logging - 🎛️ Session Management: Create, monitor, kill tmux sessions
- 🎯 Command Generation: Generate parameter sweeps automatically
- 📈 Real-time Monitoring: Live status updates
| Tool | Description | Icon |
|---|---|---|
run_experiments.py |
🚀 Main experiment runner | ⚡ |
generate_commands.py |
🔧 Command generator | 🎯 |
monitor_experiments.py |
📊 Session monitor | 👁️ |
tmux_count.py |
🧮 Example script (count/random/fibonacci) | 🔢 |
stdbuf -oL -eL python -u script.py --param value 2>&1 | stdbuf -oL -eL tee logs/output.logpython generate_commands.py --template "python script.py --param {param}" --params "param=1,2,3" --output commands.txtpython run_experiments.py --commands-file commands.txt --session my_exp --attach --show-cmd --stay-openpython monitor_experiments.py --monitor my_exp# Sequential counting
python tmux_count.py --mode count --start 1 --end 10 --step 1
# Random numbers
python tmux_count.py --mode random --start 1 --end 100 --count 5
# Fibonacci sequence
python tmux_count.py --mode fibonacci --count 10- 🐍 Python 3.6+
- 🖥️ tmux
- 🐚 bash
# Clone repository
git clone <your-repo-url>
cd fl-experiment-runner
# Make scripts executable
chmod +x *.py
# Install tmux (if needed)
# Ubuntu/Debian: sudo apt-get install tmux
# macOS: brew install tmux==========================================
EXPERIMENT STARTED
Start Time: Mon Jan 15 14:30:25 +07 2024
Command: stdbuf -oL -eL python -u tmux_count.py --mode count --start 1 --end 5
==========================================
[experiment output...]
==========================================
EXPERIMENT COMPLETED
End Time: Mon Jan 15 14:30:28 +07 2024
Elapsed Time: 00:00:03 (3s)
==========================================
- 🍴 Fork the repository
- 🌿 Create your feature branch (
git checkout -b feature/AmazingFeature) - 💾 Commit your changes (
git commit -m 'Add some AmazingFeature') - 📤 Push to the branch (
git push origin feature/AmazingFeature) - 🔀 Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with ❤️ for the research community
- Inspired by the need for efficient parallel experiment execution
- Powered by tmux and Python 🐍