物联网技术应用|牵牛星
物联网

物联网

在这个智能、互联的世界里,牵牛星让您充分利用物联网(IoT)的力量,加速创新,释放商业价值。利用我们的动态工具集,您可以部署边缘计算集群,训练和执行机器学习模型,实现复杂的应用程序业务逻辑,执行数据转换,可视化实时数据,等等。我们为您提供构建模块,使您的数字转型快速移动,快速扩展,并随着时间的推移继续改进。

浏览产品

设备管理

设备管理

Altair的设备管理开箱即用,帮助您克服物联网开发中的基本障碍,从可靠、安全、双向设备通信到简单、高效的设备组织和建模。牵牛星的设备管理为连接数千个设备、创建这些设备的虚拟表示,然后将它们组织到逻辑组提供优化的工作流程。在繁忙的工作上花更少的时间——相反,加快你的配置过程,这样你就可以专注于为你的客户提供最好的体验。

边缘编排

边缘编排

边缘应用程序编排可能是一个复杂的、微妙的问题——边缘计算负载会遇到各种各样的问题,从无法通信的设备,到需要特定构建的特定目标硬件,到耗尽硬件资源的关键任务应用程序。bob电竞官方边缘编排提供了一个强大的平台用于管理这些细微差别,以便您可以在接近设备的地方构建自动化和执行逻辑,而无需往返于云。对您来说,这意味着减少延迟,节省数据传输成本,并在您最需要的地方提供新的、强大的智能。

数据存储

数据存储

设备会产生大量的数据——10000台设备每分钟报告几次就可以每个月产生tb级的数据。Altair的数据存储解决方案为您提供了一套有效、适当和安全地管理设备数据的工具,以便您可以从它们中提取正确的见解和行动。存储转换后的数据,以实时访问,存储原始数据,以长期参考,并使用我们的分析服务直观地查询,以便您可以挖掘趋势或训练机器学习模型。Altair的数据存储解决方案确保您可以在正确的时间获得正确的信息量。

产品演示

开发智能产品应用bob电竞官方

了解如何使用Altair®SmartWorks™物联网创建连接智能电动摩托车的应用程序,以提供增强的所有权体验。

看现在

流处理

流处理

来自机器的原始数据可能出人意料地毫无帮助。有时难以理解,在需要的地方很少出现,而且来自一个网络的数据几乎从来不会与另一个网络的数据格式相同。此外,也许最糟糕的是,数据并不能给出任何关于其含义的结论。牵牛星的流处理解决方案使用拖放界面和尽可能少的代码帮助您解决这些问题。通过流处理,您可以转换和连接数据流,添加计算列,执行机器学习模型,发送警报,转换值,并连接到数十个不同的源或目的地,所有的实时流数据。为了从您的资产数据中获得价值,您几乎肯定需要进行一些数据处理——Altair的流处理解决方案可以帮助您轻松且可伸缩地完成这一任务。

数据准备和机器学习

数据准备和机器学习

牵牛星的数据准备机器学习工具使您能够在无代码、安全的环境中从实时和历史数据源提取可操作的信息。我们的可扩展平台支持自动数据发现、数据转换、机器学习和可视化。使用这些工具来优化运营,并对业务中可能出现的所有突发事件做出准确的反应。准确预测部件寿命、更换要求、能源使用、维护、利用率和其他直接影响质量、销售、客户接受度和效率的因素。精简操作或提高产品性能从来没有像现在这样容易。

实时指示板

实时指示板

真正的实时可视化是很难实现的。许多仪表盘工具宣称具有实时功能,但在测试时却失败了:只有一个组件是实时的,或者每分钟更新一次,或者查询可以按需运行,但不能自动更新。牛郎星的实时仪表盘是不同的。我们提供下至秒,自动更新图表与异常检测和用户反馈功能。我们打造的这个产品是真正的实时和可嵌入的,这意味着你可以以你想要的方式、在你想要的地方看到数据,并足够快地采取行动。牵牛星的实时指示板是将物联网数据准确放置在需要的地方的最强大、最简单的方法。

嵌入式开发环境

嵌入式开发环境

