最近在学习MATLAB并行计算,发现关于这方面的博客比较少,要么就时间比较久远,matlab版本更新了,原来的代码函数无效。要么就写的比较简单,只解释了并行两个字的大体意思。所以就决定自己在学习的时候,分享一些学习资料。

与普通并行计算数据类型(同体变量、异体变量和独有变量)相比,分布式阵列与申行程序 中的 Matlab阵列差异最大。因此,分布式Matlab阵列的创建和使用比较复杂。鉴于分布式阵列在 Matlab并行程序设计中拥有的重要作用,有必要对其进行详细说明。

分布式阵列的特点

分布式阵列拥有统一的变量名,但变量的数据内容分布在各工作单元worker上。
通过分布式阵列可以达到两个目的:
一是可以将数据分布存储到各工作单元中,降低对单个工作单元硬件配置的要求;
二是通过分布式阵列简化 Matlab客户端、各工作单元之间的数据传输方式。

Matlab如何分割分布式阵列?

parpool();
spmdA=rand(100,300);%默认情况下,按列分割B=codistributed(A);B
end
%通过创建 codistributor1d类创建用户自定义分割方式
spmd
A=rand(100,300);
%按行分割,每个计算单元分配50行数据
codist=codistributor1d(1, [50 50]);
%对于codistributor1d,第一个参数 1按行,2按列(默认),
%第二个参数是分配情况,这里是分配给lab1 50行,lab2 50行,
%此处省略的第三个参数,是整体的大小。
B=codistributed(A, codist);
B
end

Matlab如何显示分布式阵列?

在client和worker中, Matlab显示分布式阵列的方式不同。另外,在不同的并行结构中,分布式阵列的显示方式也不相同。下面分别针对
parallel jobSPMD并行结构进行说明。

1.parallel job中
由于参考书籍是2012年出版的,笔者在看这部分的时候,输入源代码,在MATLAB 2019a中无法运行,便到官网查找是否有关于parallel job相关的,最新的官方文档是没有这部分内容的,因此涉及到这个的,我们暂时先跳过。

2.SPMD中
在SPMD并行结构内部显示分布式阵列时, Matlab按照工作单元端方式进行显示。在SPMD并行结构外部显示分布式阵列时, Matlab按照客户端方式进行显示。在 Matlab客户端,可以通过 distributed对象方便地查看分布式阵列。下面通过 disp Codistributed Arrayspmd实例代码进行说明。

function dispCodistributedArray_spmd()
%function dispCodistributedArray_spmd()
parpool(2);
spmdA = ones(2,2)*labindex;part = ones(1,numlabs)*2;codist = codistributor1d(2,part,[2 sum(part(:))]);A = codistributed.build(A,codist);%在工作单元中显示分布式变量Adisp(A);
end
%在Matlab Client端显示分布式变量A
disp(A);
delete(gcp('nocreate'));

在 Matlab中,分布式阵列是一个对象。localpart和 codistributor是分布式阵列的两个属性。 localpart属性表示当前工作单元中分配的数据, codistributor对象则包含了默认的或者用户指定的分布式阵列的分割方式。SPMD并行结构中,在 Matlab client端通过 distributed对象査看分布式阵列非常方便,用户几乎可以忽略分布式阵列与一般 Matlab阵列之间的差别。

在Matlab客户端创建分布式阵列

在 Matlab client端分布式阵列一般由 distributed对象操作,在 Matlab并行程序中,分布式阵列一般由 codistributed阵列操作。
distributed阵列和 codistributed阵列本质上是完全相同的,只是创建机理和访问位置不同。
distributed阵列实际上是在 Matlab客户端构建,将数据分割后发送到各个lab中,而 codistributed阵列实际上是在并行计算单元中创建的。
只有在SPMD并行结构中, distributed阵列和 codistributed阵列才能互相访问。在其他并行结构中,需要将 codistributed阵列转换为其他类型的阵列才能在Matlab client端访问。

未完待续

