Analyzing the Computation Run¶
In this tutorial you will learn how to get detailed information about the calculation process while creating an image. Internally, DeepDrill records the outcome of the computation in a so called drill map. This map does not only contain the derives color values. It also keeps track of the various optimizations that have been applied during the computation run. Examples are the number of skipped iterations by applying series approximation or the number of skipped pixels due a positive area check.
Running the map analyzer¶
To gather statistical information, you can advise DeepDrill to run a map analyzer at the end of the computation. The map analyzer is run automatically when the -v
option is specified at the command line. This flag tells DeepDrill to produce verbose output after completing each computatation stage.
./deepdrill -v top.ini -o top.map
DeepCDrill 3.1 - (C)opyright Dirk W. Hoffmann
Center: -0.700000 + 0.000000i (128 bit)
Upper left: -2.791503 - 1.176471i (128 bit)
Lower right: 1.389325 + 1.174292i (128 bit)
Magnification: 0.85b1
Drill depth: 1000
Escape radius: 1e+32
Map size: 1920 x 1080 (3D)
Image size: 1920 x 1080 (2D)
Perturbation: yes
Series approximation: yes
Area checking: yes
Period checking: yes
Attractor checking: yes
Running the area check: ................................. 1.11 sec
Round 1 / 50: 1784039 points remaining
Computing reference orbit: ................................. 0.00 sec
Reference point: (960,540)
Perturbation tolerance: 1e-06
Maximum depth: 1000
Actual depth: 1000
Computing coefficients: ................................. 0.00 sec
Coefficients: 5
Approximation tolerance: 1e-12
Checking probe points: ................................. 0.00 sec
Skippable iterations: 0
Computing delta orbits: ................................. 1.48 sec
Glitches: 0
All rounds completed: 0 unresolved
Preparing map file: ................................. 0.05 sec
Map size: 1920 x 1080
Drill results: Saved
Iteration counts: Saved
Skipped interations: Saved
Normalized iteration counts: Saved
Derivatives: Not saved
Normals: Saved
Compressing map file: ................................. 0.62 sec
Size reduction: 22848105 Bytes (64%)
Saving map file: ................................. 0.00 sec
Analyzing drill map: ................................. 0.00 sec
Drill locations:
Total: 2073600 (100.00 %)
Unprocessed: 0 ( 0.00 %)
Interior: 318431 ( 15.36 %)
Exterior: 1755169 ( 84.64 %)
Glitches: 0 ( 0.00 %)
Locations with applied optimizations:
Total: 308758 ( 14.89 %)
Main bulb filter: 248206 ( 11.97 %)
Cartioid filter: 41354 ( 1.99 %)
Series approximation: 0 ( 0.00 %)
Period detection: 1250 ( 0.60 %)
Attractor detection: 17948 ( 0.87 %)
Iteration counts:
Total: 336029916 (100.00 %)
Interior: 318431000 ( 94.76 %)
Exterior: 17598916 ( 5.24 %)
Skipped iterations:
Total: 301036579 ( 89.59 %)
Main bulb filter: 248206000 ( 73.86 %)
Cartioid filter: 41354000 ( 12.31 %)
Series approximation: 0 ( 0.00 %)
Period detection: 91412 ( 0.30 %)
Attractor detection: 11385167 ( 3.39 %)
Total time: 3.34 sec
You’ll find the outcome of the map analyzer at the very end of the output.
Highlighting pixels¶
To enable additional debug options, pass in profile debug.ini
. This file contains the following definitions:
[perturbation]
color = red
[areacheck]
color = green
[attractorcheck]
color = magenta
[periodcheck]
color = yellow
The color
key in the perturbation
section tells DeepDrill to draw all glitch points in red. Glitch points are points for which it is still unclear whether they belong to the Mandelbrot set or not. By default, these points are colored black. See the Theory section to learn more about perturbation theory and glitch point detection.
The next three keys instruct DeepDrill to mark pixels for which the area checker, the attractor checker or the period checker has signaled a hit. All three checkers are used to speed up calculation. They are able to classify certain pixels as belonging to the Mandelbrot set before the maximum iteration count is reached.
./deepdrill top.ini -o top.jpg debug.ini