This is an assignment of a course about High Performance Computing In Python. Because of the possible copyright problems, I do not put the assignment description in this project.
My Python Version is 3.11.2.
I did not test other versions, but I guess that some other versions may also be OK.
Note:
Some functions (perhaps the parts related to multi-process or multi-threads) should be executed on Linux system.
- On a Linux PC or VM, execute
python3 -u unit_tests.py
. If there is no error, the program is correct. - This test file
unit_tests.py
validates that:- The
naive
method of Mandelbrot Set is correct. - All methods have the same
reals
,images
, andresults
. - Because of the above 2 points, all methods of Mandelbrot Set are correct.
- The
- On a Linux PC or VM, run all cells in the file
gui.ipynb
. Then thereals
,images
, andresults
of all methods will be generated incsv
files. All methods have the same contents in thecsv
files because of the validation inunit_tests.py
- To get the pdf-version figure of Mandelbrot Set, run
python3 -u naive.py
on a PC or VM with GUI (graphical user interface). One figure of Mandelbrot Set is enough in this project, because All methods have the same contents in thecsv
files, which will generate the same figures of Mandelbrot Set.
- On a Linux PC or VM, execute
python3 -u benchmark.py
to generate the results of the benchmark in thecsv
file, and also print the results on the screen. - On a PC or VM with GUI, execute
python3 -u benchmark_plotting.py
to read the benchmark results from thecsv
file, and plot them in a bar chart.