2010-05-07 35 views
1

我只想知道,如果有一种简单的方法来判断哪种应用可以在多核cpu上执行得更好?如Memcached,Redis,MySQL,Cassandra等。什么样的应用程序可以在多核cpu上执行得更好?

+2

任何处理可分割工作负载的应用程序,其作者已花费精力分割该工作负载。一个例子是视频编码(例如mencoder)。 这是否真的属于超级用户? – derobert 2010-05-07 02:56:13

+0

谢谢,但我只是想从编程的角度来看这个问题 – 2010-05-07 03:01:03

+0

从编程的角度来看,您应该看看应用中计算量大的部分使用的算法,并询问“这个工作负载是否可以分开在N个大多数独立的计算线程之间?“ – derobert 2010-05-08 03:40:53

回答

0

Bruteforcing密码散列。

1

能够执行独立的计算什么...

财务应用程序和图形渲染应用浮现在脑海中。

+0

它不需要任何特定的编程库/方法? – 2010-05-07 08:51:11

+0

@Mickey Shine:有很多不同的库和方法可以进行多线程计算,因此不需要任何特定的库。 – derobert 2010-05-08 03:42:32

0

有各种各样的应用程序可以受益,但如果你想把它归结为一件重要的事情,那么我将不得不说任何利用多线程架构的应用程序。如果开发正确,应用程序线程可以同时在不同的内核上运行。诀窍是确保它们不会从过度锁定序列化。

0

非常简单的例子。

任何有可以分解的计算。假设你需要添加0-800,000的所有数字,并且你有一个8核心机器。

您可以设置8个循环来添加数字1-100,000; 100,001-200,000等......在每个核心上运行一个,将结果保存在一个变量中。即loop1,loop2等。然后在循环终止您的答案时将这些变量加在一起。

+0

当然,在进行多线程的额外工作之前,应该执行简单的代数优化:-P – derobert 2010-05-08 03:43:41

相关问题