物联网的嵌入式开发有许多独特的考虑因素。外围编程、独特的通信协议、电池寿命感知、无线(OTA)更新和严格的安全性都是物联网嵌入式开发中的常见要求。牵牛星®®嵌入解决了这些问题——它使您能够通过仿真或在环硬件(HIL)构建和验证可靠的嵌入式系统。Embed内置支持轻松的云或设备通信、电池充电状态(SOC)和健康状态(SOH)跟踪、电池充电优化、安全OTA固件更新和加密数据传输。它帮助您快速迭代代码,提高系统效率,并减少嵌入式系统的攻击面。使用Embed,您可以确信您的嵌入式系统已经可以生产了。

特色资源

Altair SmartWorks物联网:概述

Altair®SmartWorks™IoT为您提供所需的一切,快速构建可扩展的、安全的web、移动和边缘应用程序,然后快速迭代,以找到产品市场适合。bob电竞官方今天就试试SmartWorks物联网吧,免费-点击这里开始试用

产品介绍视频

智能产品开发指南

物联网(IoT)已经改变了企业的经营方式。随着系统和资产之间智能互联的引入,新的产品线、经常性的收入流、更高效的运营、更高的质量和更快的上市时间都触手可及。

eGuide

用Altair SmartWorks物联网重新定义连接建筑

Toggled iQ结合了web应用、移动应用、硬件、分析和边缘计算,创建了一个独一无二的智能建筑数据和设备管理系统。这家智能照明制造商希望开发一种新的、连接的照明和建筑管理解决方案,以帮助他们的客户节省资金,提高舒适度,并遵守新的法规。他们使用Altair®SmartWorks™物联网构建了完整的前端、后端和边缘计算架构。通过这种方式,Toggled的客户现在可以管理用户、板载设备、管理网关产品中的计算工作负载、开发楼宇自动化,并优化能源使用。今天就试试SmartWorks物联网吧,免费-点击这里开始试用

客户见证

以更低的风险打造震撼业界的智能产品生态系统

体验Altair®SmartWorks™IoT如何为您提供所需的一切,快速构建可扩展的、安全的web、移动和边缘应用程序,然后快速迭代,以找到产品市场适合。bob电竞官方本次演讲由牵牛星智能工程物联网产品经理Pérez Bello主持,最初在Future上播出。在2021年6月的人工智能,长度略超过11分钟。今天就试试SmartWorks物联网吧,免费-点击这里开始试用

ATC的演讲
查看所有资源
跳到内容

使用Altair网格引擎管理GPU工作负载-第一部分

介绍如何在支持gpu的应用程序中使用Altair Grid Enginebob电竞官方

GPU

近二十年来,gpu(图形处理单元)一直在稳步变革高性能计算(HPC)和人工智能。bob官网 bob体育下载它最初是为游戏和图像处理等图形密集型应用而设计的,但没过多久,高性能计算专家就看到了低bob电竞官方成本、大规模并行处理器的潜力,能够每秒处理数十亿(现在是数万亿)浮点运算。手机游戏玩家将感激这种改进的图形功能-游戏停电闪电战在那些想在游戏中赚到真钱的玩家中尤其受欢迎。

在这篇分为两部分的文章中,我将讨论GPU工作负载以及如何使用Altair Grid Engine来管理它们。首先,我将提供一个简短的GPU入门,解释它们如何在HPC和AI中使用,并涵盖在共享集群上运行GPU应用程序时的一些特定挑战。bob电竞官方在第二部分中,我将重点介绍Altair Grid Engine中的一些具体创新,它们帮助GPU应用程序更容易部署和大规模管理。bob电竞官方

背景

对于并行处理大块数据的算法来说,gpu比cpu快几个数量级。没有gpu是安全的,没有Amazon Alexa,没有PS4,没有谷歌翻译,自动驾驶汽车仍然是科幻小说里的东西。

如果您现在正在部署一个HPC集群,那么您很有可能正在部署支持gpu的集群节点。gpu被用于从加速计算流体动力学计算到训练和部署深度学习模型到加速SQL数据库的所有事情。

现代GPU工作负载要求工作负载管理器更加复杂。今天的集群不是只管理由CPU组成的集群,而是由数百或数千个CPU核以及数千甚至数百万个CPU驻留核组成的集群。bob电竞官方应用程序需要这两种类型的资源,GPU作业需要配合对网络拓扑和内部CPU和总线架构的详细理解来协调,以最大限度地利用GPU支持的集群。

gpu支持HPC和AI

