EOpod is a streamlined command execution tool designed to run and manage operations on Google Cloud Pods efficiently
Project description
EOpod: Enhanced TPU Command Runner
EOpod is a command-line tool designed to simplify and enhance interaction with Google Cloud TPU VMs. It provides real-time output streaming, background process management, and robust error handling.
Features
- Configuration Management: Easily configure EOpod with your Google Cloud project ID, zone, and TPU name.
- Command Execution: Run commands on TPU VMs with advanced features like retries, delays, timeouts, and worker selection.
- Interactive Mode (Experimental): Run commands in an interactive SSH session (use with caution).
- Command History: View a history of executed commands, their status, and truncated output.
- Error Logging: Detailed error logs are maintained for debugging failed commands.
- Rich Output: Utilizes the
richlibrary for visually appealing and informative output in the console.
Installation
pip install eopod
Configuration
Before using EOpod, configure it with your Google Cloud credentials:
eopod configure --project-id YOUR_PROJECT_ID --zone YOUR_ZONE --tpu-name YOUR_TPU_NAME
Usage Examples
Basic Command Execution
Commands are executed with real-time output streaming by default:
# Simple command
eopod run echo "Hello TPU"
# Run Python script
eopod run python train.py --batch-size 32
# Complex commands with pipes and redirections
eopod run "cat data.txt | grep error > errors.log"
# Commands with multiple arguments
eopod run ls -la /path/to/dir
Background Processes
Run long-running tasks in the background:
# Start training in background
eopod run python long_training.py --epochs 1000 --background
# Check background processes
eopod check-background
# Check specific process
eopod check-background 12345
# Kill a background process
eopod kill 12345
# Force kill if necessary
eopod kill 12345 --force
Worker-Specific Commands
Execute commands on specific workers:
# Run on specific worker
eopod run nvidia-smi --worker 0
# Run on all workers (default)
eopod run hostname --worker all
Advanced Options
# Disable output streaming
eopod run python script.py --no-stream
# Set custom retry count
eopod run python train.py --retry 5
# Set custom retry delay
eopod run python train.py --delay 10
# Set custom timeout
eopod run python train.py --timeout 600
Kill and free TPU process
# Kill all TPU processes
eopod kill-tpu
# Force kill all TPU processes
eopod kill-tpu --force
# Kill specific PID(s)
eopod kill-tpu --pid 1234 --pid 5678
# Kill processes on specific worker
eopod kill-tpu --worker 0
Viewing History and Logs
# View command history
eopod history
# View error logs
eopod errors
# View current configuration
eopod show-config
Command Reference
Main Commands
-
run: Execute commands on TPU VMeopod run [OPTIONS] COMMAND [ARGS]...
Options:
--worker TEXT: Specific worker or "all" (default: "all")--retry INTEGER: Number of retries for failed commands (default: 3)--delay INTEGER: Delay between retries in seconds (default: 5)--timeout INTEGER: Command timeout in seconds (default: 300)--no-stream: Disable output streaming--background: Run command in background
-
configure: Set up EOpod configurationeopod configure --project-id ID --zone ZONE --tpu-name NAME
-
status: Check TPU statuseopod status -
check-background: Check background processeseopod check-background [PID]
-
kill: Kill background processeseopod kill PID [--force]
Utility Commands
history: View command execution historyerrors: View error logsshow-config: Display current configuration
File Locations
- Configuration:
~/.eopod/config.ini - Command history:
~/.eopod/history.yaml - Error logs:
~/.eopod/error_log.yaml - Application logs:
~/.eopod/eopod.log
Error Handling
EOpod includes built-in error handling and retry mechanisms:
- Automatic retry for failed commands
- Timeout handling
- Detailed error logging
- Rich error output
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file eopod-0.0.19.tar.gz.
File metadata
- Download URL: eopod-0.0.19.tar.gz
- Upload date:
- Size: 18.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.3 CPython/3.12.3 Linux/6.11.0-26-generic
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4bf6b4f61867d76e4e1831513c8d299728481886f46cebc8ab3f7d98c453a23e
|
|
| MD5 |
9ca2e585e2f412b5a0e00048afd3d341
|
|
| BLAKE2b-256 |
dc8b59e4dd3440bbc2316d2e4beb98b64832ff732d96591d024ed00ee1f44086
|
File details
Details for the file eopod-0.0.19-py3-none-any.whl.
File metadata
- Download URL: eopod-0.0.19-py3-none-any.whl
- Upload date:
- Size: 18.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.3 CPython/3.12.3 Linux/6.11.0-26-generic
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b5889aae951be8b7d467571ae5df1d68a98e352feab7631d71f0f79a7fda1da7
|
|
| MD5 |
9a2ec696668b19842cb320e29e92bb7a
|
|
| BLAKE2b-256 |
bb65e2c35f961f18779f29eb9dbfa119bbfa6a3ae70d304f16efea829819ad07
|