我想知道一个没有线程的简单程序是否可以在一些拥有多个内核的计算机上运行得更快?还是在Linux服务器集群上? 最近我运行了我的算法,它必须在我的PC上处理数十亿个IP数据包(核心i7,内存为16GB),完成处理需要1881分钟。然后我认为在Linux服务器集群上运行算法很好,每个节点有10个处理器和48GB RAM,以便更快地获得结果。但是,两个实验之间没有太大的区别。 有人可以评论我遗失的内容吗?
答案 0 :(得分:2)
除非你的算法实际上使用了那些多个实例和额外的内存,否则不应该有很多区别。并行编程本身就是一门艺术,而且常规的单线程程序本身并不只是变为并行编程。
答案 1 :(得分:0)
如果你有一个执行线程,更多内核,CPU或机器将无济于事。只有更快的CPU才能加快速度,并且只有当您的进程受CPU限制且不受IO限制时才会加速。
首先,您应该检查处理时间,CPU或等待IO。如果您有大量的CPU使用率,您可以尝试并行化您的工作,即将数据拆分为块,并具有不同的线程响应。机器并行处理它们。