云端CFD
本周,M-Star 软件开发总监 凯文・史密斯 做客节目,与约翰一同探讨云端 CFD。
“我们只想让客户专注于运行仿真,为企业创造价值,做好科学研究。”—— 凯文・史密斯
本期节目中,约翰与凯文讨论:
- 云端 CFD 的发展历程与崛起
- 在云端使用 GPU 实例的难点
- 如何快速、零门槛使用云端 GPU 资源运行 CFD
- 如需咨询云端 GPU 与 CFD 部署问题,欢迎联系我们参与交流。
约翰・托马斯:今天我们邀请到 M-Star CFD 软件开发总监 凯文・史密斯,和我们聊聊云计算,以及它在计算物理与 CFD 中的优缺点。凯文,非常感谢你来到这里。
凯文・史密斯:我的荣幸。
约翰・托马斯:凯文,先简单介绍一下你的经历吧。你是如何走到今天的?如何接触到计算物理,又如何成为云计算专家的?从高中到现在,给我们讲讲你的成长路径。
凯文・史密斯:我大学学的是机械工程,在课程里接触过一些编程。后来去了宾州州立大学,主攻流体力学,特别是计算流体力学(CFD)。硕士期间,我开始自己编写流体力学代码。
毕业后,我进入船舶工程领域,开始真正做软件开发,并把流体力学知识用在工作中。这份工作做了四年,之后去了约翰・霍普金斯大学应用物理实验室,在那里重新拾起硕士期间的研究方向,使用开源 CFD 工具 OpenFOAM。它是一款开源软件,可以修改源码,做一些商业软件还无法实现的定制化功能。
在那里工作了一段时间后,我和你相识,然后一起创立了 M-Star。从那以后,我的工作重心更多转向软件开发,而不再是流体力学本身。我在 M-Star 负责图形界面、产品部署、公司运维等工作。
也正是在这个过程中,我熟悉了各种云技术 ——AWS、Azure、谷歌云,以及让 M-Star 高效运行在 GPU 上所需的各种架构。
约翰・托马斯:先科普一下:到底什么是云?
凯文・史密斯:(笑)云,本质上就是别人的数据中心。你只是租用或预留一段时间的远程资源。大家平常理解的 “云”,可能是指数据存在上面,比如 Dropbox、OneDrive 这种。
但对 M-Star 来说,我们说的云一般指 AWS、谷歌云 这类平台。在这些环境里,你可以按需开启、用完释放资源,本质就是租用别人的计算机,用一段时间再还回去。
约翰・托马斯:明白了。所以云不只是存照片、文件,还能直接租机器来跑软件、做计算。
凯文・史密斯:没错。
约翰・托马斯:云计算大概是什么时候开始进入企业视野的?你读研的时候就在云上跑仿真了吗?科学计算领域是什么时候开始兴起云端计算的?
凯文・史密斯:我 2009 年读研的时候,据我所知几乎没人这么干。真正爆发是在过去 5~10 年,大家对科学计算上云越来越感兴趣。大概十年前,大家主要还在用 CPU 计算。用 CPU 需要大量节点、大内存、高速互联,在云上搭建这类基础设施当时还不太现实。
但现在完全不一样了。现在所有云厂商都提供 GPU 实例,一台机器可以配 4 块、8 块甚至 16 块 GPU,显存最高可达 1TB。所以过去五年,科学计算上云 是非常明显的趋势。
约翰・托马斯:背后的驱动力是什么?是企业想提高资本支出效率,还是项目规模波动大?为什么企业都在转向云端高性能计算(HPC)?
凯文・史密斯:每个人理由不太一样,但硬件成本肯定是重要原因。一块 V100 GPU 可能就要 1 万美元,如果在专业计算服务器里装 8 块,成本非常高。
如果只是一个 5~10 人的小团队,要采购、进场、运维、专人管理…… 难度很大。而用云,你随时开机、成本更低,这是大家转向云端的一个核心原因。
约翰・托马斯:有道理。听起来非常顺畅,开机即用。但直接登录 AWS、GCP 之类的平台,启动 8 卡或 4 卡 GPU 实例跑仿真,真的一帆风顺吗?有没有坑?
凯文・史密斯:当然有。一个很现实的问题:GPU 资源紧缺。最近尤其明显,太多人抢资源,有时候你在 AWS 或谷歌云上想用的时候根本开不起来。
有些人干脆一直开着不关机,避免抢不到。
另一个大痛点是企业 IT 安全策略。云资源不在企业内部防火墙里,安全架构本身更复杂,需要 VPN、额外的数据安全措施。小公司限制少,可能开机就用;大公司安全要求高,流程就会变得很麻烦。
约翰・托马斯:我搜索云服务商时,会看到一些裸金属云厂商,比如 AWS、GCP、Azure,还有一些像 Nimbix、Rescale 这样的平台,把云和前端软件打包好,方便用户直接使用软件、开实例。直接用裸金属云,和用这类中间平台,各有什么优缺点?
凯文・史密斯:看你的需求。如果你的工作流刚好适配 Rescale、Nimbix 这类平台,它们非常好用。但如果你需要更高自由度,或者自己有能力管理资源,那 AWS、谷歌云也可以很简单,只是取决于你对资源启停的控制权限。有些企业的安全策略,不允许员工随便开新机器。
所以选哪种,主要看公司制度和你需要的灵活度。
约翰・托马斯:我们聊了云,最近还有一个趋势是容器技术。你能简单解释一下吗?
凯文・史密斯:容器和云的思路很像:你不需要懂怎么组装电脑,只要说 “我要一台 4 卡 GPU 机器”,直接开机就行,不用懂 NVLink、NVSwitch 这些底层技术。
容器也是一样:你不用懂怎么安装 M-Star,直接 “开机” 就能用。它是一种极度简化的部署方式。
我们最近一直在和 NVIDIA 合作,把 M-Star 上架到 NVIDIA 容器目录,很快就会正式上线。这样一来,不管是企业本地还是云端,都能用容器一键部署,开箱即用。
约翰・托马斯:硬件好配置,但软件安装一直是痛点。现在看来,云端高效获取 HPC 资源 + 容器快速部署软件,两者结合才能真正提升效率。
凯文・史密斯:完全正确。
约翰・托马斯:M-Star 现在已经能从 NVIDIA 容器目录下载了吗?
凯文・史密斯:我今天刚点完发布按钮。目前还没完全公开,但已经在他们系统里,很快就会上线。只要有授权,用户在任何支持 Docker 的机器上都能直接运行 M-Star。
约翰・托马斯:太棒了,这样门槛又低了一截。
凯文・史密斯:我们的理念一直是:让用户专注于仿真,而不是折腾工具。不想让用户纠结用什么湍流模型,不想让用户折腾安装、部署、开机、环境配置。我们希望整个过程简单、易用,让工程师专注工程,而不是技术细节。
约翰・托马斯:大家如果想学习更多,有什么推荐资源吗?
凯文・史密斯:我首推我们自己的文档。关于 AWS、谷歌云上如何运行 M-Star,我们写了非常清晰的教程。另外,AWS 和谷歌云官方文档也非常详尽。
约翰・托马斯:我们会把文档链接放在播客简介里。
假设我已经在云端开好一台很强的 HPC 机器,面前光标在闪,下一步怎么装软件,怎么开始计算?
凯文・史密斯:你可以手动安装,也可以直接用容器 / Docker。用容器几乎可以秒级运行程序,完全不用管安装细节、依赖、环境配置。想快速上手,强烈推荐用容器。
约翰・托马斯:也就是说,我开好云端多卡 GPU 机器,拉一个容器,就能直接跑,不用管网络架构、CUDA、MPI 之类的东西?
凯文・史密斯:没错,就是这个思路。
约翰・托马斯:这正是我们想要的。我们不希望用户去纠结 MPI 怎么编译、GPU 内部怎么工作。我们希望他们关注:仿真结果告诉我什么?如何做出正确的工程决策?
凯文・史密斯:完全正确。
约翰・托马斯:云计算有没有影响 M-Star 的开发方向?还是说云只是一个事后附加的选项?它对你们日常开发、部署决策影响有多大?
凯文・史密斯:绝对不是事后附加。我自己大量测试都在云上完成。从定义上说,云已经深度整合进我们的开发流程。
我们有极简安装文档,几行代码就能从零部署 M-Star。我们认为云计算是长期趋势,甚至可能成为主流。M-Star 支持远程前后处理可视化,我们也写了在 AWS 上搭建相关架构的文档。
可以说,M-Star 是一款天生友好、全面支持云端的 CFD 软件。
约翰・托马斯:硬件、软件都搞定了,还有一个很头疼的问题:授权。很多软件在云上用授权很麻烦,厂商限制很多。M-Star 是怎么做的?
凯文・史密斯:我们使用 Reprise License Manager,支持浮动授权。你可以自己搭建授权服务器,也可以让我们托管,甚至把授权服务器放在云上,稍微配置一下就能用。
我们的授权方式非常简单:一个仿真,占用一个授权。不按核数算,不按 GPU 数量算,只算并行任务数。在云端使用非常轻松。
约翰・托马斯:这太友好了。很多软件还要按 CPU、按 GPU 额外收费。你们这种策略,让用户可以在任何地方、用任意数量 GPU 跑仿真,不用额外付费。
凯文・史密斯:我们不想让客户被授权问题困扰。我们坚持简单的授权策略。我们只想让客户专注于运行仿真、为企业创造价值、做好科学研究。
约翰・托马斯:太棒了。凯文,今天非常感谢你的分享。
凯文・史密斯:不客气,谢谢大家。
