使用MATLAB并行计算功能提高多核系统性能

2009-12-13 22:12:11| 分类:matlab相关| 标签:|字号大中小订阅

maxNumCompThreads 命令

由于处理器时钟频率的限制,增加核并不意味着是计算性能的提高。为了充分利用新的多核硬件在性能上的优势,软件的基层结构需要向并行计算转换。MATLAB并行计算工具箱就是这种需求的产物,它能很好地实现在多核系统上进行并行运算。文章以典型的数值计算问题为例描述如何使用基本的两种并行

运算方式:线程和并行for循环。

典型数值计算问题

为了举例说明这两种方法,我们使用MATLAB 测试一个有关Girko圆定律的假设。Girko圆定律的内容是:一个N×N的随机矩阵(它的元素服从正态分布)的特征值位于半径为的圆内。假设Girko圆定律能被修改应用到奇异值上。这个假设是合理的因为奇异值是一个变换了的矩阵的特征值。首先我们用

MATLAB代码实现Girko圆定律的一个实例:

N = 1000;

plot(eig(randn(N)) / sqrt(N), ‘.’);

这段代码运行后得到图1,图上每个点代表复平面上一个特征值。注意所有的特征值都位于半径为1 ,圆心在轴的原点的圆内,特别指出的是结果与Girko圆定律是一致的,特征值的幅值没有超过矩阵维

数的平方根。

4a269608da28f517667d23df3ceb235a.png

图1 大小为1000的随机矩阵的特征值在半径为sqrt(1000)的圆内

为了将Girko定律应用到奇异值分解上,我们用MATLAB生成随机矩阵,然后估算它们的奇异值,看是否能基于数值计算阐明这个假设。我们用任意变量N计算max(svd(randn(N)))的值,然后在结果中寻找规律,而这个规律是可以用奇异值分解的理论解释的。

通过下面的循环产生正规随机矩阵,并计算它们的奇异值:

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