#!/bin/bash
#
# Lance l'optimisation massive avec plusieurs workers
# Utilise ~50% des ressources CPU
#

cd "$(dirname "$0")"

# Nombre de CPUs
NUM_CPUS=$(nproc)
# Utiliser 50% des CPUs (minimum 2, maximum 8)
NUM_WORKERS=$((NUM_CPUS / 2))
NUM_WORKERS=$((NUM_WORKERS < 2 ? 2 : NUM_WORKERS))
NUM_WORKERS=$((NUM_WORKERS > 8 ? 8 : NUM_WORKERS))

echo "════════════════════════════════════════════════════════════"
echo "  🚀 LANCEMENT OPTIMISATION MASSIVE"
echo "════════════════════════════════════════════════════════════"
echo "  CPUs disponibles: $NUM_CPUS"
echo "  Workers à lancer: $NUM_WORKERS (50% CPU)"
echo "════════════════════════════════════════════════════════════"
echo ""

# Créer dossier logs
mkdir -p logs_massive

# Tuer les anciens processus si existants
echo "🧹 Nettoyage des anciens processus..."
pkill -f "massive_optimizer.py" 2>/dev/null
sleep 2

# Lancer les workers
for i in $(seq 0 $((NUM_WORKERS - 1))); do
    echo "[Worker $i] 🚀 Démarrage..."
    nohup python3 massive_optimizer.py $i > logs_massive/worker_$i.log 2>&1 &
    WORKER_PID=$!
    echo "[Worker $i] ✅ PID: $WORKER_PID"
    sleep 1
done

echo ""
echo "════════════════════════════════════════════════════════════"
echo "  ✅ $NUM_WORKERS WORKERS LANCÉS"
echo "════════════════════════════════════════════════════════════"
echo ""
echo "📊 Monitoring:"
echo "   - Logs: tail -f logs_massive/worker_*.log"
echo "   - Processus: ps aux | grep massive_optimizer"
echo "   - Analyse: python3 analyze_massive_results.py"
echo ""
echo "🛑 Arrêt: pkill -f massive_optimizer.py"
echo "════════════════════════════════════════════════════════════"
