Определенно возможно!
Проект Bordeaux Threads предоставляет потоковые примитивы для ряда реализаций; Я бы предложил использовать его вместо специфичных для реализации примитивов SBCL (особенно если вы не используете SBCL!).
Тем не менее примитивы потока, предоставляемые bt, довольно примитивны. Я использовал и наслаждался Eager Future2 , который основывается на bt для обеспечения функций параллелизма с использованием фьючерсов. Вы можете создавать фьючерсы, которые рассчитываются лениво, с нетерпением (немедленно) или умозрительно. Спекулятивные фьючерсы рассчитываются пулом потоков, размер которого можно настроить.
Я запустил небольшой проект для предоставления параллельных версий функций CL с использованием EF2, но пока это только три функции, поэтому он никому не будет полезен. Я, конечно же, приветствую, чтобы другие программисты взломали его и отправили запросы на извлечение, и я надеюсь, что в будущем над этим еще будет работать.
Есть много других библиотек , перечисленных в Cliki , которые я сам не пробовал.
Что касается учебных пособий, я не знаю ни одного, но предоставляемые функции параллелизма встречаются и на других языках, и хорошие алгоритмы и практики обычно не зависят от языка.
Если вы заинтересованы в чтении книги, я рекомендую Язык программирования Concurrent C . Авторы описывают новый язык программирования, основанный на C, с параллелизмом как особенностью языка. Конечно, из-за природы CL, было бы возможно реализовать эти функции, не прибегая к созданию нового компилятора. По моему мнению, в книге представлены отличные концепции параллелизма и рассматриваются многие проблемы, с которыми вы можете столкнуться или не учесть их при написании параллельных программ.