我只想知道,如果有一种简单的方法来判断哪种应用可以在多核cpu上执行得更好?如Memcached,Redis,MySQL,Cassandra等。什么样的应用程序可以在多核cpu上执行得更好?
回答
Bruteforcing密码散列。
能够执行独立的计算什么...
财务应用程序和图形渲染应用浮现在脑海中。
它不需要任何特定的编程库/方法? – 2010-05-07 08:51:11
@Mickey Shine:有很多不同的库和方法可以进行多线程计算,因此不需要任何特定的库。 – derobert 2010-05-08 03:42:32
有各种各样的应用程序可以受益,但如果你想把它归结为一件重要的事情,那么我将不得不说任何利用多线程架构的应用程序。如果开发正确,应用程序线程可以同时在不同的内核上运行。诀窍是确保它们不会从过度锁定序列化。
非常简单的例子。
任何有可以分解的计算。假设你需要添加0-800,000的所有数字,并且你有一个8核心机器。
您可以设置8个循环来添加数字1-100,000; 100,001-200,000等......在每个核心上运行一个,将结果保存在一个变量中。即loop1,loop2等。然后在循环终止您的答案时将这些变量加在一起。
当然,在进行多线程的额外工作之前,应该执行简单的代数优化:-P – derobert 2010-05-08 03:43:41
- 1. 有什么我可以做的更好地利用CPU核心?
- 2. Storm Cluster中更多执行程序比CPU /内核的影响
- 3. 为什么make -j在通过比可用内核数量更多的数字时执行得更好?
- 4. GNOME应用程序可以自动执行吗?怎么样?
- 5. iOS应用程序可以在后台执行什么操作?
- 6. 可可:应用程序在后台使用更多的CPU?
- 7. 相同的Direct2D应用程序在“较慢”的机器上执行得更好
- 8. 这个LinQ语句可以运行多线程 - 使用更多的cpu核心
- 9. 单CPU单核处理器可以执行多任务吗?
- 10. 是否有可能在一个以上的CPU内核上同时执行单线程程序?
- 11. GPU可以用来运行在CPU上运行的程序吗?
- 12. 为什么我的多线程插入程序比单个线程插入程序执行得更好?
- 13. 为什么我的程序在我的CPU设备上运行得比在我的GPU设备上快得多?
- 14. 是否可以在单核多核计算机上运行多线程应用程序?
- 15. 什么样的脚本或应用程序可以在启动时可靠执行?
- 16. (为什么)Tomcat/Java在Linux上比在Windows上执行得更好?
- 17. 我们可以为iPhone开发什么样的应用程序?
- 18. 什么样的应用程序,我可以开发Android穿
- 19. 我可以用什么样的脚本来更新应用程序?
- 20. OpenMP线程在相同的CPU核心上执行
- 21. .Net4应用程序中的.Net4应用程序在x86中执行得比在AnyCpu模式下更好?
- 22. gdb可以用什么样的程序进行调试?
- 23. 当CPU密集型应用程序在后台运行时执行多核编程?
- 24. 在Mac OS X上执行线程,强制执行多个CPU
- 25. Java应用程序的多核CPU利用率
- 26. 是否可以使用CPU上的单个核心运行Tensorflow?
- 27. 为什么我的应用程序执行从上到下
- 28. Windows安装程序可以像普通应用程序那样执行逻辑
- 29. nginx - 更多的核心或更好的CPU?
- 30. 为什么单个线程进程在多个处理器/内核上执行?
任何处理可分割工作负载的应用程序,其作者已花费精力分割该工作负载。一个例子是视频编码(例如mencoder)。 这是否真的属于超级用户? – derobert 2010-05-07 02:56:13
谢谢,但我只是想从编程的角度来看这个问题 – 2010-05-07 03:01:03
从编程的角度来看,您应该看看应用中计算量大的部分使用的算法,并询问“这个工作负载是否可以分开在N个大多数独立的计算线程之间?“ – derobert 2010-05-08 03:40:53