使用多处理模块

时间:2018-03-22 05:41:07

标签: python python-multiprocessing

问题:    在可用内核之间并行化CPU密集型任务,并行化的功能需要复杂的对象(只读),每个对象都有其他对象的列表/元组/字典作为属性。

栏:   使用多处理,可以产生并行进程,但它们比单进程版本慢100倍,我觉得这是由于所需对象的序列化/复制。

问题:    什么应该是在进程之间共享复杂对象的正确方法,使用Queue似乎是反直觉的,因为锁/信号量会出现在图片中,我也不确定我是否能够将复杂对象放入其中。

不确定是否使用多处理数组/值,因为它们似乎是针对本机C类型的。

如果我想继续执行远程管理器,我的模块所需的所有对象是否只在管理器进程内创建,还是可以分配给管理器代理类/类? 例如:

manager_obj = Some_Manager.Object_Class_Name(already_existing_object)

另外,在Linux中,copy-on-write对我来说不起作用,我仍然可以看到分叉的进程消耗了大量的内存。

0 个答案:

没有答案