Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Redis与大规模并行增量_Python_Redis_Sparse Matrix - Fatal编程技术网

Python Redis与大规模并行增量

Python Redis与大规模并行增量,python,redis,sparse-matrix,Python,Redis,Sparse Matrix,我正在编写一个python软件来构建稀疏矩阵。其大小可以是10.000 x 10.000到30.000 x 30.000。到目前为止,我使用scipy.sparse实现它,但这相当困难,因为我希望以多进程的方式构建它 到目前为止,我有一个进程可以向工作进程发送数据,还有一个“矩阵进程”可以从工作进程接收要递增的单元格(我不想在每个工作进程中复制矩阵) 好吧,假设我不满意 我想使用Redis来存储稀疏矩阵,并调用“inc2:3”来增加单元格(2,3)。然后,当所有worker都完成时,我可以通过检

我正在编写一个python软件来构建稀疏矩阵。其大小可以是10.000 x 10.000到30.000 x 30.000。到目前为止,我使用scipy.sparse实现它,但这相当困难,因为我希望以多进程的方式构建它

到目前为止,我有一个进程可以向工作进程发送数据,还有一个“矩阵进程”可以从工作进程接收要递增的单元格(我不想在每个工作进程中复制矩阵)

好吧,假设我不满意

我想使用Redis来存储稀疏矩阵,并调用“inc2:3”来增加单元格(2,3)。然后,当所有worker都完成时,我可以通过检索所有键来检索矩阵,以便构造scipy.sparse(值等于0的单元格将没有任何键)

要构建一个矩阵,它需要大约500.000.000.000 inc操作,以及大约30个工作进程。这是一个上限,因为它也将用于较小的计算,比如45000.000 inc操作和3个工人

你认为Redis在这项工作上会比scipy.sparse好吗?或者你还有其他建议吗


谢谢

考虑让每个工作人员计算稀疏矩阵的一部分,然后由一个“联合”工作人员将每个稀疏矩阵合并成一个(也是稀疏的)更大的矩阵。使用“多处理”意味着您可以并行执行多个CPU限制的任务,并直接对矩阵进行操作,而不是使用Redis INC命令来回操作。看:旧版本的软件就是这样工作的。不幸的是,“加入”太慢了。你有没有研究过redis的功能?这取决于用例,这里涉及的统计数据。但是,速度非常快。