虽然有多个GPU制造商,如果我们排除芯片集成图形解决方案和为移动或嵌入式应用程序优化的GPU解决方案,Nvidia(与他们的bob电竞官方Nvidia Tesla和AMD(与Radeon本能)目前主导着高端通用GPU市场。

英伟达成功的一个关键原因是CUDA,这是一个流行的并行计算环境和编程模型,它使C和c++开发人员(甚至是核心的HPC Fortran类型)更容易利用gpu的能力。开发人员可以利用CUDA工具包和特定于hpc的CUDA库来运行数百个gpu优化的应用程序,而不需要了解如何在底层编写gpu。bob电竞官方CUDA的普及帮助英伟达成为许多高性能计算和深度学习应用程序的实际标准。bob电竞官方最新的英伟达gpu既有传统CUDA内核(在高性能计算和人工智能的核心领域,对大规模矩阵运算非常出色),也有更新版本张量核,专门为深度学习应用程序优化。bob电竞官方

重要的是要认识到GPU应用程序并不只在GPU上运行。bob电竞官方GPU支持的应用程序像其bob电竞官方他应用程序一样运行在传统的CPU内核上,但它们与CUDA软件库(例如用于各种线性代数函数的cuBLAS或用于深度神经网络的cuDNN)相连接,这些软件库访问GPU来加速计算的特定部分。当一个启用GPU的应用程序在主机上运行时,它需要找到CUDA运行时的正确版本、正确的库和设备驱动程序,并避免与试图访问相同GPU或GPU的其他应用程序发生冲突。bob电竞官方这就是支持gpu调度的地方。

调度GPU应用程序-那么有什么bob电竞官方问题?

表面上,调度GPU应用程序听起来很容易。如果我的工作需要GPU,为什么不简单地将GPU作为主机上的消耗性资源,并将工作负载放在一个GPU没有被使用的集群节点上。这是GPU使用早期处理工作负载的方式,但需求已经远远超出了这个简单的用例。

在大型集群中,主机的图形处理器数量可能不同,不同的图形处理器模型在内存和核配置上也不同。GPU也有不同类型的内核,可以在其中运行不同的模式取决于工作负载需求。一些应用程bob电竞官方序需要独占GPU,而其他(典型的MPI应用程序)使用Nvidia的CUDA多进程服务(MPS),用于gpu之间的协同多处理。工作负载管理器需要考虑GPU工作负载的性质,以及内存和PCIe总线拓扑、CPU-GPU亲和等问题NVLink如果存在拓扑,则可以有效地放置工作负载以获得最大性能。

工作负载管理器需要了解GPU的运行状况和负载,理想情况下,还需要与Nvidia之类的管理工具交互数据中心GPU管理器(DCGM),用于监控和管理gpu。它们还需要透明地支持容器化的GPU工作负载和设施,比如nvidia-docker和奇点,以便容器可以共享物理gpu,同时在每个容器中运行不同版本的CUDA库和其他中间件。(我将在后续的博文中介绍Nvidia Docker以及它是如何与网格引擎一起工作的)

当gpu空闲时,工作负载管理器不应该关闭它们吗?如果GPU过热,我们是不是应该另找一台主机,而不是在运行时冒着失败的风险?你懂的。为了合理调度GPU工作负载,工作负载管理人员需要对GPU基础设施和应用程序有深入的了解。bob电竞官方

在放置GPU工作负载时考虑主机配置

最先进的集群越来越多地由具有多个cpu、gpu和复杂总线拓扑的节点组成。下图所示的拓扑是用于HPC和深度学习工作负载的典型Altair Grid Engine集群节点。的日本ABCI超级计算机(绿色500列表中的第4名)在1088个节点集群上运行Altair Grid Engine,每个节点都有两个Intel Skylake处理器,384GB RAM和4个Nvidia Tesla V100 gpu。

单个计算节点的理论性能是506个AI TeraFlops(单精度通常用于人工智能工作负载)或342个双精度TeraFlops(用于科学和工程工作负载)。

GPU图

调度器需要最优地放置cuda支持的应用程序,以有效利用基础设施。bob电竞官方bob电竞官方应用程序通常需要指定数量或类型的GPU、GPU内存、GPU核、处理器核或内存。

在上面的例子中,如果一个启用了gpu的进程被调度到gpu0,我希望与作业关联的CPU线程始终运行在同一组核心上cpu0最大限度地提高CPU L1/L2缓存效率,并提供最直接的路径gpu0通过本地PCIe总线。

如果GPU工作负载没有消耗主CPU上的所有处理器核,我可能希望将选择的核提供给其他GPU或非GPU任务,只要它们不影响我的其他工作负载的性能。

在其他情况下,比如运行从点对点通信中受益的深度学习TensorFlow应用程序,我可能更倾向于将带有NVLink连bob电竞官方接gpu的整个主机分配给分布式TensorFlow应用程序,而不是在多个支持gpu的集群节点上调度应用程序。

一个具体的深度学习例子有助于说明这一挑战

为了使问题更具体,考虑一个真正的深度学习工作量。幸运的是,支持gpu的示例应用程序很容易找到,因为NVIDIA在bob电竞官方Nvidia GPU的云(NGC),让容器化的GPU应用程序可以提供给任何注册免费会员的人。bob电竞官方

基于python的Tensorflow深度学习应用程序受益于多个gpu和张量核心,它是用于图像识别/分类的ResNet50残差学习模型。细节不重要,但ResNet是一个卷积神经网络,由微软的一个团队开发,可以在流行图像识别胜过人类ImageNet用于训练机器学习模型的数据集。研究中有不同深度的神经网络微软的论文, ResNet50为50层残留网络。

的官方Docker映像中可以找到一个ResNet50示例Tensorflow在NGC。通过使用容器和nvidia-docker,我们在本地集群主机上避免了许多与配置相关的麻烦。这是因为容器包括NVIDIA CUDA, NVIDIA CUDA Deep Neural Network Library (CuDNN)和NVIDIA Collection Communication Library (NCCL),为NVLink和运行模型的所有其他先决条件进行了优化。

我们可以在安装了Docker的Linux主机上以交互方式运行Docker映像,如下所示,或者我们可以像文章中描述的那样向Altair网格引擎提交Docker命令使用牵牛星网格引擎与Docker.Altair Grid Engine非常聪明,如果在本地执行主机上没有找到容器,它可以自动拉出容器。

在上面的命令中:

  • -rm表示在执行完成时删除容器
  • -它表示以交互模式运行容器
  • -v使$HOME/projects的内容可以在/projects容器中访问
  • tensorflow:18.03指的是2018年3月使用Python 2的tensorflow图像。x安装。

当你运行示例启用GPU的python脚本(nvcnn.py)来训练图像分类模型,你会看到输出如下所示:

我们的Tensorflow作业消耗主机CPU上的一些内核,并运行在同一主机上的两个gpu上,在本例中是gpu0和gpu1。

运行一个真实的模型需要做的工作比我在这里展示的要多一些,因为用户需要访问云实例,设置一个持久的SSD来存储数据集,将ImageNet数据集的副本下载到SSD上,等等。但是,这个示例向我们展示了单个应用程序的外观。

现在想象一个环境,有几十个用户,数百台主机,每个主机都有2、4或8个不同类型的gpu,以及数百甚至数千个使用不同软件框架的作业。在某些情况下,我们希望在单个主机上运行作业,而在其他情况下,我们的作业可能涉及多个主机。

数据科学家可能需要运行一个单一的深度学习任务,并需要如下资源:

  • 基于tensorflow的深度学习应用需要2个参数服务器和8个工人
  • 每个参数服务需要一个单独的CPU,至少有四个可用的核心和8GB的RAM
  • 每个worker都需要一个CPU,一个Nvidia V100型号的GPU,至少32GB内存,每个worker至少6GB内存可用
  • 每个worker需要绑定到一个特定的CPU核心,CPU- gpu对需要驻留在同一个socket上
  • 分配的节点应该位于单个机架和相同的机架顶交换机上,以减少网络延迟
  • 当从NGC部署时,部署的工人应该自动拉出Tensorflow图像,并使用Tensorflow 18.03运行Python 2。

现在想象成百上千个类似上面的工作,每个工作都有其独特的资源需求和软件依赖关系。我相信你明白了,除非你是许多问我怎么做的人之一卖掉我的gpu?那你可能来错地方了。

第二部分在本文中,我将介绍Altair Grid Engine,以及它如何提供重要功能来帮助组织解决这些问题以及在共享gpu支持的HPC和AI集群上的其他实际调度挑战。

你在使用gpu和网格引擎吗?如果是这样,联系我们并分享你的经验。您可以在这里了解更多关于牵牛星网格引擎和相关解决方案altair.com/grid-engine