分布式数组的使用方式,挺适合做大规模并行计算的。如果你平时用 MATLAB 搞并行,像 spmd
或者 distributed
这些概念,你已经碰到过。
分布在 lab 上的数组,操作方式其实蛮直觉的。你可以直接在客户端把普通数组转成 distributed
,也可以在 spmd
语句里搞 codistributed
,灵活度还不错。重点是,两个可以互相访问,不用重复计算。
想快速创建?像 distributed.rand
、distributed.eye
这些方法挺方便的,生成出来就是分布式的,用起来顺滑。响应也快,适合做数据分片运算。
但要注意,distributed 是客户端发起的,codistributed 是在各个 lab 上主动创建的。概念上差异不大,但用法上要注意别搞混。
如果你是那种习惯把计算分开跑的,或者正好有个多核多节点的集群,建议你试下这套分布式数组的写法,能省下不少时间。
相关技术你也会用得上,像 Lab-Net 分布式测试平台 或者 Zookeeper 分布式协调服务 都是不错的补充。
哦对了,如果你在做数据分布优化,别忘了看看 分布式查询优化 这篇文章,也挺有干货的。