Matab分布式阵列相关推荐

  1. 麦克风阵列能干这么多事你知道吗?

    转载自: http://www.a-site.cn/article/128846.html 麦克风阵列(MicrophoneArray),从字面上,指的是麦克风的排列.也就是说由一定数目的声学传感器( ...

  2. 聊一聊麦克风阵列技术:语音交互应该选用怎样的方案?(转载)

    转自:http://news.soundai.com/?id=7 雷锋网(公众号:雷锋网)按:本文作者陈孝良,工学博士,声智科技创始人.雷锋网独家文章. 亚马逊Echo和谷歌Home争奇斗艳,除了云端 ...

  3. 普通麦克风和多阵列麦克风的区别

    普通麦克风是指单个的麦克风.或者说多个麦克风但是这些麦克风之间没有加入处理电路或芯片, 那么这些也是普通麦克风. 麦克风阵列是多个麦克风按一定方式排列在一起,由于加入芯片,像昆虫的复眼一个能够精确定位 ...

  4. 基于麦克风阵列的声源定位算法之GCC-PHAT

    目前基于麦克风阵列的声源定位方法大致可以分为三类: 基于最大输出功率的可控波束形成技术 基于高分辨率谱图估计技术和基于声音时间差(time-delay estimation,TDE). 基于TDE的算 ...

  5. 麦克风声源定位原理_基于麦克风阵列的声源定位算法之GCC-PHAT

    目前基于麦克风阵列的声源定位方法大致可以分为三类:基于最大输出功率的可控波束形成技术.基于高分辨率谱图估计技术和基于声音时间差(time-delay estimation,TDE)的声源定位技术. 基 ...

  6. 多麦克风做拾音的波束_语音交互:先从麦克风阵列聊起

    随着智能音箱.智能家居等智能硬件的普及,语音交互热度也不断飙升.想要了解语音交互,第一步是了解麦克风阵列,本文从概念.分类.作用几个方面对麦克风阵列展开了说明,与大家分享. 语音交互从亚马逊音箱(Ec ...

  7. 多麦克风做拾音的波束_【语音交互】先从麦克风阵列聊起

    语音交互从亚马逊音箱(Echo)诞生的那一刻,就逐步走进了人们的视野,越来越多的人开始接触到语音交互的设备.从电视里的机器人,到家里的音箱,最后到手上的手机,语音交互变得触手可及. 语音交互的第一步就 ...

  8. 微信语音技术原理_智能语音技术中麦克风阵列的原理

    麦克风阵列(Microphone Array),从字面上,指的是麦克风的排列.也就是说由一定数目的声学传感器(一般是麦克风)组成,用来对声场的空间特性进行采样并处理的系统. 早在20世纪70.80年代 ...

  9. 全球量产麦克风阵列的阵型技术盘点(转)

    转自:http://bbs.elecfans.com/jishu_1628138_1_1.html 1.Amazon Echo 不管第一代还是第二代,Echo都采用典型的6+1麦克风阵列结构,即环形6 ...

最新文章

  1. JSP与Web技术概论
  2. 干货|深度!“人工智能+制造”产业发展研究报告
  3. lib(静态库)和dll(动态库)的生成和使用详细说明以及注意事项
  4. linux中更改文件所有者
  5. lintcode-171-乱序字符串
  6. MathType输入补集符号的步骤有哪些
  7. mysql explain using_[MySQL] explain中的using where和using index
  8. Linux下配置DNS
  9. python发邮件详解_python实现发送邮件详解
  10. c# mysql 中文,c#操作mysql中文乱码的解决方案_c#应用
  11. python爬虫代码示例 动态_python动态爬虫的实例分享
  12. kotlin版本组件化+mvvm项目架构
  13. python制作奖状,从excel表格中导出数据,取前20名,做成png奖状,再放入ppt中
  14. mysql数据恢复(根据.ibd文件恢复数据)
  15. Unity零基础到入门 ☀️| Unity下载安装---使用UnityHub下载各个版本的Unity(收藏)
  16. APP上架到各大应用商店的小总结
  17. Leetcode Hot-100
  18. [leetcode]: 506. Relative Ranks
  19. NTSC色域(CIE1931)计算公式
  20. 不可不知的潮流文化、新词汇, 00后聊天词汇

热门文章

  1. 开源者的自我修养|为 ShardingSphere 贡献了千万行代码的程序员,后来当了 CEO...
  2. Sentinel降级服务
  3. 【机器学习】浅谈 归纳偏置 (Inductive Bias)
  4. Catalan数的分析和应用
  5. shell 的一个小 脚本模板实现hosts添加
  6. python三角形代码初中_python三角形
  7. linux下搜索文件和文件夹
  8. AppStore隐私政策网址(URL)
  9. 航空工装的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  10. matlab绘制双叶双曲面,应用MATLAB绘制二次曲面图.doc