物联网(物联网)技术应用程序|牵牛星
事情互联网(物联网)

事情互联网(物联网)

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

浏览产品

设备管理

设备管理

开箱即用,Altair的设备管理有助于您从可靠,安全,双向设备通信到简单,高效的设备组织和建模,帮助您克服IOT开发的基本障碍。Altair的设备管理提供用于连接数千台设备的优化工作流,从而创建这些设备的虚拟表示,然后将它们组织成逻辑组。在繁忙的工作中花费更少的时间 - 而是加速您的供应过程,以便您专注于为您的客户提供最佳体验。

边缘编排

边缘编排

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

数据存储

数据存储

设备会产生大量的数据——10000台设备每分钟报告几次就可以每个月产生tb级的数据。Altair的数据存储解决方案为您提供一组工具,用于从设备上有效,适当地管理数据,以便您可以从它们中提取正确的洞察力和操作。将变换数据存储在实时访问,存储原始数据以进行长期参考,并使用我们的分析服务直观地查询它们,以便无法解除趋势或火车机床学习模型。Altair的数据存储解决方案确保您可以在合适的时间获得适量的信息。

产品演示

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

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

现在看

流处理

流处理

来自机器的原始数据可能会令人惊讶地无益。有时缺席,很少在哪里需要,并且来自一个网络的数据几乎永远不会格式化相同。此外,尽可能最糟糕的是,数据并没有提供关于自己含义的任何结论。牵牛星的流处理解决方案帮助您使用拖放界面和您想要的少量代码来解决这些问题。通过流处理,您可以转换和加入数据流,添加计算列,执行机器学习模型,发送警报,转换值,并连接到几十个不同的源或目的地所有上的现场流数据。为了从资产数据中获得价值,您几乎肯定需要进行一些数据按摩 - Altair的流处理解决方案可以帮助您轻松且可伸缩。

数据准备和机器学习

数据准备和机器学习

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

实时指示板

实时仪表板

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

嵌入式开发环境

嵌入式开发环境

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

特色资源

Altair SmartWorks物联网:概述

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

产品概述视频

智能产品开发指南

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

eGuide

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

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

客户见证

以较少的风险建立行业摇动智能产品生态系统

体验Altair®MardWorks™IOT如何为您提供快速构建可扩展,安全的Web,移动和边缘应用程序的一切,然后快速查找产品 - 市场合适。bob电竞官方本演示文稿由PérezBello,Altair的Smartworks IoT产品经理最初在未来播出.2021年6月,长约11分钟。今天就试试SmartWorks物联网吧,免费 - 点击这里开始试用

ATC演示文稿
查看所有资源
跳到内容

使用Altair网格引擎与Docker

它比你可能想象的更容易

对于HPC应用程bob电竞官方序,容器是安装软件的好方法,并确保跨群集和云的可移植性。容器可以封装完整的预测试环境,允许用户混合和匹配不同的应用程序和版本而不发生冲突。bob电竞官方ESI等软件提供商OpenFoam.Ubercloud.而且其他人在容器中越来越多的包装软件,以便于部署。

幸运的是,在Altair网发动机中对Docker的本机支持使得运行集装箱应用令人鼓舞。bob电竞官方在本文中,我将解释如何在Altair网格引擎集群上部署,运行和管理容器化工作负载,并为Altair网格引擎如何管理幕后的集装工地工作负载提供一些见解。

Dockerizing集群

如果您的Compute主机上没有安装Docker,这是一个很好的开始。添加Docker不应该破坏现有应用程序,但首先在非生产主机上测试事物始终是一个bob电竞官方好主意。添加Docker就像添加Java Runtime。Docker Engine为需要它的集装箱工作负载提供运行时支持。

作为谨慎的语言,不要假设您必须在群集主机上安装最新版本的Docker。Docker API像天气一样改变,因此您将想下载您的版本的Altair网格引擎支持的稳定Docker版本。

在本例中,我在Amazon Web Services (AWS)的CentOS 7上运行Altair Grid Engine v8.5.4。我使用了AWS市场安装网格引擎集群的简单方法。Consulting the Altair Grid Engine release notes, Docker version 17.03 is the latest supported Docker for Altair Grid Engine 8.5.4, so I’ll be using the free Docker Community Edition package (docker-ce-17.03.0.ce-1.el7.centos.x86_64) on my cluster compute hosts.

一旦配置了Docker存储库(我将很快介绍),就可以使用yum列表命令以显示可用的Docker版本。第二列返回的文本是版本字符串对于码头的释放,您将要注意到。

要显示可用的Docker 17.03包,我使用了这个命令:

根据您的操作系统,您可能需要使用不同的命令。这Docker CE文件有关其他Linux版本的详细说明,包括Debian,Fedora和Ubuntu。

