# Intel® Threading Building Blocks.
Fractal sample

The example calculates two classical Mandelbrot fractals with different priorities.
The application window is divided into two areas where fractals are rendered. With mouse click on an area the user can change the priority of the calculating fractal. In the clicked area the fractal priority is changed to be "high" and the priority of the other fractal is changed to "low". The fractal with "high" priority we will call active. The example also has the console mode but in this mode the priorities could not be changed during execution.

System Requirements

For the most up to date system requirements, see the release notes.

Files

main.cpp
  Main program which parses command line options and runs the fractals calculation in GUI or Console mode.
fractal.h
  Interfaces of fractal and fractal_group classes.
fractal.cpp
  Implementations of fractal and fractal_group classes.
fractal_video.h
  GUI mode support interface.
Makefile
  Makefile for building the example.

Directories

msvs
  Contains Microsoft* Visual Studio* workspace for building and running the example (Windows* systems only).
xcode
  Contains Xcode* IDE workspace for building and running the example (macOS* systems only).

For information about the minimum supported version of IDE, see release notes.

Build instructions

General build directions can be found here.

Usage

`fractal -h`
  Prints the help for command line options
`fractal [n-of-threads=value] [n-of-frames=value] [max-of-iterations=value] [grain-size=value] [silent] [single]`
`fractal [n-of-threads [n-of-frames [max-of-iterations [grain-size]]]] [silent] [single]`
  n-of-threads is the number of threads to use; a range of the form low[:high], where low and optional high are non-negative integers or 'auto' for the TBB default.
  n-of-frames is a number of frames the example processes internally.
  max-of-iterations is a maximum number of the fractal iterations.
  grain-size is an optional grain size, must be a positive integer.
  use-auto-partitioner - use tbb::auto_partitioner.
  silent - no output except elapsed time.
  single - process only one fractal.
To run a short version of this example, e.g., for use with Intel® Parallel Inspector:
  Build a debug version of the example (see the build instructions).
  Run it with a small fractal iterations number and the desired number of threads, e.g., `fractal 4 1 10000`.

Hot keys

The following hot keys can be used in interactive execution mode when the example is compiled with the graphical user interface:

<left mouse button>
  Make the fractal active and change its priority to high
<space>
  Switch priorities
<w>
  Move the active fractal up
<a>
  Move the active fractal to the left
<s>
  Move the active fractal down
<d>
  Move the active fractal to the right
<q>
  Zoom in the active fractal
<e>
  Zoom out the active fractal
<r>
  Increase quality (count of iterations for each pixel) the active fractal
<f>
  Decrease quality (count of iterations for each pixel) the active fractal
<esc>
  Stop execution.

Up to parent directory

Legal Information

Intel and the Intel logo are trademarks of Intel Corporation in the U.S. and/or other countries.
* Other names and brands may be claimed as the property of others.
© 2017, Intel Corporation