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
Posted in Uncategorized | Leave a comment

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 optimizations
Posted in Uncategorized | Leave a comment

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 code size
Posted in Uncategorized | Leave a comment

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 execution in the metaphor of promises. Most of the lparallel kernel API is retained with minor variations.

Posted in Uncategorized | Leave a comment

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
Posted in Uncategorized | Leave a comment

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 function queue-full-p
  • Posted in Uncategorized | Leave a comment

    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 kernel instance
    • added a front-end lock to some ptree functions — removes the requirement that some calls be exclusive
    • improved performance of functions defined by defpun
    Posted in Uncategorized | Leave a comment