Protótipo desenvolvido para o desafio técnico da bolsa PROBIC/FAPERGS do AI Horizon Labs.
O objetivo é simular a decisão de onde executar tarefas em uma infraestrutura Edge-Cloud, considerando capacidade computacional, memória, latência, custo e consumo energético.
Infraestruturas distribuídas combinam servidores próximos do usuário, chamados de borda, com servidores mais distantes e robustos, chamados de nuvem. A decisão de onde executar cada tarefa afeta diretamente a latência, o custo, o consumo de energia e a qualidade do serviço.
Este mini-simulador modela esse problema de forma simples e reprodutível. Ele executa o mesmo conjunto de tarefas com duas estratégias de alocação:
baseline: escolhe o primeiro nó viável.smart: escolhe o nó viável com menor pontuação, considerando latência, pressão de recursos, custo e energia.
Cada tarefa possui requisitos de CPU, memória, latência máxima tolerada e prioridade. Cada nó da infraestrutura possui tipo (edge ou cloud), capacidade de CPU e memória, latência, custo por tarefa e consumo energético.
Uma tarefa só pode ser alocada se o nó tiver recursos suficientes e se a latência do nó respeitar o limite máximo da tarefa.
.
├── main.py
├── src/
│ └── edgecloud_simulator/
│ ├── models.py
│ ├── scenarios.py
│ ├── simulator.py
│ └── strategies.py
├── tests/
│ ├── test_models.py
│ ├── test_simulator.py
│ └── test_strategies.py
└── README.md
Para executar apenas o simulador de linha de comando, use Python 3. O dashboard visual usa as dependências listadas em requirements.txt.
python main.pyInstale as dependencias:
python -m pip install -r requirements.txtExecute o painel:
streamlit run dashboard.pyO dashboard apresenta as metricas do simulador em portugues, com cards, graficos comparativos e uma tabela detalhada das alocacoes.
Como o projeto usa o layout src/, defina PYTHONPATH antes de executar os testes.
$env:PYTHONPATH='src'
python -m unittest discover -s tests -p "test_*.py" -vEm Linux/macOS:
PYTHONPATH=src python -m unittest discover -s tests -p "test_*.py" -vO simulador executa as tarefas em sequência. Para cada tarefa, a estratégia ativa recebe a lista de nós e seleciona um nó viável ou rejeita a tarefa quando não há opção compatível.
A estratégia smart calcula uma pontuação para cada nó viável:
score = latencia ponderada pela prioridade
+ pressao de recursos
+ custo
+ energia
O nó com menor pontuação é escolhido. Essa abordagem torna a decisão mais explicável do que simplesmente escolher o primeiro nó possível.
Ao final da execução, o simulador apresenta:
- número de tarefas alocadas;
- número de tarefas rejeitadas;
- latência média;
- custo total;
- energia total.
Essas métricas permitem comparar diferentes políticas de alocação sob o mesmo cenário experimental.
No cenário de demonstração, a estratégia inteligente tende a distribuir melhor algumas tarefas, reduzindo custo e energia, enquanto mantém uma taxa de alocação equivalente à estratégia baseline. A pequena variação de latência ilustra o trade-off clássico entre desempenho, custo e uso eficiente da infraestrutura.
O projeto institucional trata de alocação de recursos computacionais em infraestruturas distribuídas usando Agentic AI. Este protótipo representa uma primeira camada experimental: um ambiente simples onde diferentes estratégias podem ser comparadas de forma controlada.
Em trabalhos futuros, um agente poderia usar esse simulador como ferramenta para:
- testar diferentes políticas de alocação;
- explicar decisões;
- ajustar pesos da função de pontuação;
- comparar heurísticas clássicas com decisões baseadas em Agentic AI.
O simulador utiliza um cenário fixo e uma heurística determinística. Como evolução, seria possível adicionar geração automática de cargas de trabalho, gráficos, múltiplas sementes de simulação, novas heurísticas e uma camada agentic para propor ou explicar decisões de alocação.