https://github.com/phael-exe/aco-selection-parallel
Parallelization of ACO with CUDA and OpenMP for large-scale instance selection.
https://github.com/phael-exe/aco-selection-parallel
cuda openmp parallel-computing
Last synced: 19 days ago
JSON representation
Parallelization of ACO with CUDA and OpenMP for large-scale instance selection.
- Host: GitHub
- URL: https://github.com/phael-exe/aco-selection-parallel
- Owner: phael-exe
- Created: 2026-05-27T23:36:19.000Z (25 days ago)
- Default Branch: main
- Last Pushed: 2026-06-01T02:25:41.000Z (21 days ago)
- Last Synced: 2026-06-01T16:39:17.019Z (21 days ago)
- Topics: cuda, openmp, parallel-computing
- Language: C++
- Homepage:
- Size: 5.2 MB
- Stars: 3
- Watchers: 0
- Forks: 0
- Open Issues: 36
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# aco-selection-parallel

Paralelização do Algoritmo de Otimização de Colônia de Formigas (ACO) com CUDA e OpenMP para seleção de instâncias em larga escala.
**Disciplina:** Computação de Alto Desempenho — UFG 2026
**Baseline:** [Magalhães et al. (PUC Minas)](https://github.com/jmarcosjm/aco-cpp)
## Equipe
| Nome | Matrícula |
|------|-----------|
| Wagner Victor Alves de Menezes | 202403929 |
| Daniel Rios Borges | 202403900 |
| Victor Gabriel Ribeiro Jácome | 202403926 |
| Raphael Alves de Lima Soares | 202403922 |
## Estrutura do Projeto
```
├── data/ # Datasets (9 do baseline + CDC Diabetes)
├── src/
│ ├── sequential/ # C++ sequencial (adaptado do baseline)
│ ├── cuda/ # C++ + CUDA (paralelismo GPU)
│ └── openmp/ # C++ + OpenMP (paralelismo CPU)
├── scripts/ # Benchmark, profiling (Perf), plots
├── results/ # Saídas experimentais
├── docs/ # Artigo final e apresentação
└── Makefile # Build unificado
```
## Versões
| Versão | Tecnologia | Status |
|--------|------------|--------|
| Sequencial | C++ | 🔲 |
| GPU | C++ + CUDA | 🔲 |
| CPU Paralela | C++ + OpenMP | 🔲 |
## Datasets
| Categoria | Datasets | Instâncias |
|-----------|----------|------------|
| Pequenos (≤700) | Heart, Haberman, Cirrhosis | 299 – 418 |
| Médios (≤1500) | Diabetes, Tic-tac-toe, Yeast | 767 – 1.484 |
| Grandes (>1500) | Vaccine, Employee, Brain Stroke | 3.152 – 4.981 |
| **Larga escala** | **CDC Diabetes** | **253.680** |
## Como compilar
```bash
make sequential # compila versão sequencial -> build/aco_seq
make cuda # compila versão CUDA -> build/aco_cuda
make openmp # compila versão OpenMP -> build/aco_omp
make all # compila as 3 versões
make benchmark # compila e executa as versões disponíveis
make clean # remove build/
```
> CUDA e OpenMP são épicos separados. Enquanto `src/cuda/` e `src/openmp/`
> estiverem vazios (ou `nvcc` não existir), esses targets são pulados sem erro.
## Resultados
### Redução de Instâncias (%)

### Instâncias Absolutas Antes × Depois

### Speedup CUDA e OpenMP vs Sequencial

> Relatório completo: [`results/EP04_CUDA_benchmark.md`](results/EP04_CUDA_benchmark.md)
## Referências
- Magalhães, J.M.O. et al. *Avaliação de Desempenho e Escalabilidade do ACO em C++ e Python*. PUC Minas, 2024.
- CDC Diabetes Health Indicators — [UCI ML Repository](https://archive.ics.uci.edu/dataset/891)