因为我需要在多个主机上安装Docker,所以有必要构建一个安装Docker的脚本,以便在每个主机上输入相同的命令。下面的脚本以根用户身份运行,并且(至少对我来说)正确地在我的CentOS 7 Altair网格引擎计算主机上安装Docker。

该脚本执行以下步骤:

  • 它安装所需的包装包括yum-utils其中包含yum-config-manager在第二个命令中使用的实用程序。
  • 它将稳定的docker库添加到yum环境中,以便yum可以找到所需的docker包。你需要在yum列表上面显示的命令将有效。
  • 最终命令安装所需的Docker版本(17.03)。我得到了长期讨厌的名称,其中包含版本的字符串yum列表命令。

安装命令可能需要一些解释。有知识的读者(唯一读过这个博客的人)可能希望看到这样的内容:yum安装码头工人- ce 17.03.0.ce el7.centos——1.“。这是我的第一次猜测。

只是为了证明没有什么是容易的,我了解到安装旧版本的Docker CE可以有点戏剧。在Docker-CE 17.06.0中引入了一个新的“obsoletes”限制,无论出于何种原因,yum repo适用于所有版本的Docker的限制。避免错误消息(Package Docker-CE-SELinux由Docker-CE过时......)阻止Docker安装我需要手动将过时设置为false百胜命令行和下载docker-ceDocker-Ce-Selinux在一起。对此问题进行了详细的说明在这里

你需要注意这个细节。总是一些小事情会引起最大的头痛!

安装Docker后,您可以启动Docker并验证它是否通过运行几个docker命令并运行hello world码头毂的容器。这是一个好主意systemctl.启用Docker,以便在节点引导时自动启动Docker。您可能希望将这些命令添加到您自己的安装脚本中。

一个详细信息 - 要允许常规用户运行docker命令,您将希望将群集上的每个用户添加到Docker组。下面的命令将用户账单添加到Docker组。

配置网格引擎使用Docker

现在我们已经到了很酷的部分。如果您正确地安装了Docker,则不需要做任何其他操作。网格引擎应该已经知道Docker和安装在每个主机上的任何Docker映像。

从网格引擎节点执行下面的命令说明了这一点:

对于不管理网格引擎以谋生的人,qhost正在显示群集中的计算主机。我有一个主主机和两个计算主机。您可以看到AWS主机名。这- fSwitch显示每个主机上特定资源的值。

Altair网格引擎在Altair网格引擎V8.4.0中添加了两个新的默认资源,以帮助管理Docker工作负载:

  • Docker.:自动检测到的布尔资源,值为0或1,具体取决于Docker是否安装在主机上
  • docker_images:逗号分隔的列表(类型rescriging),列出了主机上可用的Docker映像

假设您的Altair Grid Engine环境认识到Docker安装在每个主机上并查看可用图像,您已完成!您已换来了您的群集,可以开始提交和管理容器化应用程序。bob电竞官方

运行和管理容器化作业

Altair Grid Engine使得在容器内或容器外运行作业变得很容易。为了说明这是如何工作的,我创建了一个简单的脚本,名为testjob.sh.。脚本执行一些简单的事情,例如确定它是否在容器中运行并报告其主机名和IP地址。我添加了一个睡眠命令,因为我想脚本运行足够长,以便我可以针对运行容器进行Docker命令。如果读者想知道,检查隐藏文件的存在.dockerenv是一个有用的技巧,可以判断您的脚本是否在容器中运行。

我将此脚本提交到网格引擎作为正常的非容器作业:

脚本被分配了作业ID(31),并将其分派给其中一个计算主机。作业输出记录在用户的主目录中,我们看到脚本的输出。正如预期的那样,在我们的AWS机器实例之一,真实世界(而不是在Docker Container)中运行。

要在容器中运行作业,过程几乎相同。我只需要告诉Altair网格引擎,我们要使用Docker容器并指定要使用的Docker映像。为此,我使用了- l在命令行上切换(小写l)以请求两个资源:Docker.docker_images。这将选择主机Docker.资源设置为true,并在可用映像列表中包含所需的Docker映像(CentOS:最新)。我们使用通配符将图像名称与每个主机上可用的更长的逗号分隔的图像列表相匹配。如果图像在主机上不可用,Altair网格引擎可以自动将图像自动拉动,但出于性能原因,最好在主机上运行已在本地存储的图像。

从网格引擎用户的角度来看,一切工作方式都是一样的。用户可以像删除或操作其他作业一样删除或操作容器作业。容器化的作业显示为Altair Grid Engine作业32,并在一个AWS主机上的容器中运行。

