Version 18 (modified by benl, 3 years ago)

--

Repa (REgular PArallel arrays)

Repa provides high performance, regular, multi-dimensional, shape polymorphic parallel arrays. All numeric data is stored unboxed. Functions written with the Repa combinators are automatically parallel provided you supply +RTS -Nwhatever on the command line when running the program. Repa means "turnip" in Russian. If you don't like turnips then this library probably isn't for you.

Download

Repa is split up into a few packages to help control dependencies.

If you want the lot then just install the examples, and this will pull down the rest.

cabal install repa-examples

Report a bug

If you have a bug or feature request, please add a new ticket.
Note that for spam prevention you must first register (takes 10 sec) before you can add a ticket.

You can also send email to repa@ouroborus.net

Examples

Here is the output of some of the examples included in the repa-examples package:

fft2d-highpass Laplace
Error: Macro Image(WikiStart:lena-high2-thumb.jpg) failed
Attachment 'wiki:WikiStart: lena-high2-thumb.jpg' does not exist.
Error: Macro Image(WikiStart:pls-400x400-out-thumb.jpg) failed
Attachment 'wiki:WikiStart: pls-400x400-out-thumb.jpg' does not exist.
more info more info

Demo

There is also an OSX demo that does edge detection on a video stream:

  • The source should compile with XCode 3.2.1 and GHC 7.0.3, but you need to update and run the CONFIGURE.sh script to point it to your GHC install.
  • There are also prebuilt OSX i386 versions for two four and six threads. These just have the corresponding +RTS -N# option baked in, you can set it in the main.m module. Some day I will make it so you can select this from the GUI.
  • If you don't have a Mac then you can watch a video of me demonstrating it.
  • You can also run the edge detector over a single uncompressed .bmp file using the repa-canny program from the repa-examples package.