从在 Linux 上运行的 C/C++ 程序的角度来看,我对双 CPU 机器中的内存是什么样子感到有些困惑。
案例一(了解)
使用一个四核 HT CPU和 32GB RAM,理论上我可以编写一个单进程应用程序,使用多达 8 个线程和多达 32GB RAM,而不会进入交换或线程设施超载 - 我忽略了操作系统和其他为简单起见,此处处理。
案例2(混淆)
设置了 64GB RAM的双四核 HT CPU会发生什么?
开发方面,您是否需要编写一个应用程序以作为两个进程(8 个线程,每个 32GB)进行通信,或者您可以将其编写为一个进程(16 个线程,64GB 完整内存)?
如果答案是前者,那么利用整个硬件的一些有效的现代策略是什么?嘘?工控机?另外,如何指导 Linux 为每个进程使用不同的 CPU?