我已经在网站上搜索,但不确定哪些术语会产生相关答案,如果这个问题是重复的,我深表歉意。
我需要处理一个非常大的矩阵(14,000,000 * 250,000),并希望利用Python的multiprocessing模块加速处理。对于矩阵中的每一对列,我需要应用一个函数,然后将结果存储在专有类中。
我将实现一个双重四循环,提供所需的列组合。
我不想将池子里负载250,000个任务,因为我担心内存使用量会很大。理想情况下,我希望有一列,然后将其分配到池中,即进程1获取A列和B列,然后函数F获取A,B和G并将结果存储在Class G[A,B]中,进程2获取A列和C列,以此类推。
进程将永远不会访问G的相同元素。
因此,我希望每N个任务暂停循环。G的set/get方法将被覆盖以执行一些后端任务。
我不明白的是是否有必要暂停循环?即Python是否足够聪明以仅获取它可以处理的内容?还是将填充大量的任务?
最后,我不清楚结果的工作方式。我只希望将它们设置在G中,并且不返回任何内容。我不想担心.get()等问题,但据我所知,池方法返回结果对象。我可以忽略这个吗?
有更好的方法吗?我完全迷失了吗?