gpt4 book ai didi

java - 大型网络迭代 - 并行性?

转载 作者:搜寻专家 更新时间:2023-11-01 03:44:11 26 4
gpt4 key购买 nike

我正在编写一种算法来衡量大型网络在独立攻击下的稳健性。该网络有大约 2000 个节点,面临 10^8 次攻击。最初我在 Matlab 中实现了我的解决方案,但是太多的迭代(10 ^ 8)没有成功。每一次迭代都试图通过提高鲁棒性来重新连接网络。

简单并行的问题在于,每次重新连接网络时,新的迭代都会在重新连接的网络上运行。

我不确定如何在这里实现高度并行性以便高效地运行我的算法。目前没有并行性,我相信大约需要 1477 天。

最佳答案

每次迭代大约需要 1.25 秒。 (大约 40 亿个时钟周期)这听起来很长,必须有机会优化您正在做的事情并将其减少到毫秒。优化代码通常比并行化更能提高性能。 (因为并行化代码受限于您拥有的免费硬件数量以及协调多个 CPU/系统的开销)

你有多少硬件?如果您的进程受 CPU 限制,那么如果您有 N 个 CPU,您将使应用程序最多快 N 倍。

假设您有足够的硬件,例如玩 2048 个 CPU,花 1 天时间是可以接受的。无需假设您需要进行完全忠实的端到端测试,您可以以不同的随机/可能配置启动网络。对每个网络独立运行 10^5 次攻击,并检查您的结束状态是否与另一次运行的开始状态紧密匹配。也就是说,理论上您可以端到端地将结果连接在一起。


根据您需要多少内存,您可能会发现塔式服务器最具成本效益。

您可以花 354 英镑购买配备 Xeon Quad 2.5 GHz 和 4 GB 内存的服务器。这对金钱来说是很大的力量。

但是,如果您可以访问现有资源,您可能会过得更好。例如您是否在一家拥有 1,000 台未在夜间使用的台式机的公司工作? ;)

关于java - 大型网络迭代 - 并行性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6647995/

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