【发布时间】:2016-04-27 10:52:10
【问题描述】:
为了开发对象识别算法,我需要在大量体积图像文件(MR 扫描)上反复运行检测程序。 检测程序是一个命令行工具。如果我在本地计算机上以单个文件和单线程运行它,大约需要 10 秒。处理结果写入文本文件。 典型的运行是:
- 10000 张图片,每张 300 MB = 3TB
- 单核 10 秒 = 100000 秒 = 大约 27 小时
我可以做些什么来更快地获得结果?我可以访问由 20 个服务器组成的集群,每个服务器有 24 个(虚拟)内核(Xeon E5、1TByte 磁盘、CentOS Linux 7.2)。 理论上,480 个核心的任务应该只需要 3.5 分钟。 我正在考虑使用 Hadoop,但它不是为处理二进制数据而设计的,它会拆分输入文件,这不是一个选项。 我可能需要某种分布式文件系统。我使用 NFS 进行了测试,网络成为一个严重的瓶颈。每个服务器应该只处理他本地存储的文件。 另一种选择可能是购买单个高端工作站而忘记分布式处理。
我不确定,如果我们需要数据局部性, 即每个节点在本地 HD 上保存部分数据并只处理他的 本地数据。
【问题讨论】:
标签: linux image hadoop machine-learning distributed-computing