CompilationTarget

CompilationTarget

is an option for Compile that specifies the target runtime for the compiled function.

Details

  • CompilationTarget applies to the creation of the compiled function.
  • The following settings can be used:
  • "WVM"the Wolfram Virtual Machine
    "C"C code
  • CompilationTarget -> "WVM" creates code for the traditional Wolfram System virtual machine.
  • CompilationTarget -> "C" creates C code, which is compiled to an external machine code library and linked back into the Wolfram Language.
  • External files created when a "C" target is specified are deleted either after use or when the Wolfram System exits.
  • A suitable external C compiler is required to target C code. If one is not found, the Wolfram System will use the "WVM".
  • When either "C" or "WVM" targets are specified, the following additional settings can be used:
  • RuntimeAttributes -> Listablecompile a function with Listable attribute
    Parallelization -> Truetry using multiple threads if possible

Examples

open allclose all

Basic Examples  (3)

You can target C code generation from Compile:

This runs the compilation using C code:

C code generation runs faster:

The default operation using the WVM runs more slowly:

You can combine parallel operations with C code generation to get even faster operation:

Neat Examples  (1)

A real-time plotting of the Mandelbrot set, the computation using a CompilationTarget of C and parallelism is fast enough to update the image in real time.

First, the compiled function to compute values:

Now, a plot viewer to display the result and handle the interactions:

Now you can invoke the functions. Note that this is an image to interact with the picture you need to evaluate the commands:

Introduced in 2010
 (8.0)