当前位置:  开发笔记 > 编程语言 > 正文

英特尔TBB的Scalable_allocator如何工作?

如何解决《英特尔TBB的Scalable_allocator如何工作?》经验,为你挑选了1个好方法。

什么是tbb::scalable_allocator英特尔线程构建模块实际上是引擎盖下呢?

它肯定是有效的.我刚用它来采取25%的折扣的应用程式的执行时间(并看到在CPU利用率从〜200%4核系统上增加至350%),通过改变单个std::vectorstd::vector >.另一方面,在另一个应用程序中,我看到它将已经很大的内存消耗加倍并将内容发送到交换城市.

英特尔自己的文档并没有给出太多帮助(例如本常见问题解答末尾的简短部分 ).在我自己去挖掘代码之前,谁能告诉我它使用了什么技巧?

更新:刚刚第一次使用TBB 3.0,并且从Scalable_allocator看到了我最好的加速.改变单一vectorvector >(从测试的Debian莱尼,核2,与TBB 3.0)的从85S东西35S减少的运行时间.



1> amit..:

分配器上有一篇很好的论文:英特尔线程构建模块中可扩展多核软件的基础

我的经验有限:我用我的AI应用程序用tbb :: scalable_allocator重载全局new/delete.但时间档案几乎没有变化.我没有比较内存使用情况.


要添加数据点:在我的特定应用程序中,分配器争用在大约15个线程停止加速,超过它将终止所有加速,到40将比单线程慢得多.在内部每线程内核中使用`scalable_allocator`,瓶颈消失了,预期的缩放又回来了.(机器有40个物理核心).
原始链接现已解散,但CiteSeer有PDF:http://citeseerx.ist.psu.edu/viewdoc/summary?doi = 10.1.1.71.8289
谢谢!文章包含我正在寻找的那种信息.
推荐阅读
贴进你的心聆听你的世界
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有