我有一個非常CPU密集型功能:並行運行的許多功能,並收集所有結果以列表
def entity_intersections(ent, collidable):
intersections = []
for line1, line2 in product(ent.shape, collidable.shape):
pair_intersections = find_intersections(line1 + ent.position, ent.velocity, ent.acceleration, line2 + collidable.position, collidable.velocity, collidable.acceleration, ent, collidable)
intersections.extend(pair_intersections)
return intersections
我要讓所有的呼叫並行find_intersections
運行,讓他們執行更快,同時仍然收集所有結果(一旦所有執行完成)。考慮到find_intersections
是pure function,什麼庫會允許我這樣做?
如何生成這些並行執行以及收集結果的例子將不勝感激。
你的研究表明什麼是一個合適的Python庫? – Marcin 2012-03-22 15:51:55
@Marcin對於性能增強,有一個非常大的選擇:幾個並行處理庫之一(包括2個python內置庫),重新編譯爲協程,Cython等。並行處理不是我的強項...... – Darthfett 2012-03-22 21:33:51
是的,有很多 - 爲什麼不讀一些文件,然後問你什麼時候不能決定幾個好的候選人之間的問題。 – Marcin 2012-03-22 21:35:08