如果我在执行主机上监视Docker,我看到一个Docker容器已经基于映像centos映像启动。作为一个Grid Engine用户,这对我来说是透明的,但是知道发生了什么是很好的。

作业完成后,我从作业的输出文件中看到作业在Docker命令行(4539E0B94529)所示的容器中运行。

使用软资源请求在飞行中提取Docker图像

在上面的示例中,我知道其中一个计算主机已经拥有所需的Docker映像(CentOS:最新)。通常,需要在任何集群主机上存在所需的图像。Altair网格引擎可以自动下载所需的图像,但要执行此操作,我们需要使用软资源请求。软资源请求向Altair网格引擎指示图像是“很好的”,但没有必要在主机上安排作业。在该示例中,下面我们指定了不同的Docker映像(ubuntu: 14.04),并使其出现为软请求而不是硬请求。

Altair网格引擎试图找到所需的主机ubuntu图像,但是当没有可用时,它将作业安排到符合硬资源要求的主机(Docker.), Altair Grid Engine会自动触发docker守护进程来下载所需的映像并启动容器。重新运行了qhost命令表明,我们的第一个计算主机现在具有所需的图像,并且工作如前所述。

这是一个重要的特性,因为它意味着用户可以保证即使在计算主机上没有所需的Docker映像时,他们的容器化作业也能运行。

了解幕后发生的事情

要完成所有这些,网格引擎在幕后做了一些聪明的东西。首先,由于这不是二进制作业,因此网格引擎必须将脚本从提交主机转移到执行主机。从那里,脚本被复制到假脱机目录中。

对于能够看到脚本的容器,将需要将SPOOL目录绑定(Docker项)到容器。文件in.$ sge_root.也绑定到容器,Altair网格引擎会自动检测可能需要的任何其他目录,并在容器内的子目录/ UGE_MNT下绑定它们。其他目录绑定到包括用户主目录的目录,以便在用户期望它与通过通过传递的目录以及通过的目录一起编写作业输出- o- e开关QSUB.命令行。

Docker.检查命令使我们能够在工作运行时发生的情况。我想看到关于这项工作的详细信息,所以我保存了输出码头工人检查在作业的容器运行的情况下,文件如图所示:

有太多细节码头工人检查命令提供完整的输出,所以我缩写了它以显示一些感兴趣的物品。

首先,注意当Docker作业运行时,入口点是sge_container_shepherd.根据集装箱内部运行,程序基本上“牧羊人”的计划。这是网格引擎二进制文件需要在集装箱内部提供的网格引擎二进制文件之一/ uge_mnt.。其他绑定显示了其他绑定/ var./选择,/home/bill(我们的工作ran作为账单),以便从容器中可以访问这些。

工作目录被设置为主机上作业的spool目录,与网格引擎作业相关的其他信息存储在Docker标签中。

从Linux管理员的角度来看,了解计算主机上的过程树也是有效的。输出Psstree.(要么ps auxf)过于兼容,以完全显示,但下面显示了流程层次的剥离版本。

通常,当Grid Engine用户提交一个非容器化作业时,执行主机上的进程层次结构如下所示:

网格引擎作业是sge_execd执行主机和执行的过程由a管理SGE_SHEPHERD.过程。实际工作负载在提交作业的用户的用户ID下运行。

当与容器作业运行相同的作业时,包含作业的进程是Docker守护程序的子项。在这个观点中,我们看到了sge_container_shepherd.在容器内运行的进程是实际工作的父级。

其他有用的技巧和酷的东西

通常,Altair网格引擎作业将希望操纵特定目录中的数据,例如,从所有计算主机可访问NFS共享。目录可以使用docker手动将手动绑定到容器中Host-dir:container-dir格式使用xd切换以传递Docker选项。

在计算节点上,有一个目录叫做/ nfs_share可能包含共享数据。在本例中,我们可以绑定目录/数据在共享的docker容器中/ nfs_sharedocker主机可见的文件系统。在Altair Grid Engine命令行上传递的路径需要引用容器中可见的路径。

到目前为止,这些例子已处理脚本,而不是二进制文件。二进制文件在某种程度上更容易,因为它假设调用的命令已经驻留在容器中。在Docker容器中启动二进制文件时,这是一个好主意,以指定应该用于启动二进制文件的shell。否则shell可能默认为CSH.,通常不存在于码头容器中。一个例子如下所示:

Altair Grid Engine Docker集成有许多功能,包括支持阵列作业,MPI并行作业以及访问GPU设备。此外,Grid Engine可用于启动和管理包装的容器,将入口点构建到容器图像中的长期运行服务。我们将在后续文章中介绍其中一些其他主题。

在Altair,我们已经在网格引擎集群上积累了许多运行集装箱的经验。如果您对本文有任何意见或疑问,我很乐意获得您的反馈。