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 2 years ago
.gitignore Add gitignore 2 years ago
COPYING Initial commit 2 years ago
README.org Document futures overheads, closes #1 2 years ago
info.rkt Move rackunit-lib to build-deps 2 years ago
main.rkt Change parallel -> parallel-values 2 years ago
rparallel.scrbl Remove reference to Racket BC from docs 2 years ago
test.rkt Change parallel -> parallel-values 2 years ago


rparallel – Racket in parallel


High-level parallel forms for Racket.


Install the Racket catalog package:

raco pkg install rparallel

Alternatively, install from the source directory:

raco pkg install


raco pkg remove rparallel


See the Racket package documentation.


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.


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

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