Two libraries for multi-threaded lisp programming

Pcall

PCall, or parallel call, is a Common Lisp library intended to simplify ‘result-oriented’ parallelism. It uses a thread pool to concurrently run small computations without spawning a new thread. This makes it possible to exploit multiple cores without much extra fuss.

CL-STM

CL-STM is an extension of Common Lisp to support composable Software Transactional Memory. STM makes concurrent programming qualitatively better. Instead of traditional lock-based programming, you program with atomic transactions. Atomic transactions can be composed together to make larger atomic transactions. Finally, it just so happens that transactions run in parallel, and are rolled back if there are conflicts.

STM gives us freedom from deadlock, automatic roll-back on failure, and it resolves the tension between granularity and concurrency.


About this entry