diff --git a/.github/workflows/python-app.yml b/.github/workflows/python-app.yml new file mode 100644 index 0000000..f3d4fca --- /dev/null +++ b/.github/workflows/python-app.yml @@ -0,0 +1,39 @@ +# This workflow will install Python dependencies, run tests and lint with a single version of Python +# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python + +name: Python application + +on: + push: + branches: [ "main" ] + pull_request: + branches: [ "main" ] + +permissions: + contents: read + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + - name: Set up Python 3.10 + uses: actions/setup-python@v3 + with: + python-version: "3.10" + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install flake8 pytest + if [ -f requirements.txt ]; then pip install -r requirements.txt; fi + - name: Lint with flake8 + run: | + # stop the build if there are Python syntax errors or undefined names + flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics + # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide + flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics + - name: Test with pytest + run: | + pytest diff --git a/Part 1 - Algorithms with performance analysis/Computations.xlsx b/Part 1 - Algorithms with performance analysis/Computations.xlsx deleted file mode 100644 index aac710d..0000000 Binary files a/Part 1 - Algorithms with performance analysis/Computations.xlsx and /dev/null differ diff --git a/Part 1 - Algorithms with performance analysis/Mandelbrot Mini Project Part 1.zip b/Part 1 - Algorithms with performance analysis/Mandelbrot Mini Project Part 1.zip deleted file mode 100644 index 5603734..0000000 Binary files a/Part 1 - Algorithms with performance analysis/Mandelbrot Mini Project Part 1.zip and /dev/null differ diff --git a/Part 1 - Algorithms with performance analysis/Mini Project Report Part 1.docx b/Part 1 - Algorithms with performance analysis/Mini Project Report Part 1.docx deleted file mode 100644 index 6172311..0000000 Binary files a/Part 1 - Algorithms with performance analysis/Mini Project Report Part 1.docx and /dev/null differ diff --git a/Part 1 - Algorithms with performance analysis/Mini Project Report Part 1.pdf b/Part 1 - Algorithms with performance analysis/Mini Project Report Part 1.pdf deleted file mode 100644 index c435d31..0000000 Binary files a/Part 1 - Algorithms with performance analysis/Mini Project Report Part 1.pdf and /dev/null differ diff --git a/Part 1 - Algorithms with performance analysis/PerformanceGraph.png b/Part 1 - Algorithms with performance analysis/PerformanceGraph.png deleted file mode 100644 index 22d91b5..0000000 Binary files a/Part 1 - Algorithms with performance analysis/PerformanceGraph.png and /dev/null differ diff --git a/Part 2 - DASK and Datatypes/Computations Analysis.xlsx b/Part 2 - DASK and Datatypes/Computations Analysis.xlsx deleted file mode 100644 index 5e6cf47..0000000 Binary files a/Part 2 - DASK and Datatypes/Computations Analysis.xlsx and /dev/null differ diff --git a/Part 2 - DASK and Datatypes/Mandelbrot Mini Project 2.zip b/Part 2 - DASK and Datatypes/Mandelbrot Mini Project 2.zip deleted file mode 100644 index dd8d96e..0000000 Binary files a/Part 2 - DASK and Datatypes/Mandelbrot Mini Project 2.zip and /dev/null differ diff --git a/Part 2 - DASK and Datatypes/Numerical Scientific Computing Mini Project Part 2.pdf b/Part 2 - DASK and Datatypes/Numerical Scientific Computing Mini Project Part 2.pdf deleted file mode 100644 index 7ee6658..0000000 Binary files a/Part 2 - DASK and Datatypes/Numerical Scientific Computing Mini Project Part 2.pdf and /dev/null differ diff --git a/Part 2 - DASK and Datatypes/Numerical Scientific Computing Part2.docx b/Part 2 - DASK and Datatypes/Numerical Scientific Computing Part2.docx deleted file mode 100644 index 625bfa0..0000000 Binary files a/Part 2 - DASK and Datatypes/Numerical Scientific Computing Part2.docx and /dev/null differ diff --git a/README.md b/README.md index 8e63322..26d86a6 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,13 @@ # Mandelbrot-Mini-Project Implementation of the Mandelbrot set for the Numerical Scientific Computing Course (Computer Engineering 8th semester, AAU) -- To compare the performance between the algorithms run the [``main.py``](main.py) file. -- To generate a plot showing the mandelbrot set configure one of the parameters to ``show_figure=True`` in [``main.py``](main.py). +## Features +- Compare the different algorithm approaches: [``main.py``](main.py) +- Mandelbrot Interactive Navigator [``mandelbrot_navigator.py``](mandelbrot_navigator.py) +- Mandelbrot Zoom Animation [``Zoom Animation/mandelbrot_animation.py``]() + - Video: https://www.youtube.com/watch?v=L2zKIrriDfI +- Mandelbrot Iteration Animation [``Iterations Animation/mandelbrot_iteration_animation.py``]() + - Video: https://www.youtube.com/watch?v=8BjqgaIuses
@@ -36,6 +41,14 @@ Generated sequence of zoom into fractal [``mandelbrot_iteration_animation.py``](
+## Interactive Navigator + +Navigation through the Mandelbrot Set by using keyboard controls [``mandelbrot_navigator.py``](mandelbrot_navigator.py) + +![img]() + +
+ @@ -47,6 +60,9 @@ Generated sequence of zoom into fractal [``mandelbrot_iteration_animation.py``]( | [``mandelbrot_numba.py``](mandelbrot_numba.py)| 115.25 | | [``mandelbrot_multicore.py``](mandelbrot_multicore.py)| 37.89 | | [``mandelbrot_dask.py``](mandelbrot_dask.py)| 25.07 | +| [``mandelbrot_opencl.py``*](mandelbrot_opencl.py)| 1.07 | + +*Limited to float64 precision | | Complex64 | Complex128 | @@ -76,24 +92,6 @@ pip install -r requirements.txt ```
- - -## Project Hand Ins -**Mini-Project Part 1** ([``Hand-In``](Part%201%20-%20Algorithms%20with%20performance%20analysis/Mini%20Project%20Report%20Part%201.pdf))
-- Naive -- Vectorized -- Numba-optimized -- Parallel using multi-processing -- Computation analysis of speedup between parameters
- -**Mini-Project Part 2** ([``Hand-In``](Part%202%20-%20DASK%20and%20Datatypes/Numerical%20Scientific%20Computing%20Mini%20Project%20Part%202.pdf))
-- Performance of data types (Numpy.Float64, Numpy.Float32, Numpy.Float16) -- Dask compared to numpy -- Dask local execution -- Dask distributed execution -- Performance optimizations (Early stopping, data types, lazy loading) - -
diff --git a/interactive_screenshot.png b/interactive_screenshot.png new file mode 100644 index 0000000..dea7279 Binary files /dev/null and b/interactive_screenshot.png differ diff --git a/requirements.txt b/requirements.txt index c319eb3..07271b3 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,6 @@ -dask==2023.3.0 -matplotlib==3.5.2 -numba==0.53.0 -numpy==1.21.6 +dask==2022.2.1 +matplotlib==3.5.3 +numba==0.56.3 +numpy==1.22.3 opencv_python==4.5.3.56 pyopencl==2022.3.1 \ No newline at end of file