服务器有32个线程,如果我采用多进程做并行计算,采用多少个进程合适?
进程线程 傻傻分不清楚 哈哈~
电脑好像都有多少个线程一说~
服务器有32个线程,如果我采用多进程做并行计算,采用多少个进程合适?
理论上进程开多少个和线程的数量无关~
为保证靠谱地高效率计算,开多少个进程合适呢
多谢:)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我觉得你还是要搞懂几个概念的,否则真如评论所说,你的问题没有什么针对性,大家也没法做讨论。
1) 进程和线程, 某度资料很多了,自己搜下可以看到。总之你能看到的在OS上的实体,都是进程的,线程只是进程内的运行实体,你只能通过编程来控制。 现在说的这些进程、线程都是传统意义上的POSIX标准的进程,了解完这些基本概念后,有机会你可以多读读OS方面的书,可以知道Linux上的线程其实是伪线程,http://www.ibm.com/developerworks/cn/linux/kernel/l-thread/。 而windows的线程是“真”线程。了解完这些之后,还可以了解下如Erlang、Golang这样的轻量级线程是怎么回事。
2) 并发和并行,这2个是不同的概念。你确定你的实现是基于并行而不是并发的吗? 区别http://blog.csdn.net/coolmeme/article/details/9997609
stackoverflow上的讨论 http://stackoverflow.com/questions/1897993/difference-between-concurrent-programming-and-parallel-programming
如果你程序够牛逼的话,当然是把所有的CPU core跑满,每个CPU上跑两个真正意义的线程就足够了,线程间的切换也是笔开销,听你的描述,貌似你的系统是个CPU敏感的程序,这时就不应该再有多process一说,跨IPC的开销比你想的要大,另外,很多程序的瓶颈根本不在CPU,往往是在IO上,所以你的情况下,最有可能出现的就是32核还没跑满,IO已经满了。
我觉得你需要、有必要搞懂这些概念之后,你也许才更清楚自己想要做的是什么,问的问题也会更有针对性。
我觉得,按能力来说,有多少就用多少
>
尽可能多得用>
只用几个>
单核。不过你的问题太模糊了。可以自己顶 吗?