aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/content/projects/complex-fractals/index.md
blob: c09cc5c562f7637df427415b4e840d298fd1fc06 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
---
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)