/Mandel2Us

Gerador interativo do Fractal de Mandelbrot construido em C++ com MPI e OpenMP

Primary LanguageC++

Fractal de Mandelbrot construido em C++ com MPI e OpenMP, e a parte gráfica com olcPixelGameEngine

Build: Linux

  1. Clone o repositório
git clone https://github.com/lucaszm7/Mandel2Us.git
  1. Instale as dependências
make install
  1. Compile o Programa
make gen
  1. Rode :)
make run

Build Windows

  • Com Msys2 + mingw-64
g++ -fopenmp Application.cpp -luser32 -lgdi32 -lopengl32 -lgdiplus -lShlwapi -ldwmapi -lstdc++fs -static -std=c++17 -O3 -mavx2  -o app
  • Com MSVC (Alpha)
cl /EHsc /openmp /O2 /Ot /std:c++17 /arch:AVX2 Application.cpp

Mandelbrot_Fractal__bigbig_adobe

Features!

Clusterization with MPI!

Dynamically divide the fractal in N nodes, beeing N <= Screen Width Return the value from each nodes to the master node

Parallelization with OpenMP!

Dynamic divide the portion of the fractal in each node, using MPI

Multi-PLataform Rendering!

Using olcPixelGameEngine to Draw the fractal in a window!

Handle pan and Zoom!

Implemented pan and zoom in the fractal, supporting before features!

Different coloring algorithms:

screen_shot_0

_mandel2us_print_mark_2

screen_shot_1_ screen_shot_2 screen_shot_06

Compilar Manualmente

mpic++ -fopenmp Application.cpp -lX11 -lGL -lpthread -lpng -lstdc++fs -std=c++17 -o app

Rodar Manualmente

mpirun --hostfile hosts ./app

TODO:

  • CUDA(?)

DONE:

  • UI
  • Intrinsec Functions
  • MakeFile
  • Separate regions of Mandelbrot Between computers
  • Already paralelize with OpenMP, but has to really get better.