您现在的位置: 主页 > 嵌入式处理器 > FPGA > 适用于需要处理大型数据集的NI LabVIEW多核分析和稀疏矩阵工具包
本文所属标签:
为本文创立个标签吧:

适用于需要处理大型数据集的NI LabVIEW多核分析和稀疏矩阵工具包

来源: 网络用户发布,如有版权联系网管删除 2018-08-18 

  NI LabVIEW多核分析和稀疏矩阵工具包提供了高性能的LabVIEW多线程分析库,是在线或离线的大数据集处理应用的理想工具。实际上,许多现实世界的问题可以表示为大型线性代数计算,而该工具包可以为这些运算减少所需的资源和总体的计算时间。此外,该工具包包括稀疏线性代数函数,并支持单精度和双精度数据类型。本文介绍了LabVIEW多核分析和稀疏矩阵工具包的用途和推荐用法。

1. 高性能多线程分析

如前所述,NI LabVIEW多核分析和稀疏矩阵工具包提供了一系列高性能、多线程分析库,可以用来处理大型数据集。这些库是专为基于英特尔®数学内核函数库(Intel® MKL)的Windows 操作系统而设计的。该内核库是一个高度优化、多线程化的数学计算函数库,满足最高性能需求的应用。此外,当您将这个工具包与LabVIEW实时模块一同使用时,这些库可以被扩展到LabVIEW实时(ETS)的目标中。因此,用户能够使用多线程线性代数、基本线性代数子程序(BLAS)和基于快速傅立叶变换(FFT)的函数。

图1.多核分析和稀疏矩阵函数选板包含高性能、多线程分析以及稀疏矩阵代数函数。

 

图1.多核分析和稀疏矩阵函数选板包含高性能、多线程分析以及稀疏矩阵代数函数。

该工具包提供了各种函数库,每个函数可以更好地利用多核CPU。而且它还包含一组线程管理函数,因此用户可以调整应用程序的线程行为特性。

图2.线程管理函数选板包含有效管理线程的函数。

 

图2.线程管理函数选板包含有效管理线程的函数。

2. 管理线程

本节以两个矩阵相乘为例来介绍管理线程的方法。管理线程时,首要考虑的是执行函数的系统中可用的内核数。要获得目标系统的CPU特性,可以使用 CPU InformaTIon 函数。此外,线程管理函数选板中 的 Get Threads 函数可以在之后立即添加以获取可用线程的最大数量。此函数提供了线性代数、转置以及其它函数相关的可用线程的最大数量信息。这为每个线程或者线程组定义了作用域,并根据具体应用需求提供进一步的管理功能。

图 3. 获取处理器特性可以知道可用线程的最大数目

 

图 3. 获取处理器特性可以知道可用线程的最大数目

用户必须注意,LabVIEW使用线程的实际数量取决于具体问题的大小、系统资源,和其它因素。除非您指定一个较小的数值,在默认情况下,多核分析和稀疏矩阵VI使用物理内核数量作为线程的最大数。鉴于此,使用Set Threads函数可以设置任意数量的线程,但这一设置必须在并行执行实际代码之前完成。也就是说,程序的流程必须顺序执行,以便更好地控制为执行某一段代码所使用的线程数。我们不建议并行执行多个多核分析和稀疏矩阵库的函数。因此,在管理线程时需要密切观察,以避免出现类似于”超额认购”问题;当试图运行的线程数量超过可用的逻辑内核的数量时,就会出现这种问题。

图 4. 线程管理必须按照一定的顺序进行,以避免并行运行产生的性能问题

 

图 4. 线程管理必须按照一定的顺序进行,以避免并行运行产生的性能问题

这种编程架构可以继续扩展,以包含在其它函数域中的线程,或者为一段给定的代码重新分配线程。下图显示了在一台具有Intel i7 2600 四核 CPU的计算机上,对有不同线程数的矩阵相乘问题进行的性能基准测试。

图 5.在一台具有Intel i7 2600 四核CPU的计算机上为矩阵相乘运算进行计算时间和性能改进的基准测试

 

图 5.在一台具有Intel i7 2600 四核CPU的计算机上为矩阵相乘运算进行计算时间和性能改进的基准测试

此外,对于序列中不同的函数域,可以明确划分线程。例如,在一个四核系统中,有两个线程,一个可以分配给转置函数,另一个可以分配给除了转置函数以外的所有的其它函数。

图6.线程可以定义在不同的函数域中



              查看评论 回复



嵌入式交流网主页 > 嵌入式处理器 > FPGA > 适用于需要处理大型数据集的NI LabVIEW多核分析和稀疏矩阵工具包
 

"适用于需要处理大型数据集的NI LabVIEW多核分析和稀疏矩阵工具包"的相关文章

网站地图

围观()