为了开发物体识别算法,我需要在大量体积图像文件(MR扫描)上重复运行检测程序。 检测程序是一个命令行工具。如果我在本地计算机上在单个文件上运行它,并且单线程大约需要10秒。处理结果被写入文本文件。 一个典型的运行将是:体积图像数据的分布式处理
- 10000图像与300 MB每= 3TB
- 经10秒钟的单核=十万秒=约27小时
我能做些什么,以获得结果更快?我可以访问20个具有24个(虚拟)内核的服务器(Xeon E5,1TByte磁盘,CentOS Linux 7.2)的集群。 理论上480个内核应该只需要3.5分钟的任务。 我正在考虑使用Hadoop,但它不是用来处理二进制数据,而是分割输入文件,这不是一个选项。 我可能需要某种分布式文件系统。我使用NFS进行测试,网络成为严重的瓶颈。每个服务器只应处理其本地存储的文件。 另一种选择可能是购买一台高端工作站,忘记分布式处理。
我不确定,如果我们需要数据本地化,即 即,每个节点保存本地HD上的一部分数据并仅处理其本地数据。
这或多或少是我们现在正在做的。它不能很好地工作。整个系统很难维护,脚本也相当复杂。应该有一些软件可用于这个问题,它似乎很普通。这实际上是一个“尴尬平行”的问题。 –
我可以看到它可能很笨拙。使用AWS可能会更容易,因为您可以使用所有正确的启动脚本创建新服务器,并从S3获取数据,而运行20个物理服务器听起来像是一场噩梦! –