Implementar a multiplicação de matrizes com PThreads e OpenMP.
Trabalho de Arquitetura de Computadores
-
Implementar a multiplicação de matrizes multithreads com número de threads indexado.
-
Fazer a versão OpenMP da multiplicação paralela de matrizes.
-
Implementar a multiplicação de matrizes em GPU.
- Comparar o tempo de execução com a versão sequencial, paralela e OpenMP.
- Avaliar diferentes tamanhos de matrizes e quantidade de núcleos de forma a mostrar os cenários vantajosos e não vantajosos.
- Gráficos de comparação (Curvas).
parallel-programming
├── Codigos # Códigos em C de programação sequencial, paralela e utlizando OpenMP. Contém os CSV dos resultados.
└── resultados.ipynb # Resultados obtidos
-
Para comparação é possível visualizar o resultado feito em um computador com menos threads, apenas clicando aqui
-
Para ver os resultados utilizando CUDA e como rodar clique aqui
Na pasta onde está localizado o OpenMP:
gcc -fopenmp openmp.c -o openmp && ./openmppython3 -m venv .venv # Criar o ambiente
source .venv/bin/activate # ativar o ambiente
pip install --upgrade pip # Garantir que o pip está atualizado
pip install ipykernel pandas numpy scipy matplotlib # Instala as bibliotecas necessárias para o projeto- Use Linux.
- Consulte as documentações do OpenMP e da sub-rotina sysconf