--- title: "Complex Fractal Generator" start_date: 2024-04-15 end_date: 2024-04-30 date: 2024-05-06T14:27:25-04:00 thumbnail: renders/mandelbrot.png github: "https://github.com/jpappel/complex-fractals" description: "A high performance complex fractal generator and renderer" summary: "High Performance Complex Fractal Generator" categories: - "Class Project" tags: - "HPC" - "C" - "CUDA" --- `complex-fractals` is a collection of high performance computing programs to generate and render complex fractals. This was completed as a final project for CSCI392: *High Performance Computing* at Moravian University. As an overview, the serial, shared memory, or CUDA implementation of the program is used to generate a `.grid` file of the desired fractal. During generation, various parameters can be set such as the generated fractal, magnification level, sampling resolution, and captured region of the complex plane. Afterwards, a serial program can be used to generate a colored PNG or animated GIF of the output via [LibGD](https://libgd.github.io/). See [Full Size Renders](#full-size-renders) for examples. More details can be found in the [README on the project's repo](https://github.com/jpappel/complex-fractals). ## Analysis An [analysis](/projects/complex-fractals/analysis.html) was completed comparing the various program versions. The major takeaway is that the problem parallelizes very well when using the escape time algorithm. ## Presentation As part of the course a [presentation](/projects/complex-fractals/presentation.html) was required. The speaker notes may be accessed by pressing `s` on the keyboard and allowing the site to create a pop-up window. While originally a group project and presentation, I ended up completing this all on my own. ## Full Size Renders * [Mandelbrot Image](renders/mandelbrot.png) * [Tricorn Image](renders/tricorn.png) * [Burning Ship Image](renders/burning_ship.png) * [Multibrot Image](renders/multibrot.png) * [Julia Image](renders/julia.png) * [Multicorn Animation](renders/multicorn.gif)