/mandelbrot

Mandelbrot set rendered in parallel with MPI, OpenMP, and CUDA

Primary LanguageC

mandelbrot

Should've done this a long time ago but oh well

equation

All ppms are stored at output/ms.ppm

Regular:

gcc mandelbrot.c -o mandelbrot -lm
./mandelbrot

mandelbrot

Parallel

OpenMP:

gcc parallel/mandelbrot_openmp.c -o mandelbrot -fopenmp -lm
./mandelbrot

OpenMPI:

mpicc parallel/mandelbrot_openmpi.c -o mandelbrot -lm
mpirun -np $(nproc) -mca btl ^openib mandelbrot

or with Slurm

mpicc parallel/mandelbrot_openmpi.c -o mandelbrot -lm
salloc -n {cores} mpiexec mandelbrot

Demonstration of set rendered in parallel mandelbrot

Iterations

looks nice

mpicc iters/mandelbrot.c -o mandelbrot -lm
mpirun -np $(nproc) -mca btl ^openib mandelbrot

or with Slurm

mpicc iters/mandelbrot.c -o iters/a.out -lm -Ofast 
sbatch iters/iter.sh

mandelbrot

Multibrot

variation of conventional mandelbrot equation equation where X varies.

in multibrot/multibrot.c set MIN_POWER and MAX_POWER to set range for X

mpicc multibrot/multibrot.c -o multibrot -lm -Ofast
mpirun -np $(nproc) -mca btl ^openib multibrot

or with Slurm

mpicc multibrot/multibrot.c -o multibrot/a.out -lm -Ofast
sbatch multibrot/multibrot.sh

multibrot

Zoom (WIP)

hands down the coolest part

mpicc zoom/mandelbrot.c -o mandelbrot -lm
mpirun -np $(nproc) -mca btl ^openib mandelbort

or with Slurm

mpicc zoom/mandelbrot.c -o zoom/a.out -lm -Ofast
sbatch zoom/zoom.sh

mandelbrot-zoom