当前位置: 首页 > 科技观察

用于HPC和深度学习工作负载的容器技术

时间:2023-03-21 01:37:20 科技观察

在应用程序开发领域,容器近年来受到了很多关注,原因有很多。以下是一些优势:容器简化并加速了构建和隔离应用程序的过程;它们重量轻,开销低;包括应用程序及其开发环境。特别是在深度学习(DL)框架中,容器化的重要性正在上升。为什么?每个DL框架都有很多依赖项。每个依赖库都有特殊的版本要求,所有DL框架都经常变化。大多数DL框架友好支持的操作系统是Ubuntu,而数据中心部署通常运行RedHatEnterpriseLinux/Centos。容器化可帮助开发人员克服这些挑战。一切都打包成一个包,包括所有必需的部分。适用于HPC和深度学习工作负载的容器技术有许多技术可以促进容器化,例如Docker、LXC、LXD和Singularity等。每种技术都有自己的优点和缺点,可以迎合不同的受众类型,适用于不同的用例。对于专注于HPC技术以使应用程序大规模化的用户来说,Singularity可能是更好的选择——例如MPI和调度程序(slurm、torque)。另一方面,如果用例是基于微服务的扩展,那么Docker结合Kubernetes或Docker集群等编排技术可能是更好的选择。对于HPC和DL应用程序,Singularity平台上的容器化还有一些额外的优势。特别是,容器化与Singularity相结合可以帮助开发人员克服与编译和运行大规模部署相关的挑战。它使开发人员能够通过Singularity的MPI集成功能将工作负载扩展到单个节点。随着DL数据集规模的增长,这种可扩展性将成为许多用例的要求。Singularity是劳伦斯伯克利国家实验室专门为HPC和DL工作负载开发的。它的核心概念是用户上下文始终在容器启动时持久化。这里没有守护进程。相反,Singularity是可执行的。Singularity容器运行在用户空间,这使得用户在容器内外的权限是一样的。在DellEMCHPC和AI创新实验室,研究团队在一个项目中使用了Singularit,该项目包括用于其内部用例的DL和HPC应用程序。在这个项目中,团队发现容器化简化了DL在单节点和多节点配置中的构建和部署。更重要的是,研究团队发现与裸机相比,Singularit上的DL应用程序没有性能损失。在其基准测试中,研究团队比较了在裸机上运行与在容器中运行,发现相对性能差异小于2%。这是关键。对于从事深度学习和HPC工作的开发人员来说,容器化的好处是显着的,而且不需要对性能产生重大影响。显然,随着组织充分利用DL技术来交付AI驱动的产品和服务,容器技术将变得更加重要。