# ExamplesΒΆ

After running `Pkg.test("ParallelAccelerator")`

, a good next step is
to try out some example programs from the ParallelAccelerator
`examples/`

subdirectory. These can be run either from the command
line or from the Julia prompt. For instance, to run the
`black-scholes`

example from the Julia prompt:

```
julia> include("$(homedir())/.julia/v0.5/ParallelAccelerator/examples/black-scholes/black-scholes.jl")
```

On your first run, you should see output similar to the following (this was on an 8-core Linux machine with 8 GB of RAM, using ICC and MKL):

```
iterations = 10000000
SELFPRIMED 31.675743032
checksum: 2.0954821257116845e8
rate = 2.268548657657791e7 opts/sec
SELFTIMED 0.44081047
```

The *SELFTIMED* line in the printed output shows the running time,
while the *SELFPRIMED* line shows the time it takes to compile the
accelerated code and run it with a small “warm-up” input.

For the first function you accelerate in a given Julia session, you
might notice a long time being reported for *SELFPRIMED*. This delay
(about 25 to 30 seconds on an 8-core desktop machine) is the time it
takes for Julia to load the ParallelAccelerator package itself. If
you run the function again, you’ll notice that `SELFPRIMED`

gets
smaller. Here’s an example interaction:

julia> include(“$(homedir())/.julia/v0.5/ParallelAccelerator/examples/black-scholes/black-scholes.jl”) iterations = 10000000 SELFPRIMED 31.675743032 checksum: 2.0954821257116845e8 rate = 2.268548657657791e7 opts/sec SELFTIMED 0.44081047

julia> include(“$(homedir())/.julia/v0.5/ParallelAccelerator/examples/black-scholes/black-scholes.jl”) iterations = 10000000 SELFPRIMED 1.62395378 checksum: 2.0954821257116845e8 rate = 2.3933823208592944e7 opts/sec SELFTIMED 0.417818746

julia>

Notice that `SELFPRIMED`

dropped from almost 32 seconds to about 1.6
seconds. This is because, for the second run, the ParallelAccelerator
package was already loaded. The remaining 1.6 seconds is mostly the
time it took for the ParallelAccelerator compiler to compile the
accelerated code.

It’s instructive to compare the running time of the ParallelAccelerator code with the plain Julia version:

julia> include(“$(homedir())/.julia/v0.5/ParallelAccelerator/examples/plain-julia/black-scholes/black-scholes.jl”) iterations = 10000000 SELFPRIMED 0.000573466 checksum: 2.0954821257116845e8 rate = 3.640941015492507e6 opts/sec SELFTIMED 2.746542709

This time, `SELFPRIMED`

is almost 0 (because there is no package to
be loaded and no work for the ParallelAccelerator compiler to do), but
`SELFTIMED`

is rather larger than it was under ParallelAccelerator::
2.7 seconds.

You can also run example programs from the command line:

```
$ julia ~/.julia/v0.5/ParallelAccelerator/examples/black-scholes/black-scholes.jl
```

Pass the `--help`

option to see usage information for each example:

```
$ julia ~/.julia/v0.5/ParallelAccelerator/examples/black-scholes/black-scholes.jl -- --help
black-scholes.jl
Black-Scholes option pricing model.
Usage:
black-scholes.jl -h | --help
black-scholes.jl [--iterations=<iterations>]
Options:
-h --help Show this screen.
--iterations=<iterations> Specify a number of iterations [default: 10000000].
```

The `examples/`

subdirectory contains many more examples. Most
examples also have a corresponding plain Julia version available in
`examples/plain-julia/`

. Some examples require additional Julia
packages to be installed.