【发布时间】:2011-09-08 05:46:36
【问题描述】:
最近有人提出了一个问题,即一些 Python 代码试图通过使用腌制进程来促进分布式计算。显然,该功能在历史上是可能的,但出于安全原因,相同的功能被禁用。在第二次尝试通过套接字传输函数对象时,只传输了引用。如果我错了,请纠正我,但我不认为这个问题与 Python 的后期绑定有关。假设进程和线程对象不能被腌制,有没有办法传输可调用对象?我们希望避免为每个作业传输压缩的源代码,因为这可能会使整个尝试变得毫无意义。出于可移植性的原因,只能使用 Python 核心库。
【问题讨论】:
-
每当您发现自己在问“X 不允许出于安全原因;我该如何解决这个问题?”时,您应该准备好一个 详细说明您需要解决它的原因。安全是一件严肃的事情。
-
@Karl,这是一个很好的观点。说需要一种解决方法是夸大其词。我犯了一个错误,甚至建议了简单的出路。我会坚持下去,从 Artur 的建议开始。
-
如果代码是纯python,那么它与python核心库一样可移植。我有一个纯 Python 序列化程序,它可以腌制任何可调用的……它被用作纯 Python 并行和分布式计算库的主干。它是可移植的……并且可以构建分层并行和分布式并行映射和管道的网络。我的观点是,如果一个包是纯 python,你不应该排除它——如果它还没有安装,你只需将它安装到分布式集群上的用户区域。查看
dill包,它基本上是picklecopy_reg调用的集合。
标签: python distributed-computing