Parallel processing python中的For循环并行

Parallel processing python中的For循环并行,parallel-processing,python-multithreading,pp-python-parallel,Parallel Processing,Python Multithreading,Pp Python Parallel,我正在用python进行并行化。。我有一个大的计算需要并行。 起初我有一个大的for循环for(例如1000个粒子),所以我的过程不是独立的,我需要独立的过程来使它并行。所以我把for循环分成2个for循环计算出了500500个粒子,我需要在两个不同的核(处理器)上并行运行这两个独立的循环,这可能吗? 如果是,那怎么办?请分享一些指导 for i in particle1 some processes ...... print ( something) 第二环路 for i i

我正在用python进行并行化。。我有一个大的计算需要并行。 起初我有一个大的for循环for(例如1000个粒子),所以我的过程不是独立的,我需要独立的过程来使它并行。所以我把for循环分成2个for循环计算出了500500个粒子,我需要在两个不同的核(处理器)上并行运行这两个独立的循环,这可能吗? 如果是,那怎么办?请分享一些指导

for i in particle1
   some processes
   ......

 print ( something)
第二环路

for i in particles2
    someprocess....

print (something1)
现在我想把这两个不同的过程结合起来

所以

 print (something + something1)

这是我非常想做的。。请分享想法。

有两种可能——多线程和多处理。多线程处理更方便,因为它允许您在所有工作线程之间自动共享全局状态,而不是显式地传递全局状态。但是在Python中,一种叫做“全局解释器锁”(GIL)的东西使得多个线程实际上很难并行工作;它们往往会相互阻塞,一次只有一个线程在工作。多处理需要更多的设置,并且您必须显式地四处传输数据(这可能会很昂贵),但在实际使用多个处理器时更有效

concurrent.futures
模块可以利用多线程和多处理,从而实现基于任务的并行性。这可能会让你的头脑变得复杂,但一旦你做到了,这是编写多处理器代码的最有效的方法


最后,如果for循环对一组数据执行相同的数学运算,则应该查看
numpy
,并对数据进行矢量化。这是最困难的方法,但它也会给你最好的性能。

谢谢你的回答,但我使用了多处理,但我必须在不同的核心中定义我的2个进程,我不知道,你能给我一些例子,我的for循环,如何划分它,如果可能的话。。