掌握TBB并发编程

Find AI Tools
No difficulty
No complicated process
Find ai tools

掌握TBB并发编程

Table of Contents

📚 简介

🛠 TBB的工作原理

👓 TBB程序的创建

👥 TBB任务的调度

🚀 TBB的工作窃取

🎯 TBB的优势

💡 TBB库的组成

📦 TBB基本算法

🔄 TBB高级算法

🗄 TBB容器

🖇 TBB并发模式

💻 TBB支持的系统

🌐 相关链接

📑 Cilk与Cilk Plus

💿 Intel parallel studio XE

💹 Intel数据分析加速库

简介

委员会建立的线程块TBB是英特尔为了多核处理器上的并行编程而开发的C++模板库。使用TBB,计算被分解成可以并行运行的任务,该库管理和调度线程来执行这些任务。TBB程序创建、同步和销毁依赖任务的图形,并且执行任务保证图形依赖性这种方法将TBB归类为并行编程解决方案的一个系列,旨在将编程与底层机器的特定性分离。TBB实现了工作窃取以在可用处理器内的平行工作负载中平衡负载,从而增加核心利用率,因此扩展了负载。最初负载在可用处理器之间均匀分配,因为如果一个核心完成其工作,而其他核心仍然在工作队列中有大量工作,TBB将从繁忙核心之一重新分配一部分工作到空闲核心,这种动态能力将程序员与机器分开,使使用该库编写的应用程序可以扩展到利用可用的处理核心,而不需要更改源代码或可执行程序文件。2008年普林斯顿大学的研究人员对TBB中工作窃取实现进行评估,发现在32个核心系统上运行某些基准测试时,这种方式对于大量处理器来说并不是最佳选择,导致高达47%的计算时间花在调度开销上。

🛠 TBB的工作原理

Intel TBB是一个用于并行编程的组件集合,包括基本算法、高级算法以及容器等。

👓 TBB程序的创建

TBB程序创建、同步和销毁依赖任务的图形,并且执行任务保证图形依赖性。

👥 TBB任务的调度

TBB实现了工作窃取以在可用处理器内的平行工作负载中平衡负载,从而增加核心利用率,因此扩展了负载。

🚀 TBB的工作窃取

如果一个核心完成其工作,而其他核心仍然在工作队列中有大量工作,TBB将从繁忙核心之一重新分配一部分工作到空闲核心,从而使程序可以扩展到利用可用的处理核心。

🎯 TBB的优势

TBB能够使应用程序扩展到利用可用的处理核心,而不需要更改源代码或可执行程序文件。但对于大量处理器来说,并不是最佳选择,导致高达47%的计算时间花在调度开销上。

💡 TBB库的组成

TBB库的组成包括基本算法、高级算法以及容器等。

📦 TBB基本算法

TBB的基本算法包括parallel_fir、parallel_reduce、parallel_scan等。

🔄 TBB高级算法

TBB的高级算法包括parallel_while、parallel_do、parallel_pipeline、parallel_sort等。

🗄 TBB容器

TBB提供的容器包括concurrent_queue、concurrent_priority_queue、concurrent_vector、concurrent_hash_map等。

🖇 TBB并发模式

TBB实现了互斥、原子操作、任务调度等并发模式。

💻 TBB支持的系统

TBB商业版3.0支持Windows XP或更新版本,OS X 10.5.8或更高版本以及使用Visual C++ 8.0或更新版本的Linux。另外,TBB开源社区还为Solaris、PC、Xbox、QNX Neutrino和FreeBSD贡献了补丁。

相关链接

以下是与TBB相关的一些链接,包括Cilk与Cilk Plus、Intel Parallel Studio XE、Intel数据分析加速库等。

📑 Cilk与Cilk Plus

💿 Intel parallel studio XE

💹 Intel数据分析加速库

Most people like

Are you spending too much time looking for ai tools?
App rating
4.9
AI Tools
100k+
Trusted Users
5000+
WHY YOU SHOULD CHOOSE TOOLIFY

TOOLIFY is the best ai tool source.