有没有办法在 Common Lisp 中并行执行表单?类似于并行 PROGN?

问题描述 投票:0回答:1

我有一系列数组赋值:

...
(incf (aref res 1) formula1)
(incf (aref res 2) formula2)
...

公式i是一些复杂的自动生成代码,并且每个i都有很大不同。该代码是在编译时生成的 - 它是一个代数表达式,而不是宏或函数。

我想要的是将这些语句包装在类似“并行程序”的东西中,以便将分配分配到不同的工作线程上。执行顺序并不重要,因为每个索引都只分配一次。

我不知道如何将这个问题融入 lparallel 的抽象中,但也许我错过了一些东西。看来 pmap、plet 和 future 都不太适合这个问题。

parallel-processing common-lisp
1个回答
0
投票

原来有这样的包可用。通过调查

(ql:system-apropos "parallel")
列出的内容,我找到了
simple-parallel-tasks
,其中包括
pprogn
表格,记录为

并行评估表单并返回最后一个表单的评估结果。

(还有一个

pprog1
返回第一种形式)。

© www.soinside.com 2019 - 2024. All rights reserved.