通过 MATLAB 处理大数据

原文链接:通过MATLAB处理大数据

大数据指的是创建的数据和供分析的数据的数量与速率迅速增加。大数据使分析师和数据专家有机会获得更好的见解,进行更明智的决策,但是它同时也会带来许多的挑战:可用的内存可能无法足以处理大数据集,可能需要花太久的时间进行处理或可能流动太快而无法存储标准算法通常不能以合理的时间或内存来处理大数据集等等。

目前没有任何一种单一方法可以处理大数据。为此,MATLAB提供了许多工具来解决这些挑战。


在MATLAB中处理大数据


1. 64位计算。

64位版本的MATLAB可快速增加内存中可保留的数据量 - 通常可达到任意32位程序的2000倍.32位程序限制您只能使用2 GB的内存,而64位MATLAB的内存可以达到操作系统的物理内存限制。对于Windows 8,台式机内存为500 GB,Windows Server内存为4 TB。


2.内存映射的变量。

借助MATLAB中的memmapfile函数,您可以将文件或文件的一部分映射到内存中的MATLAB变量。这样,您就可以高效访问磁盘上由于太大而无法保留在内存中或需要花太长时间而无法加载的大数据集。


磁盘变量。

matfile函数使您可以直接从磁盘上的MAT文件访问MATLAB变量(使用MATLAB索引命令),无需将全部变量加载到内存。这使您可以在大数据集上进行块处理,这些大数据集因为太大而无法保存在内存中。


4.内在的多核数学。

MATLAB中的许多内置数学函数,如fft,inv和eig都是多线程的。通过并行运行,这些函数充分利用计算机的多核,提供高性能的大数据集计算。


5. GPU计算。

如果您正在使用GPU,并行计算工具箱中的GPU优化的数学函数可以为大数据集提供更高的性能。


6.并行计算。

并行计算工具箱提供并行用于循环,该循环在多核计算机上并行运行您的MATLAB代码和算法。如果您使用MATLAB Distributed Computing Server,则可以在机器群集上并行执行,这些机器可扩展到数千台计算机。


7.云计算。

对于数百或数千台计算机的按需并行处理,您可以在Amazon Elastic Computing Cloud(亚马逊弹性计算云)(EC2)上使用MATLAB Distributed Computing Server并行运行MATLAB计算。借助云计算,您无需购买或维护您自己的群集或数据中心就可以处理大数据。


8.分布式阵列。

使用并行计算工具箱和MATLAB DistributedComputing Server,您可以处理分布在计算机群集内存中的矩阵和**数组。使用此方法,您可以针对因太大而无法由单台计算机内存处理的大数据集,进行存储和执行计算。


9.流式算法。

使用系统对象,您可以对因太大或太快而无法保留在内存中的数据传入流执行流式处理。此外,您还可以使用MATLAB编码器通过MATLAB算法生成嵌入式C / C ++代码,并针对高性能实时系统运行产生的代码。


10.图像块处理。

使用图像处理工具箱中的blockproc函数,您可以处理特别大的图像,方法是每次以模块的形式高效处理它们。与并行计算工具箱一起使用时,在多核和GPU上并行运行计算。


11. 机器学习。

机器学习有助于通过大数据集提取见解和开发预测性模型。广泛的机器学习算法,包括 Statistics and Machine Learning Toolbox 和 Neural Network Toolbox 中提供的促进式 (boosted) 。袋装 (bagged) 决策树、K 均值和分层聚类、k-最近邻搜索、高斯混合、期望最大化算法、隐马尔可夫模型和神经网络。

猜你喜欢

转载自blog.csdn.net/weixin_42633269/article/details/81865589