java中使用向量的点积

java中使用向量的点积,java,processing-efficiency,dot-product,Java,Processing Efficiency,Dot Product,我有一个非常大的矩阵大小(20K x 20K)或更多。我需要为两行的每一个组合应用点积,并按照从点积获得的值的降序列出行的组合。应用dot产品以尽量缩短执行所需时间的有效方法是什么 所以你会得到4亿个点产品,对吗?要计算它们中的每一个,您需要执行至少20K次乘法,因此您总共要计算8E+12次乘法?您是否对矩阵元素使用了double类型?您只需执行所有乘法和加法即可。例如,请参见处的公共双点(向量)。通过使用并行算法并将其分布在集群上,可以使其运行得更快,并且可以使用apachespark在内存中

我有一个非常大的矩阵大小(20K x 20K)或更多。我需要为两行的每一个组合应用点积,并按照从点积获得的值的降序列出行的组合。应用dot产品以尽量缩短执行所需时间的有效方法是什么

所以你会得到4亿个点产品,对吗?要计算它们中的每一个,您需要执行至少20K次乘法,因此您总共要计算8E+12次乘法?您是否对矩阵元素使用了
double
类型?您只需执行所有乘法和加法即可。例如,请参见处的公共双点(向量)。通过使用并行算法并将其分布在集群上,可以使其运行得更快,并且可以使用apachespark在内存中完成。图中显示了几种类型的点积并行算法。因此,您将获得大约4亿个点积,对吗?要计算它们中的每一个,您需要执行至少20K次乘法,因此您总共要计算8E+12次乘法?您是否对矩阵元素使用了
double
类型?您只需执行所有乘法和加法即可。例如,请参见处的公共双点(向量)。通过使用并行算法并将其分布在集群上,可以使其运行得更快,并且可以使用apachespark在内存中完成。中显示了几种类型的点积并行算法。