服务器有32个线程,如果我采用多进程做并行计算,采用多少个进程合适?


进程线程 傻傻分不清楚 哈哈~

电脑好像都有多少个线程一说~

服务器有32个线程,如果我采用多进程做并行计算,采用多少个进程合适?

理论上进程开多少个和线程的数量无关~

为保证靠谱地高效率计算,开多少个进程合适呢

多谢:)

进程 多线程 计算机科学 并行

冰蓝soul 10 years ago

我觉得,按能力来说,有多少就用多少 > 尽可能多得用 > 只用几个 > 单核。不过你的问题太模糊了。

抽风似的微笑 answered 10 years ago

我觉得你还是要搞懂几个概念的,否则真如评论所说,你的问题没有什么针对性,大家也没法做讨论。
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已经满了。
我觉得你需要、有必要搞懂这些概念之后,你也许才更清楚自己想要做的是什么,问的问题也会更有针对性。

晚风吹过茅坑板 answered 10 years ago

可以自己顶 吗?

人家是鹦鹉酱 answered 10 years ago

Your Answer