在Matlab Parallel Cloud Worker上从Amazon S3读取数据

11个视图(过去30天)
乔恩酒
乔恩酒 2018年1月24日
评论道: 乔恩酒2018年7月5日
你好,我正在处理一个存储在Amazon S3上的大数据集。我的代码架构如下:
Matlab客户端调用Matlab并行云(我的默认集群是并行云,16工人):
r = 0 (100 1);
readTimes = r;
parfori = 1:10 0
[国际扶轮,readTimesi] = myProcess (i);
r (i) =国际扶轮;
readTimes (i) = readTimesi;
结束
流(“平均阅读时间%。”1 f秒\ n '意思是(readTimes));
每个工作人员都独立访问Amazon S3,以检索使用dataStore进行处理的数据。
函数[r, readTime] = myProcess(我)
%组S3凭证
setenv (“AWS_ACCESS_KEY_ID”“ID”);
setenv (“AWS_SECRET_ACCESS_KEY”“关键”);
setenv (“AWS_REGION”“us-west-2”);
%加载数据
fp = [s3: / / mybucket /数据/文件num2str(我). data的];
t =抽搐;
ds = fileDatastore (fp,“ReadFcn”, @AWSRead);
数据= ds.read;
readTime = toc (t);
%的过程
%……
r =意味着(数据);
结束
函数data = AWSRead(文件名)
fid = fopen(文件名);
=从文件中读数据(fid,正无穷,“短”);
文件关闭(fid);
结束
我正在努力解决为什么我的平均阅读时间慢,以及如何加快它的速度。
我注意到,如果我使用我的本地机器作为并行工作池parpool('local'),而不是Matlab并行云,平均读取时间要快得多。我读的 Matlab的文档 Matlab并行云运行在EC2上,EC2应该与S3自动集成,如果EC2和S3在同一个站点上,将有非常好的数据传输速度。
我的问题是 :我应该使用哪个站点有最大的数据传输性能?Matlab并行云托管在哪里?或者如何加快数据传输性能(除了在本地运行,因为我需要更多的worker)?
我没有使用Matlab驱动器来托管我的文件,因为它们太大,将不适合驱动器的5GB的最大分配。

接受的答案

乔恩酒
乔恩酒 2018年1月26日
在进一步看这个问题后,我认为Matlab并行云运行美国东弗吉尼亚地区-这是一个不同的地区,然后我存储我的数据。在交换存储位置后,问题就解决了
2的评论
乔恩酒
乔恩酒 2018年7月5日
嗨,谢谢你的评论。这是一个打印错误。你应该写“fp”而不是“spectralFilePath”。我更正了上面的代码

登录发表评论。

更多的答案(0)

社区寻宝

在MATLAB中心找到宝藏,并发现社区可以如何帮助您!

开始狩猎!