Wolfram 计算服务
Source: Hacker News

要在 Version 14.3 Wolfram Desktop 系统中立即启用 Wolfram Compute Services,请运行:
RemoteBatchSubmissionEnvironment["WolframBatch"]
(该功能已在 Wolfram Cloud 中自动可用。)
扩展你的计算规模
假设你已经在 Wolfram Language 中完成了一次计算,现在想把它放大——比如 1 000 倍或更多。今天我们发布了一种极其简化的方式来实现这一点。只需将放大的计算包裹在 RemoteBatchSubmit 中,它就会被发送到我们全新的 Wolfram Compute Services 系统。无论是一分钟、一个小时、一天还是更久,你都会收到完成的通知,并可以检索结果。
数十年来,我一直需要进行大规模、繁重的计算(通常用于科学研究)。面对海量数据、数百万案例以及猖獗的 计算不可约性,我在家里的计算资源往往比大多数人多——如今大约有 200 核心。但很多夜晚我仍然想要更多。即日起,任何人都可以无缝地将计算发送到 Wolfram Compute Services,并以几乎任意规模运行。
近 20 年来,Wolfram Language 已内置 ParallelMap、ParallelTable 等函数,使得并行化子计算变得立竿见影。但要真正放大规模,你需要计算资源,而 Wolfram Compute Services 现在把这些资源提供给所有人。
这些 底层工具 已在 Wolfram Language 中存在多年。Wolfram Compute Services 将它们整合为一站式体验。当你向 RemoteBatchSubmit 提交输入时,服务会自动收集笔记本前面部分的所有依赖项,省去你手动处理的麻烦。
RemoteBatchSubmit 与所有 Wolfram Language 函数一样,接受可以表示任何东西的符号表达式——从数值表格到图像、图形、用户界面、视频等。你收到的结果可以直接在笔记本中使用,无需任何导入步骤。
可用机器
Wolfram Compute Services 提供多种机器选项:
- Basic – 1 核心,8 GB RAM(适合卸载小型计算)。
- Memory‑heavy – 最多约 1 500 GB RAM。
- Core‑heavy – 最多 192 核心。
若需更大规模的并行,RemoteBatchMapSubmit 可以将函数映射到任意数量的元素上,在多台机器的任意数量核心上运行。
一个简单示例
下面是一个取自我早前进行的 某项科学研究 的极简示例。定义函数 PentagonTiling,随机向一个簇中添加不重叠的五边形:

对于 20 个五边形,我可以在本机上快速运行:

对于 500 个五边形,几何计算会变得困难,并且会长时间占用我的机器。于是我将计算提交给 Wolfram Compute Services:

系统创建了一个作业(依赖自动处理),并排入执行队列。几分钟后,我收到一封邮件,确认批处理作业正在启动:

稍后我可以通过邮件中的仪表板链接检查作业状态:

作业完成后,我收到另一封带有结果预览的邮件:

要将结果作为 Wolfram Language 表达式检索,我在邮件中执行提供的那行代码:

现在结果是一个可计算对象,我可以进一步操作,例如计算面积:

或统计孔洞数量:

大规模并行
Wolfram Compute Services 让大规模并行变得轻而易举。想在数百核上运行计算?只需使用该服务。
举例来说,我搜索一种元胞自动机规则,使其产生恰好 100 步“寿命”的图案。在我的笔记本电脑(16 核)上测试 10 000 条随机规则只需几秒,但没有找到符合条件的规则:

即使使用 ParallelSelect 在同样的 16 核上扩展到 100 000 条规则,仍然没有结果:

要测试 1 亿条规则,我提交了一个请求最大 192 核机器的作业:

几分钟后,我收到一封邮件,说明作业正在启动。作业运行期间,我又收到一次更新:

几个小时后,我收到最终邮件,表明作业已完成,并附带预览,显示确实找到了某些期望的图案:
