Racket in parallel
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Francesco Montanari 28a7a131aa Remove reference to Racket BC from docs 9 months ago
.gitignore Add gitignore 1 year ago
COPYING Initial commit 1 year ago
README.org Document futures overheads, closes #1 1 year ago
info.rkt Move rackunit-lib to build-deps 1 year ago
main.rkt Change parallel -> parallel-values 1 year ago
rparallel.scrbl Remove reference to Racket BC from docs 9 months ago
test.rkt Change parallel -> parallel-values 1 year ago

README.org

rparallel – Racket in parallel

Description

High-level parallel forms for Racket.

Install

Install the Racket catalog package:

raco pkg install rparallel

Alternatively, install from the source directory:

raco pkg install

Remove:

raco pkg remove rparallel

Usage

See the Racket package documentation.

Development

This is so far a port to Racket of GNU Guile parallel forms (excluding n-par-map, n-par-for-each and n-for-each-par-map that should be avoided according to Guile docs).

Naming conventions

The idea is to extend existing forms (map, let, …) in a consistent way easy to remember and/or infer. Shorter parallel form names like pmap, plet, … would have been preferable because consistent with other Lisp libraries (e.g., for Common Lisp and Clojure). However, Racket already has a plet form that stands for `polymorphic let`. Hence, we opt for a more verbose parallel-... prefix (parallel-map, parallel-let, …).

Further development ideas

  • Port preduce and defpun forms from Common Lisp lparallel library.

  • Add support also for comprehensions like for/list etc.

  • Benchmark overheads.

Contributing

After changing the source code, please check a correct building, e.g.:

raco setup -nxiID --check-pkg-deps --pkgs
raco test --drdr --package rparallel