我已经尝试根据/ proc / cpuinfo为我的应用程序确定处理器关联性规则,我的redhat linux显示
processor : 0 to 47,means server has 48 processor unit physical ID : 0 to 3,means server has 4 cpu sockets cpu cores : 6,means each socket has 6 cores siblings : 12,means each core has 2 hyperthreads
所以总的来说,这个服务器有4 * 6 * 2 = 48个处理器单元,到目前为止我是否正确?
我喜欢做的是使用sched_setaffinity函数,首先我想知道的是在同一个核心的超线程,例如… … –
processor 0 : physical ID:0,core ID: 0 ... processor 24 : physical ID:0,core ID: 0 ...
如果在我的应用程序中,我使用thread1中的cpu_SET(0,&mask),thread2中的cpu_SET(24,&mask),那么我可以说thread1和thread2将共享相同的L1caching,当然共享相同的L2caching,太…我猜对了吗?
用min()/ max()调用的代码奇怪的C ++错误
获取由内存泄漏引起的内存溢出,并且应用程序继续运行和分配
如何检查连接到networking驱动器?
即使在获得崇高的文本输出后,如何保持命令提示符打开2
编辑大型二进制文件的事务模型
如何编写testing应用程序来完全加载cpu?
AuthnProvIDerAlias ldap可以使用Apache2.4.x吗?
如何使用WMPlib中的WMPEqualizerSettingsCtrl?
使用MAP_norESERVE的mmap是否保留物理内存?
我应该如何理解“> outfile 2>&1”和“2>&1> outfile”?
如果你的线程被安排在同一核心(即不同的超线程)上,那么你只能保证完全共享的缓存,在这种情况下你的方法是正确的。
但请记住,在同一内核上安排两个任务不一定会让他们运行得更快,如果您将其安排在不同的内核上。 所有核心之间共享的L3速度非常快。
您需要检查处理器之间共享缓存的方式。 大多数英特尔处理器在所有核心之间共享2-4核心和L3中的L2,而大多数AMD型号仅共享L3。
总结以上是内存溢出为你收集整理的cpuinfo来决定处理器的亲和力全部内容,希望文章能够帮你解决cpuinfo来决定处理器的亲和力所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)