Threading Building Blocks (TBB)

多核编程框架
授权协议 GPLv2
开发语言 C/C++
所属分类 程序开发、 其他开发相关
软件类型 开源软件
地区 不详
投 递 者 逄岳
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

在多核的平台上开发并行化的程序,必须合理地利用系统的资源 - 如与内核数目相匹配的线程,内存的合理访问次序,最大化重用缓存。有时候用户使用(系统)低级的应用接口创建、管理线程,很难保证是否程序处于最佳状态。

Intel Thread Building Blocks (TBB) 很好地解决了上述问题:

  • TBB提供C++模版库,用户不必关注线程,而专注任务本身。
  • 抽象层仅需很少的接口代码,性能上毫不逊色。
  • 灵活地适合不同的多核平台。
  • 线程库的接口适合于跨平台的移植(Linux, Windows, Mac)
  • 支持的C++编译器 – Microsoft, GNU and Intel
  • 并行与并发是相对的,OS里讲的是并发而在架构方面更多的是说并行。 并行是分多个层面的,个人认为基本上可以分为这么几个层面: 1、指令级的并行;即所谓的微程序、指令流水线等,现在cpu的一级缓存、二级缓存都很大,所以这个cache的效果还是比较好的(基于局部性原理) 2、线程级的并行;即同一个时刻多个函数在运行(现在的cpu好像都是多核的) 3、服务级别的(比如一个游戏服务器中有商店服务、也有战斗服

  • 编译安装: wget https://codeload.github.com/01org/tbb/tar.gz/2019_U3 tar zxvf 2019_U3 cd tbb-2019_U3 make cd build chmod +x *.sh sh generate_tbbvars.sh sh tbbvars.sh cd linux_intel64_gcc_cc5.3.0_libc2.17_k

  • 并行与并发是相对的,OS里讲的是并发而在架构方面更多的是说并行。并行是分多个层面的,个人认为基本上可以分为这么几个层面:1、指令级的并行;即所谓的微程序、指令流水线等,现在cpu的一级缓存、二级缓存都很大,所以这个cache的效果还是比较好的(基于局部性原理)2、线程级的并行;即同一个时刻多个函数在运行(现在的cpu好像都是多核的)3、服务级别的(比如一个游戏服务器中有商店服务、也有战斗服务、聊天

  • Intel® Threading Building Blocks官网 下载后解压,假设解压目录为tbb 1、跳转到tbb目录下,执行make命令。 cd tbb make 2、添加tbb变量 cd build chmod +x*.sh sh generate_tbbvars.sh sh tbbvars.sh 3、配置头文件及库文件 cd linux_intel64_gcc_你的版本_rele

 相关资料
  • 在本章中,我们将详细讨论面向对象的术语和编程概念.Class只是一个实例的工厂。 该工厂包含描述如何制作实例的蓝图。 从类构造实例或对象。 在大多数情况下,我们可以有一个以上的类实例。 每个实例都有一组属性,这些属性在类中定义,因此特定类的每个实例都应具有相同的属性。 类捆绑:行为和状态 类可以让您将对象的行为和状态捆绑在一起。 请注意以下图表以便更好地理解 - 在讨论课程包时,以下几点值得注意

  • 线程被定义为程序的执行路径。 每个线程定义一个独特的控制流。 如果您的应用程序涉及复杂且耗时的操作(如数据库访问或某些强烈的I/O操作),那么设置不同的执行路径或线程通常很有帮助,每个线程执行特定的工作。 线程是轻量级进程。 使用线程的一个常见示例是现代操作系统的并发编程的实现。 线程的使用可以节省CPU周期的浪费并提高应用程序的效率。 到目前为止,我们编译了程序,其中单个线程作为单个进程运行,该

  • 本文向大家介绍Python多线程编程(一):threading模块综述,包括了Python多线程编程(一):threading模块综述的使用技巧和注意事项,需要的朋友参考一下 Python这门解释性语言也有专门的线程模型,Python虚拟机使用GIL(Global Interpreter Lock,全局解释器锁)来互斥线程对共享资源的访问,但暂时无法利用多处理器的优势。在Python中我们主要是通

  • Qt5是由大量的模块组成的。一个模块通常情况下是一个库,提供给开发者使用。一些模块是强制性用来支持Qt平台的,它们分成一组叫做Qt基础模块。许多模块是可选的,它们分成一组叫做Qt附加模块,预计大多数得到开发人员将不会使用它们,但是最好知道它们可以对一些通用的问题提供非常有价值的解决方案。 1.3.1 Qt模块(Qt Modules) Qt基础模块是对Qt一台的必要支持。它们使用Qt Quick 2

  • 在本章中,我们将讨论Jasmine的测试构建块。 套房 Jasmine是JavaScript的测试框架。 Suite是Jasmine框架的基本构建块。 为特定文件或函数编写的类似类型测试用例的集合称为一个套件。 它包含另外两个块,一个是“Describe()” ,另一个是“It()” 。 One Suite块只能有两个参数,一个是“name of that suite” ,另一个是“Functio

  • 本文向大家介绍什么是多核编程?,包括了什么是多核编程?的使用技巧和注意事项,需要的朋友参考一下 多核编程有助于创建并发系统以部署在多核处理器和多处理器系统上。多核处理器系统基本上是在一个芯片中具有多个执行核心的单个处理器。它在主板或芯片上具有多个处理器。多处理器系统中可能包含现场可编程门阵列(FPGA)。FPGA是一种集成电路,其中包含一组可编程逻辑块和一个可重配置互连的层次结构。输入数据被处理以