gpt4 book ai didi

java - 我应该在统计计算中考虑并行性吗?

转载 作者:搜寻专家 更新时间:2023-11-01 02:17:21 25 4
gpt4 key购买 nike

我们将用 Java 实现用于各种统计分析的软件。主要概念是获取图形上的点数组,然后遍历它并找到一些结果(例如寻找最长的上升序列和各种指标)。

问题:大量数据

问题 2:还必须在客户端的 PC 上工作,而不仅仅是服务器(无法进行特定的服务器调整)

部分解决方案:在后台进行计算,让用户盯着空屏幕等待结果:(

问题:有没有办法使用并行提高计算本身的性能(大量迭代)?如果是这样,请提供文章、示例以及此处可用的任何内容的链接...

最佳答案

使用并行处理的要点是存在大量数据大型计算可以在没有彼此的情况下执行。例如,您可以通过将其拆分为 1..1000、1001..2000、2001..3000 等部分来计算具有多个线程的 10000 的阶乘,处理每个部分,然后使用 * 累加结果。 .另一方面,你不能拆分计算大斐波那契数的任务,因为后面的依赖于前面的。

同样适用于大量数据。如果您已经收集了点数组并想要找到一些具体点(比某个常数更大,最大)或者只是收集统计信息(坐标总和,出现次数),请使用并行计算。如果您需要收集“持续”信息(最长的上升序列)……好吧,这仍然是可能的,但要困难得多。

服务器和客户端 PC 的区别在于,客户端 PC 的内核不多,单核并行计算只会降低性能,不会提高。因此,不要创建比用户 PC 内核数量更多的线程(计算集群也是如此:不要将任务拆分为比集群中计算机数量更多的子任务)。

Hadoop's MapReduce 允许您高效地创建并行计算。您还可以搜索允许并行评估的更具体的 Java 库。例如,Parallel Colt实现了处理大矩阵的高性能并发算法,并且有很多这样的库用于许多数据表示。

关于java - 我应该在统计计算中考虑并行性吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4359734/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com