IntelLabs / ParallelAccelerator.jl

The ParallelAccelerator package, part of the High Performance Scripting project at Intel Labs
BSD 2-Clause "Simplified" License
294 stars 32 forks source link

Write a tutorial #27

Closed lkuper closed 8 years ago

lkuper commented 8 years ago

We need a tutorial that explains the ParallelAccelerator workflow and walks through how to accelerate an example program.

olegmikul commented 8 years ago

Yes, indeed.

I would like also to have acceleration ratio for each example, so it would be good to have 2 codes/variants for each example - with and without an accelerator. May be tweak by arguments to make it easy. It is hard to get filling on advantages of the accelerator without such comparison. For example, in samples for intel compilers we have an easy way to get speed up ratio for using various pragmas on your system.

ninegua commented 8 years ago

You can run the same example programs with PROSPECT_MODE=none set in the environment. This gives performance without using ParallelAccelerator. But I agree, a performance comparison diagram is much needed in the README.

lkuper commented 8 years ago

+1 for a performance comparison in the README.

olegmikul commented 8 years ago

Ok, thanks for suggestions, it works. Now I have a tough question - how to speed up the overall walking time (SELFPRIMED+SELTIMED) to get it faster than running without ParallelAccelerator? Similar to, say, using Gadfly - first time or for new data it takes long time to compile. Is there any way for Julia to resolve that issue?

lkuper commented 8 years ago

@olegmikul Yep -- that delay the first time is the time it takes ParallelAccelerator to compile. The best solution at the moment is to embed the ParallelAccelerator package into your Julia executable using ParallelAccelerator.embed(), as described here. This only works if you've installed Julia from source, though.

olegmikul commented 8 years ago

@lkuper Thank you, it works. With some warning, but works.

lkuper commented 8 years ago

Assigning this to myself to work on in January.

lkuper commented 8 years ago

I think the blog post published last week captures pretty well what I was hoping to achieve with a tutorial. It covers example usage and has a performance comparison. I'll link to it from our README.

With that, I'm going to close this issue, but let me know if there's something missing from the blog post that you think ought to be covered in our docs.