• 09/03/2020
  • Public Content

Image Processing: Mandelbrot

The Mandelbrot set is a well known application of visual mathematics. It is a good example of simple math with complex (imaginary) numbers on a complex plane leading to visually impressive results. It works by keeping track of how many iterations of the equation
z
n+1
= z
n
2
+ c
will occur before a complex number is no longer bound. This can go on forever, and the image generated is unique at every depth, but for the sake of running time there is usually a maximum depth that the iteration can occur. The simulations in this example are run serially, with Intel® Cilk™ Plus
pragma simd
for vectorization, with Intel Cilk Plus
cilk_for
for parallelization, and with both vectorization and
cilk_for
.
In addition, this code uses an image base class (
image_base.h
) and
BMPImage
class (
bmp_image.cpp
) to write the results to a viewable image. Do not worry about how this is implemented, as it is unaffected by the code changes listed below.
 
1

Product and Performance Information

1

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserverd for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804