本题为开放题,无标准答案
有一个耗时的函数 fn(v) -> r
,其中 v
是输入内容,r
是计算结果。我们进行以下约定:
- 函数之间互相独立,无副作用
- 一次函数计算大约需要 10s(单线程)
- 每份输入内容大小约为 100MiB
- 每份输出内容约为 4MiB。
现在有四个计算节点和一个存储节点,我们进行以下约定:
- 每个计算节点提供 64 线程
- 所有节点通过 10GbE 连接到交换机
- 所有输入内容均存储在存储节点上,输出内容也能在存储节点上访问(通过本地挂载的 VFS)。
请你设计一个方案,用尽可能短的时间,完成计算任务。(输入内容份数远大于 4*64)
Hints:
- 什么是 NFS?什么是 GlusterFS?两者有什么功能上的区别?
- 计算和 IO 冲突吗?
Changelogs:
- 2025-8-3: 合并“分布式存储”,并优化内容
- 2024-10-8: first version