如何在15台Linux机器上分布式执行多任务,自动分配输入文件?
分布式批量任务处理方案请求
环境与核心需求
- 本地主机可通过SSH协议访问15台8核CPU机器,登录示例:
ssh machine_1 - 可执行程序路径:
root/bin/executable - 待处理输入文件:约20000个,存储于
root/input/ - 核心诉求:
- 最大化并行计算能力,避免重复处理同一文件
- 单台机器同时运行6-8个不同输入的任务
- 单个任务完成后,自动调度下一个未处理的输入文件
- 主节点需可靠追踪已处理文件,寻求最简洁的实现方式
期望的任务调度模式
任务分配示例:
# machine_1 并行执行: ./bin/executable ../input/file_0 ./bin/executable ../input/file_1 ./bin/executable ../input/file_2 ./bin/executable ../input/file_3 # 同时 machine_2 并行执行: ./bin/executable ../input/file_4 ./bin/executable ../input/file_5 ./bin/executable ../input/file_6 ./bin/executable ../input/file_7 # 其余机器按此逻辑依次分配未处理文件...
- 单个任务执行时长约24小时,需全量利用15台机器的算力以加速处理
现有方案的问题
此前找到的方案会在所有机器上执行相同命令,导致重复计算,无法满足需求。
内容的提问来源于stack exchange,提问作者skrat
相关产品推荐
相关产品推荐

