DAA Prime CLI
Command-line interface for Prime distributed machine learning operations. Provides easy access to training, coordination, and management functions for the Prime distributed ML framework.
Overview
DAA Prime CLI is the primary interface for interacting with the Prime distributed ML ecosystem. It provides:
- Node Management: Start and manage trainer and coordinator nodes
- Training Operations: Launch training jobs and monitor progress
- System Status: Check system health and performance metrics
- Configuration: Manage node configurations and network settings
- Integration: Seamless integration with all Prime components
Features
- 🖥️ User-Friendly Interface: Intuitive commands for all operations
- 🔧 Comprehensive Management: Full control over distributed ML infrastructure
- 📊 Real-Time Monitoring: Live status updates and progress tracking
- ⚙️ Flexible Configuration: Support for various deployment scenarios
- 🔗 Full Integration: Access to all Prime ecosystem capabilities
Installation
From Crates.io
From Source
Binary Releases
Download pre-built binaries from the releases page.
Quick Start
Check System Status
# View Prime system status and available crates
Output:
Prime system status:
- System: Ready
- Version: 0.2.1
- Framework: Distributed ML with DAA
- Available crates:
* daa-prime-core v0.2.1
* daa-prime-dht v0.2.1
* daa-prime-trainer v0.2.1
* daa-prime-coordinator v0.2.1
Start a Trainer Node
# Start trainer with random ID
# Start trainer with specific ID
Start a Coordinator Node
# Start coordinator with random ID
# Start coordinator with specific ID
Command Reference
Global Options
Commands
prime status
Display system status and component information.
Shows:
- System readiness
- Version information
- Available crate versions
- Framework details
prime trainer
Start a distributed training node.
)
Examples:
# Start with random ID
# Start with specific ID
# Start with custom configuration
Note: The current CLI provides a simplified interface. For full training functionality, use the daa-prime-trainer crate directly in your Rust applications.
prime coordinator
Start a coordination node for distributed training.
)
Examples:
# Start coordinator with random ID
# Start coordinator with specific ID
# Start coordinator cluster node
Note: The current CLI provides a simplified interface. For full coordination functionality, use the daa-prime-coordinator crate directly in your Rust applications.
Configuration
Environment Variables
# Set logging level
# Set custom data directory
# Set network configuration
Configuration Files
Trainer Configuration (trainer.json)
Coordinator Configuration (coordinator.json)
Cluster Configuration (cluster.json)
Usage Examples
Development Workflow
# 1. Check system status
# 2. Start a coordinator
&
# 3. Start multiple trainers
&
&
&
# 4. Monitor progress (in separate terminal)
Production Deployment
# Start coordinator cluster
&
&
&
# Start trainer nodes on different machines
&
&
&
Testing Setup
# Quick test with minimal nodes
&
&
&
# Check everything is running
Integration with DAA Ecosystem
DAA AI Integration
# Trainers automatically integrate with DAA AI for:
# - Model management and versioning
# - Inference capabilities
# - ML pipeline orchestration
# View AI integration status
|
DAA Rules Integration
# Coordinators use DAA Rules for:
# - Governance policy enforcement
# - Training parameter validation
# - Node behavior compliance
# Check rules integration
|
DAA Economy Integration
# Automatic token rewards for:
# - Quality training contributions
# - Reliable node operation
# - Successful task completion
# View economic integration
|
Advanced Usage
Docker Integration
# Dockerfile for Prime CLI
FROM rust:1.70-slim as builder
WORKDIR /app
COPY . .
RUN cargo install --path crates/prime-cli
FROM debian:bookworm-slim
RUN apt-get update && apt-get install -y ca-certificates && rm -rf /var/lib/apt/lists/*
COPY --from=builder /usr/local/cargo/bin/prime /usr/local/bin/
ENTRYPOINT ["prime"]
CMD ["status"]
# Build and run
# Run trainer
# Run coordinator
# Check status
Kubernetes Deployment
# prime-trainer.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: prime-trainer
spec:
replicas: 3
selector:
matchLabels:
app: prime-trainer
template:
metadata:
labels:
app: prime-trainer
spec:
containers:
- name: trainer
image: prime-cli:latest
command:
args:
env:
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: RUST_LOG
value: "info"
# prime-coordinator.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: prime-coordinator
spec:
replicas: 1
selector:
matchLabels:
app: prime-coordinator
template:
metadata:
labels:
app: prime-coordinator
spec:
containers:
- name: coordinator
image: prime-cli:latest
command:
args:
ports:
- containerPort: 8080
env:
- name: RUST_LOG
value: "info"
Scripting and Automation
#!/bin/bash
# deploy-prime-cluster.sh
COORDINATOR_ID="auto-coord-"
TRAINER_COUNT=
# Start coordinator
&
COORD_PID=
# Wait for coordinator to be ready
# Start trainers
for; do
TRAINER_ID="auto-trainer--"
&
done
# Wait for interrupt
Monitoring and Logging
Logging Configuration
# Set log levels
# Full debug logging
# Default info logging
# Warnings and errors only
# Errors only
# Component-specific logging
# Log to file
|
Status Monitoring
# Continuous status monitoring
# Status with timestamp
while ; do
done
# Check if nodes are responsive
||
Process Management
# Start with process management
&
&
# Stop processes
# Check if processes are running
&& ||
Troubleshooting
Common Issues
-
Command Not Found
# Ensure cargo bin directory is in PATH # Or use full path -
Connection Issues
# Check network connectivity # If coordinator unreachable, verify it's running | -
Permission Issues
# Ensure proper permissions for data directory -
Port Conflicts
# Check if ports are in use | # Use different port
Debug Mode
# Enable debug logging
RUST_LOG=debug
# Trace all network activity
RUST_LOG=trace
# Check configuration parsing
Getting Help
# General help
# Command-specific help
# Version information
Limitations and Future Development
Current Limitations
- Simplified Interface: Current CLI provides basic node management; full functionality requires using crates directly
- Configuration: Limited configuration options through CLI flags
- Monitoring: Basic status reporting; advanced metrics require integration with crate APIs
- Management: No built-in cluster management commands
Planned Enhancements
- Enhanced Training Commands: Full training job management and monitoring
- Advanced Configuration: Comprehensive CLI-based configuration management
- Cluster Management: Built-in cluster deployment and management commands
- Interactive Mode: TUI-based interactive interface for complex operations
- Plugin System: Extensible plugin architecture for custom commands
- Integration Commands: Direct integration with DAA AI, Rules, and Economy
Development
Building from Source
# Clone repository
# Build
# Run
Contributing
Contributions are welcome! Areas for improvement:
- Command Extensions: Additional commands for cluster management
- Configuration Management: Enhanced configuration handling
- Interactive Features: TUI components for better user experience
- Documentation: More examples and use cases
- Testing: Integration tests for CLI workflows
See our Contributing Guide for details.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Related Crates
daa-prime-core: Core types and protocol definitionsdaa-prime-trainer: Full training node functionalitydaa-prime-coordinator: Full coordination capabilitiesdaa-prime-dht: Distributed hash table operations