我已经尝试根据/ 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,太…我猜对了吗?
获取由内存泄漏引起的内存溢出,并且应用程序继续运行和分配
如何检查连接到networking驱动器?
编辑大型二进制文件的事务模型
如何编写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。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。