Author Archives: lparallel
lparallel-2.8.0 released
added broadcast-task — executes a given task inside each worker added kernel-worker-index — determine if the current thread is a worker thread, and if so, obtain its assigned index
lparallel-2.7.0 released
added the ability to bind multiple values in plet, e.g. (plet ((x 1) ((y z) (values 2 3))) (+ x y z)) ;=> 6 added slet — serial/non-parallel let with the same syntax as plet for binding multiple values various … Continue reading
lparallel-2.6.0 released
added a :timeout option to try-pop-queue and try-receive-result; this requires the latest version of bordeaux-threads (lparallel will still run with older versions of bordeaux-threads as long as the :timeout option is not used) optimizations to defpun optimizations from smaller generated … Continue reading
Introducing lfarm
lfarm is a distributed version of lparallel which replaces worker threads with remote processes. For example lfarm:pmap will subdivide the input sequence(s), send the parts to remote machines for mapping, and then combine the results. Likewise lfarm:future wraps remote task … Continue reading
lparallel-2.4.0 released
plet now exploits type declarations defpun*, defpun/type*, and psort* are now deprecated — instead use the unstarred versions and pass :use-caller t to make-kernel parallel compilation is now safe
lparallel-2.3.0 released
make-queue and make-channel now accept a :fixed-capacity argument for limiting the number of elements stored make-queue now accepts an :initial-contents argument passing a single argument to make-queue or make-channel is deprecated; a &rest hack is present for backward compatibility added … Continue reading
lparallel-2.2.0 released
exported types: kernel, channel, ptree added ptree-computed-p — query the computed state of a ptree node make-kernel now aborts cleanly when a worker fails to initialize, e.g. when make-thread fails or when a :context function aborts check-kernel now returns a … Continue reading
lparallel-2.1.0 released
added readers kernel-name and kernel-context added restart kill-errors to workers — removes debugger popups attempting to submit a task to an ended kernel now signals an error suicidal calls to kill-tasks inside workers are now permitted
Concurrent Hello World
Below is another example of Concurrent Hello World. The macros receive and run are just 9 lines each, given below the fold. (defpackage :example (:use :cl :node)) (in-package :example) (defun hello (hello-queue world-queue) (receive hello-queue (:say-hello (n) (cond ((plusp n) … Continue reading
lparallel-2.0.0 released
The major version bump is for some incompatible changes, though they are unlikely to cause trouble. keyword arguments to psort besides :key have been replaced with a single :granularity argument; the old arguments are now ignored removed deprecated aliases from … Continue reading