我是 python 新手,开始使用遗传算法 (GA) 来进行某种曲线拟合。对于那个 GA,我正在使用(很棒的)pyevolve 库(http://pyevolve.sourceforge.net/),它能够通过使用多处理来极大地减少计算时间。
这就是我的问题出现的地方:我想要近似的曲线是一个从 excel 文件中读取并在我的程序开始时存储为全局变量的数组。使用 python 多处理模块时,每个进程都会使用自己的全局变量创建自己的 python 实例。这会导致每一代算法(意味着每个进程)中的每个人一次又一次地打开和读取 excel 文件。打开大的 excel 文件可能会花费大量时间,因此只需打开该文件一次并让每个进程/个人都可以使用读取数组会很好。
多处理是在 pyevolve 库中启动的,我不想更改它以使其易于更新。不幸的是,这意味着只需通过例如将变量传递给进程池
p = Process(target=my_func,args=(my_array))
不是我的选择。这是迄今为止我找到的唯一解决方案。
有谁知道另一种让 my_array 可以从每个进程访问的方法?