技术领域technical field
本发明属于计算机图形渲染技术领域,尤其涉及一种基于图形集群的远程实时渲染平台构建方法,用于给多用户提供一种远程实时高效的图形渲染环境,有助于军事仿真、教育训练、移动办公以及自主可控系统推广等方面的工作。The invention belongs to the technical field of computer graphics rendering, and in particular relates to a method for constructing a remote real-time rendering platform based on graphics clusters, which is used to provide multiple users with a remote real-time and efficient graphics rendering environment, which is helpful for military simulation, education training, mobile Office and self-controllable system promotion and other work.
背景技术Background technique
图形渲染系统是视景仿真、虚拟现实和增强现实等技术的实现基础。图形渲染解决方案从最初的基于SGI(Silicon Graphics,美国硅图公司)的专用图形工作站,发展到多机并联的图形集群系统,再到采用NVIDIA(美国英伟达公司)的SLI(Scaleable LinkInterface,可升级连接界面)或AMD(Advanced Micro Devices,美国超微半导体公司)的CF(CrossFire,显卡交火)技术的多显卡图形工作站,硬件技术发展使得图形渲染应用模式呈现出螺旋上升的态势。为了解决大规模、远程、实时渲染的问题,同时也为了有效整合图形资源,提高资源使用效率,基于图形集群的渲染模式再次成为业界研究的焦点。Graphics rendering system is the basis for the realization of technologies such as visual simulation, virtual reality and augmented reality. The graphics rendering solution has developed from the initial dedicated graphics workstation based on SGI (Silicon Graphics, USA), to a multi-machine parallel graphics cluster system, and then to the SLI (Scaleable LinkInterface, scalable Connection interface) or AMD (Advanced Micro Devices, American Advanced Micro Semiconductor Corporation) CF (CrossFire, graphics card crossfire) technology multi-graphics graphics workstation, the development of hardware technology makes the graphics rendering application mode present a spiral upward trend. In order to solve the problem of large-scale, remote, and real-time rendering, and to effectively integrate graphics resources and improve resource utilization efficiency, the rendering mode based on graphics clusters has once again become the focus of industry research.
一般情况下,与图形集群配套使用的集群渲染系统也称作分布式渲染环境或渲染农场,它是指由许多运行渲染软件的计算机组成,在集群渲染管理软件的统一调配下,协调工作以并行方式完成所分配的渲染任务。从实时性的角度大致可分为两类:一类是非实时渲染系统,即管理端向图形集群下发渲染指令,图形集群在一定的时间内完成渲染任务后将渲染场景发送至管理端或存储系统,再由用户检验调用渲染成果。这种渲染系统多用于影视、动漫制作等领域;另一类是实时渲染系统,即管理端向图形集群下发渲染指令,图形集群完成渲染任务后将渲染结果实时反馈给用户,同时响应用户的交互与控制指令。这种渲染系统多用于视景仿真和虚拟现实系统。In general, the cluster rendering system used with the graphics cluster is also called a distributed rendering environment or a rendering farm. It refers to the composition of many computers running rendering software. way to complete the assigned rendering tasks. From the perspective of real-time performance, it can be roughly divided into two categories: one is non-real-time rendering system, that is, the management end sends rendering instructions to the graphics cluster, and the graphics cluster completes the rendering task within a certain period of time and then sends the rendering scene to the management end or storage system, and then the user checks and invokes the rendering result. This kind of rendering system is mostly used in the fields of film and television, animation production, etc.; the other is the real-time rendering system, that is, the management terminal sends rendering instructions to the graphics cluster, and the graphics cluster will feed back the rendering results to the user in real time after completing the rendering task, and respond to the user's request at the same time. Interaction and control instructions. This rendering system is mostly used in visual simulation and virtual reality systems.
通过对当前远程实时渲染平台相关的厂家与技术进行调研,发现其涵盖的核心技术主要包括VDI(Virtual Desktop Infrastructure,虚拟桌面架构)、VMM(VirtualMachine Monitor,虚拟机监视器)、DCV(Desktop Cloud Visualization,桌面云可视化)、vGPU(Virtual Graphics Processing Unit,虚拟图形处理器)等,其面向的应用情况主要体现在以下三个方面。Through research on the manufacturers and technologies related to the current remote real-time rendering platform, it is found that the core technologies covered mainly include VDI (Virtual Desktop Infrastructure, virtual desktop architecture), VMM (Virtual Machine Monitor, virtual machine monitor), DCV (Desktop Cloud Visualization , desktop cloud visualization), vGPU (Virtual Graphics Processing Unit, virtual graphics processing unit), etc., its oriented applications are mainly reflected in the following three aspects.
1、单机访问单站获取虚拟桌面服务1. Stand-alone access to a single station to obtain virtual desktop services
用户在本地安装客户端软件,远端的图形工作站节点安装服务软件,利用RDP(Remote Desktop Protocol,远程桌面协议)将图形工作站桌面虚拟到本地,实现对图形软件的远程访问与显示。The user installs the client software locally, the remote graphics workstation node installs the service software, and uses RDP (Remote Desktop Protocol, Remote Desktop Protocol) to virtualize the graphics workstation desktop to the local, realizing remote access and display of the graphics software.
事实上,基于Windows的RDP协议可以有效支持远程桌面的文件操作以及简单的文档处理等,但并不适合对视频以及动态图像的处理。在此基础上,惠普公司提出了RGS(Remote Graphics Software,远程图像软件)解决方案,该方案在RDP协议的基础上做了很多优化,包括使用具有自主专利的图像压缩/解压缩技术(可达到170:1的压缩率),大大减小了网络传输负载,另外通过对RDP的扩展,能够实现远程多用户共享桌面服务的功能(Windows的远程桌面连接同一时间只允许一个用户访问,且访问后服务端变成锁屏状态;惠普的RGS允许多个用户同时访问服务端的桌面,而服务端的桌面还可以正常显示)。这种方案支持Windows、Linux和Unix操作系统,基本上能够满足远程渲染任务的需求,但是该服务端软件要求必须安装在惠普的图形工作站上,并且在图形渲染资源的分配上并没有做其他的优化处理工作。In fact, the Windows-based RDP protocol can effectively support remote desktop file operations and simple document processing, but it is not suitable for video and dynamic image processing. On this basis, Hewlett-Packard proposed the RGS (Remote Graphics Software, remote image software) solution, which has done a lot of optimization on the basis of the RDP protocol, including the use of image compression/decompression technology with independent patents (up to 170:1 compression ratio), which greatly reduces the network transmission load. In addition, through the expansion of RDP, it can realize the function of remote multi-user sharing desktop service (Windows remote desktop connection only allows one user to access at the same time, and after accessing The server becomes locked screen; HP's RGS allows multiple users to access the server's desktop at the same time, and the server's desktop can still be displayed normally). This solution supports Windows, Linux and Unix operating systems, and can basically meet the needs of remote rendering tasks, but the server software must be installed on HP's graphics workstations, and there is nothing else to do in the allocation of graphics rendering resources Optimize processing work.
2、多机访问单站获取虚拟桌面服务2. Multi-machine access to a single station to obtain virtual desktop services
前面提到的方案比较适合于多人协同开展同一工作,不能满足多人通过共享图形资源来开展不同工作的需求,如果要实现每个用户都能够获取独立的虚拟桌面而又能共享图形资源,则需要在图形工作站节点上为每个用户都能开辟出独立的桌面系统,即VDI架构的部署与运行。目前,主流的VDI技术主要包括Hyper-V+RGS、XenServer+HDX和NICE DCV三种解决方案,对比分析如下:The solution mentioned above is more suitable for multiple people to work together to carry out the same work, but it cannot meet the needs of multiple people to carry out different jobs by sharing graphics resources. If each user can obtain an independent virtual desktop and share graphics resources, It is necessary to develop an independent desktop system for each user on the graphics workstation node, that is, the deployment and operation of the VDI architecture. At present, mainstream VDI technologies mainly include three solutions: Hyper-V+RGS, XenServer+HDX and NICE DCV. The comparative analysis is as follows:
(1)Hyper-V+RGS(1)Hyper-V+RGS
Hyper-V(美国微软公司推出的基于Windows的虚拟化产品)内置于WindowsServer 2008及以后的操作系统产品中,相对于微软过去的虚拟化技术多了一层操作系统,兼容性好,但速度较慢。Hyper-V让虚拟机可以较直接的使用实体主机的硬件资源,以提高虚拟系统之效能。Hyper-V借用微软平台优势切入到服务器虚拟化领域,但在对于Linux系统支持上,Hyper-V还有所不足。RGS软件的功能与不足如前所述。Hyper-V (a Windows-based virtualization product launched by Microsoft in the United States) is built into Windows Server 2008 and later operating system products. Compared with Microsoft's past virtualization technology, there is an additional layer of operating system. slow. Hyper-V allows the virtual machine to directly use the hardware resources of the physical host to improve the performance of the virtual system. Hyper-V borrows the advantages of the Microsoft platform to enter the field of server virtualization, but in terms of support for Linux systems, Hyper-V is still insufficient. The functions and deficiencies of RGS software are as mentioned above.
(2)XenServer+HDX(2)XenServer+HDX
XenServer(美国思杰公司推出的虚拟化软件产品)是一种全面而易于管理的服务器虚拟化平台,能高效地管理Windows和Linux虚拟服务器,可提供经济高效的服务器整合和业务连续性,XenServer具备了操作系统的功能,能直接安装在服务器上引导启动并运行。美国思杰公司的HDX(High Definition Experience,高清使用体验)则是针对桌面虚拟化和应用虚拟化市场推出的远程高清交互式产品,能实现对多媒体、语音、视频和3D图形交互。但在工程设计领域,该产品只能实现基于Windows平台的桌面虚拟化交互,而且无法实现对GPU资源的共享。XenServer (a virtualization software product launched by Citrix, USA) is a comprehensive and easy-to-manage server virtualization platform that can efficiently manage Windows and Linux virtual servers and provide cost-effective server consolidation and business continuity. XenServer has With the function of the operating system, it can be directly installed on the server to boot and run. HDX (High Definition Experience) of American Citrix is a remote high-definition interactive product launched for the desktop virtualization and application virtualization markets, which can realize interaction with multimedia, voice, video and 3D graphics. But in the field of engineering design, this product can only realize desktop virtualization interaction based on Windows platform, and cannot realize the sharing of GPU resources.
(3)KVM+NICE DCV(3)KVM+NICE DCV
NICE DCV(美国亚马逊公司旗下的NICE公司推出的DCV产品)是一种能在标准网络上远程访问2D或3D应用的交互式产品,使用户可利用远端的3D高端图形卡、快速的I/O性能,以及大量的内存节点。值得强调的是,通过在KVM(Kernel-based Virtual Machine,基于内核的虚拟机)虚拟化平台上部署NICE DCV,能充分发挥该软件的性能。该方案能支持Linux操作系统,而且在硬件层面上NICE DCV支持各种GPU虚拟化技术,利用NVIDIA公司的专用图形卡配合vGPU驱程,给每个虚拟机分配vGPU,可在一定程度上实现了GPU资源的共享。NICE DCV (the DCV product launched by NICE, a subsidiary of Amazon in the United States) is an interactive product that can remotely access 2D or 3D applications on a standard network, enabling users to use remote 3D high-end graphics cards, fast I/O O performance, and a large number of memory nodes. It is worth emphasizing that by deploying NICE DCV on the KVM (Kernel-based Virtual Machine, kernel-based virtual machine) virtualization platform, the performance of the software can be fully utilized. This solution can support the Linux operating system, and at the hardware level, NICE DCV supports various GPU virtualization technologies. Using NVIDIA's dedicated graphics card and vGPU driver to assign vGPU to each virtual machine can be realized to a certain extent. Sharing of GPU resources.
3、多机访问图形集群获取虚拟桌面服务3. Multi-machine access graphics cluster to obtain virtual desktop service
前面两种方案中提到的虚拟桌面服务,都是建立在单台图形工作站基础上实现虚拟桌面服务的,如果用户数量过多,则在单台图形工作站上创建虚拟机的形式就无法满足应用需求,因此就需要以多台图形工作站的形式来代替单台图形工作站,这就是图形集群的概念。第三种方案主要是建立在前两种方案的基础上,重点解决图形集群的聚合问题,即怎样组织管理当前的多台图形工作站,使他们能够像一台机器一样方便高效的实现对多用户的图形服务。The virtual desktop service mentioned in the previous two schemes is based on a single graphics workstation to realize the virtual desktop service. If the number of users is too large, the form of creating a virtual machine on a single graphics workstation cannot meet the requirements of the application. Therefore, it is necessary to replace a single graphics workstation in the form of multiple graphics workstations, which is the concept of a graphics cluster. The third scheme is mainly based on the previous two schemes, and focuses on solving the aggregation problem of the graphics cluster, that is, how to organize and manage the current multiple graphics workstations so that they can be as convenient and efficient as a single machine. graphics services.
如果要把独立的多台图形工作站聚合成为统一的图形集群系统,首先需要有渲染任务管理软件进行资源分配与调度,典型的如VCM(Visualization Cluster Manager,可视化集群管理器)和TechViz(法国TechViz公司的可视化软件产品)等。If you want to aggregate multiple independent graphics workstations into a unified graphics cluster system, you first need to have rendering task management software for resource allocation and scheduling, such as VCM (Visualization Cluster Manager, Visualization Cluster Manager) and TechViz (French TechViz company) visualization software products), etc.
(1)VCM(1)VCM
以色列Orad公司推出的VCM是在图形集群管理节点上安装的集群管理软件,它是通过规划图形节点的连接方式来分配渲染任务,再利用专用集成接口实现图像的集成与同步。这种集群管理方式较好的实现了渲染任务的分配与管理,但其理念主要是为多通道显示系统提供服务,比较适合多路同步输出的大屏显示,在应用方面明显不够灵活与智能。The VCM launched by Israel Orad is a cluster management software installed on the graphics cluster management nodes. It distributes rendering tasks by planning the connection mode of graphics nodes, and then realizes the integration and synchronization of images by using a dedicated integrated interface. This cluster management method better realizes the distribution and management of rendering tasks, but its concept is mainly to provide services for multi-channel display systems, which is more suitable for large-screen displays with multi-channel synchronous output, and it is obviously not flexible and smart enough in terms of application.
(2)TechViz(2)TechViz
TechViz在集群管理方面采用了另外一种思路,在集群的管理节点上安装完整的图形应用软件,当图形应用软件运行后本来是要直接调用本地的图形卡进行渲染显示,但是TechViz软件将高分辨率的图形渲染任务以OpenGL(Open Graphics Library,开放图形库)指令流的形式通过网络分配到渲染节点上,再利用渲染节点的图形卡进行渲染输出,各渲染节点之间通过同步卡进行输出同步。这种集群管理方案不需要在渲染节点上安装图形应用软件,而且在渲染任务的分配上也要灵活很多。TechViz adopts another way of thinking in terms of cluster management. It installs a complete graphics application software on the management node of the cluster. When the graphics application software is running, it originally needs to directly call the local graphics card for rendering and display, but TechViz software will use high-resolution The high-speed graphics rendering task is distributed to the rendering nodes through the network in the form of OpenGL (Open Graphics Library, open graphics library) instruction stream, and then the graphics card of the rendering node is used for rendering output, and the output synchronization between each rendering node is performed through the synchronization card . This cluster management solution does not require graphics application software to be installed on the rendering nodes, and it is also much more flexible in the allocation of rendering tasks.
(3)其他的软件(3) Other software
除了上述两种软件外,国内外还有一些针对图形渲染的集群管理软件,比如Muster(美国Virtual Vertex公司的集群渲染软件)、Platform LSF(美国IBM公司的集群管理调度软件)和EnFuzion(中国拓林思公司的集群渲染软件)等,它们能实时管理和监视渲染节点的工作情况,避免渲染节点的空闲,使用户在最短的时间得到最终渲染产品。In addition to the above two software, there are some cluster management software for graphics rendering at home and abroad, such as Muster (cluster rendering software of Virtual Vertex in the United States), Platform LSF (cluster management and scheduling software of IBM in the United States) and EnFuzion (China Tuo Linsi's cluster rendering software), etc., they can manage and monitor the working conditions of the rendering nodes in real time, avoid the idleness of the rendering nodes, and enable users to obtain the final rendering products in the shortest time.
图形集群系统在为多用户提供远程实时渲染服务方面提供了良好的硬件基础,而现阶段的集群渲染软件系统研究多侧重于集群架构、集群管理、负载均衡以及并行渲染等方面,虽能够在同步并行模式下为用户提供更快速、更高效的解决方案,但并未解决大量远程用户基于不同需求的渲染应用问题。The graphics cluster system provides a good hardware foundation in providing remote real-time rendering services for multiple users, and the current research on cluster rendering software systems mostly focuses on cluster architecture, cluster management, load balancing, and parallel rendering. The parallel mode provides users with a faster and more efficient solution, but it does not solve the rendering application problem of a large number of remote users based on different needs.
不同于传统意义上的集群渲染系统,本发明提出的技术主要采用面向多用户的异步分布式工作模式,依托图形集群硬件环境,利用虚拟化手段来满足不同用户按需使用的需求。其核心思想是用户远程访问图形集群,图形集群为用户提供实时高效的运行环境,同时响应用户在本地的交互操作,使用户获得一种接近图形工作站的工作体验,其数据资源和计算程序都部署在远端,既方便管理又确保了数据安全。Different from the cluster rendering system in the traditional sense, the technology proposed by the present invention mainly adopts the multi-user-oriented asynchronous distributed working mode, relies on the graphics cluster hardware environment, and uses virtualization means to meet the needs of different users for on-demand use. Its core idea is that users access the graphics cluster remotely. The graphics cluster provides users with a real-time and efficient operating environment, and at the same time responds to the user's local interactive operations, enabling users to obtain a working experience close to a graphics workstation. Its data resources and computing programs are deployed. At the remote end, it is convenient for management and ensures data security.
发明内容Contents of the invention
为了解决上述技术问题,本发明提供了一种基于图形集群的远程实时渲染平台构建方法,通过基于Docker架构的虚拟桌面系统部署,在图形集群上部署和运行VDI,为用户开辟独立的虚拟桌面系统,在Docker运行环境下直接调用显示驱动以实现GPU(GraphicsProcessing Unit,图形处理器)加速渲染,同时采用VNC协议建立远程桌面连接,为用户建立实时的图像传输通道,结合图形集群动态任务调度与管理机制,为多用户提供一种异步分布式的实时渲染服务。In order to solve the above-mentioned technical problems, the present invention provides a method for constructing a remote real-time rendering platform based on a graphics cluster. By deploying a virtual desktop system based on a Docker architecture, VDI is deployed and operated on a graphics cluster to create an independent virtual desktop system for users. , directly call the display driver in the Docker operating environment to achieve GPU (Graphics Processing Unit, graphics processing unit) accelerated rendering, and at the same time use the VNC protocol to establish a remote desktop connection to establish a real-time image transmission channel for users, combined with dynamic task scheduling and management of graphics clusters The mechanism provides an asynchronous distributed real-time rendering service for multiple users.
本发明的目的通过以下技术方案来具体实现:The purpose of the present invention is specifically achieved through the following technical solutions:
基于图形集群的远程实时渲染平台构建方法,包括:A method for constructing a remote real-time rendering platform based on a graphics cluster, including:
步骤一、利用Docker架构在图形集群内部实现虚拟桌面系统的部署;Step 1, using the Docker architecture to implement the deployment of the virtual desktop system inside the graphics cluster;
步骤二、在所述虚拟桌面系统中嵌入VNC服务端,VNC客户端访问所述VNC服务端后,通过VNC协议建立远程桌面连接;Step 2, embedding the VNC server end in the virtual desktop system, after the VNC client accesses the VNC server end, establish a remote desktop connection through the VNC protocol;
步骤三、图形集群根据远程桌面连接情况进行动态负载均衡,建立图形集群动态任务调度与管理机制;Step 3, the graphics cluster performs dynamic load balancing according to the remote desktop connection status, and establishes a dynamic task scheduling and management mechanism for the graphics cluster;
步骤四、通过图形集群动态任务调度与管理机制,在平台客户端与图形集群服务端间建立实时图像传输通道,综合集成基于图形集群的远程实时渲染平台。Step 4. Through the dynamic task scheduling and management mechanism of the graphics cluster, a real-time image transmission channel is established between the platform client and the graphics cluster server, and a remote real-time rendering platform based on the graphics cluster is comprehensively integrated.
步骤一,具体包括:Step 1, specifically includes:
在图形集群渲染节点操作系统上创建Docker容器;Create a Docker container on the graphics cluster rendering node operating system;
将封装后的虚拟桌面系统做成Docker镜像存入共享存储系统中;Make the encapsulated virtual desktop system into a Docker image and store it in the shared storage system;
Docker容器通过加载Docker镜像,在图形集群内部实现虚拟桌面系统的部署,同时在虚拟桌面系统内实现基于Docker架构的GPU渲染加速。By loading the Docker image, the Docker container realizes the deployment of the virtual desktop system in the graphics cluster, and at the same time realizes the GPU rendering acceleration based on the Docker architecture in the virtual desktop system.
其中,所述在虚拟桌面系统内实现基于Docker架构的GPU渲染加速的步骤,包括:Wherein, the step of realizing GPU rendering acceleration based on Docker architecture in the virtual desktop system includes:
将图形集群渲染节点操作系统的显卡驱程内核文件映射到Docker容器的集成环境中,同时调用OpenGL(Open Graphics Library,开放图形库)的窗口扩展插件,实现在虚拟桌面系统内的GPU(Graphics Processing Unit,图形处理器)实时渲染加速。Map the graphics card driver kernel file of the graphics cluster rendering node operating system to the integrated environment of the Docker container, and at the same time call the window extension plug-in of OpenGL (Open Graphics Library, Open Graphics Library) to realize the GPU (Graphics Processing Unit, graphics processor) real-time rendering acceleration.
其中,所述虚拟桌面系统的显示采用虚拟外接输出的方式,该方式包括:Wherein, the display of the virtual desktop system adopts a virtual external output mode, which includes:
为每一个Docker容器分配虚拟的显示输出,当用户访问该Docker容器时,Docker容器中的图形通过虚拟的显示输出,输出至客户端,使得GPU渲染不依赖于实际的图形卡输出接口。A virtual display output is assigned to each Docker container. When a user accesses the Docker container, the graphics in the Docker container are output to the client through the virtual display output, so that GPU rendering does not depend on the actual graphics card output interface.
步骤二具体包括:Step two specifically includes:
VNC服务端利用分块匹配的区域变化检测算法对发生变化的图像区域进行筛选,经图像压缩后发送给对应的VNC客户端,通过VNC协议建立基于C/S架构的远程桌面连接;The VNC server uses the area change detection algorithm of block matching to screen the changed image area, and sends it to the corresponding VNC client after image compression, and establishes a remote desktop connection based on the C/S architecture through the VNC protocol;
其中,所述VNC服务端利用分块匹配的区域变化检测算法对发生变化的图像区域进行筛选,包括:Wherein, the VNC server uses a region change detection algorithm of block matching to screen the changed image region, including:
设定需要变化检测的单位区域;Set the unit area that requires change detection;
获取截获系统屏幕重绘区域的信息;Obtain the information of the intercepted system screen redrawing area;
若截获的系统屏幕重绘区域小于单位区域,发送该区域位置信息;If the intercepted system screen redrawing area is smaller than the unit area, send the location information of the area;
若截获的系统屏幕重绘区域大于单位区域,将截获系统屏幕重绘区域进行拆分,将拆分区域的坐标信息存储至链表中,对链表中每个拆分区域的坐标信息进行遍历检测后得到需要重新发送的变化区域位置信息,将需要重新发送的变化区域的位置信息进行存储并发送。If the intercepted system screen redrawing area is larger than the unit area, split the intercepted system screen redrawing area, store the coordinate information of the split area in the linked list, and traverse and detect the coordinate information of each split area in the linked list The location information of the changed area that needs to be resent is obtained, and the location information of the changed area that needs to be resent is stored and sent.
步骤三中,所述图形集群动态任务调度与管理机制包括:In step 3, the graphics cluster dynamic task scheduling and management mechanism includes:
在一定的负载均衡策略下,由集群管理节点合理安排渲染节点为用户提供服务资源;Under a certain load balancing strategy, the cluster management node reasonably arranges the rendering nodes to provide service resources for users;
所述图形集群动态任务管理与调度涉及到包括但不限于单用户对单节点、多用户对单节点、单用户对多节点和/或多用户对多节点四种情况中的一种或多种情况间动态转换。The dynamic task management and scheduling of the graphics cluster involves but is not limited to one or more of four situations: single user to single node, multi-user to single node, single user to multi-node and/or multi-user to multi-node Dynamic transition between situations.
所述负载均衡策略包括:The load balancing strategy includes:
在单用户对单节点情况下,采用轮询策略分配渲染节点;In the case of a single user to a single node, the round-robin strategy is used to allocate rendering nodes;
在多用户对多节点的情况,综合考虑渲染节点的资源利用率、网络带宽以及I/O(Input/Output,输入/输出)速率等指标,利用动态负载均衡模型求解渲染系统负载方差或标准差为极小值的单目标规划问题,得到优化后的图形集群负载均衡策略。In the case of multiple users to multiple nodes, comprehensively consider the resource utilization rate of the rendering node, network bandwidth, and I/O (Input/Output, input/output) rate and other indicators, and use the dynamic load balancing model to solve the variance or standard deviation of the rendering system load For the single-objective programming problem with minimal values, an optimized graph cluster load balancing strategy is obtained.
其中,所述综合集成的基于图形集群的远程实时渲染平台包括平台客户端、图形集群管理节点、图形集群渲染节点和共享存储系统四个部分;Wherein, the comprehensively integrated remote real-time rendering platform based on graphics cluster includes four parts: platform client, graphics cluster management node, graphics cluster rendering node and shared storage system;
平台客户端部署于用户操作终端,用于向图形集群服务端发起应用请求;The platform client is deployed on the user operation terminal, and is used to initiate an application request to the graphics cluster server;
图形集群管理节点和图形集群渲染节点部署于图形集群服务端,用于响应平台客户端发起应用请求;The graphics cluster management node and the graphics cluster rendering node are deployed on the graphics cluster server to respond to the application request initiated by the platform client;
共享存储系统,用于存储管理用户配置文件、虚拟桌面系统镜像和/或渲染模型数据信息。The shared storage system is used for storing and managing user configuration files, virtual desktop system images and/or rendering model data information.
步骤四具体包括:Step four specifically includes:
将VNC客户端嵌入到平台客户端,Docker容器和VNC服务端嵌入到图形集群渲染节点,Docker镜像存储于共享存储系统中,由图形集群管理节点依据动态任务调度与管理机制进行集群负载均衡;Embed the VNC client into the platform client, embed the Docker container and VNC server into the graphics cluster rendering node, store the Docker image in the shared storage system, and the graphics cluster management node performs cluster load balancing according to the dynamic task scheduling and management mechanism;
接收到平台客户端发起应用请求时,图形集群管理节点为平台客户端指定渲染节点,渲染节点启动Docker容器并加载Docker镜像,同时利用VNC协议建立远程实时渲染通道,为用户提供远程实时渲染服务。When receiving the application request initiated by the platform client, the graphics cluster management node designates a rendering node for the platform client. The rendering node starts the Docker container and loads the Docker image, and uses the VNC protocol to establish a remote real-time rendering channel to provide users with remote real-time rendering services.
其中,所述远程实时渲染平台的应用模式包括:Wherein, the application mode of the remote real-time rendering platform includes:
图形集群服务端在接到平台客户端发起的应用请求后,由图形集群管理节点将渲染任务分配至渲染节点,渲染节点通过创建独立的虚拟桌面系统为用户提供渲染服务。After the graphics cluster server receives the application request initiated by the platform client, the graphics cluster management node will distribute the rendering tasks to the rendering nodes, and the rendering nodes will provide users with rendering services by creating an independent virtual desktop system.
本发明针对大量远程用户基于不同需求的渲染应用问题,依托图形集群硬件环境,利用基于Docker架构的虚拟化手段来为用户提供实时高效的运行环境,同时响应用户在本地的交互操作。该方法不仅适用于不同的硬件环境与操作系统平台,而且能够实现多用户共享GPU渲染资源,使用户获得一种接近图形工作站的工作体验。Aiming at the rendering application problem of a large number of remote users based on different requirements, the present invention relies on the graphics cluster hardware environment and utilizes the virtualization method based on the Docker architecture to provide users with a real-time and efficient operating environment while responding to the user's local interactive operations. This method is not only applicable to different hardware environments and operating system platforms, but also enables multiple users to share GPU rendering resources, enabling users to obtain a work experience close to that of a graphics workstation.
附图说明Description of drawings
图1是基于图形集群的远程实时渲染平台构建方法流程图。Fig. 1 is a flowchart of a method for constructing a remote real-time rendering platform based on a graphics cluster.
图2是虚拟机与Docker的技术机制对比图。Figure 2 is a comparison diagram of the technical mechanism of the virtual machine and Docker.
图3是基于图形集群的远程实时渲染平台总体框架图。Fig. 3 is an overall frame diagram of a remote real-time rendering platform based on a graphics cluster.
图4是基于图形集群的远程实时渲染平台功能模块设计图。Fig. 4 is a design diagram of functional modules of a remote real-time rendering platform based on a graphics cluster.
图5是用户使用远程实时渲染平台的应用流程示例图。FIG. 5 is an example diagram of an application flow of a user using a remote real-time rendering platform.
图6a是主机操作系统渲染效果图;图6b是Docker容器渲染效果图。Figure 6a is the rendering effect of the host operating system; Figure 6b is the rendering effect of the Docker container.
图7a是单节点支持两用户示意图;图7b是单节点支持四用户示意图。Fig. 7a is a schematic diagram of a single node supporting two users; Fig. 7b is a schematic diagram of a single node supporting four users.
具体实施方式Detailed ways
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。In order to enable those skilled in the art to better understand the solutions of the present invention, the following will clearly and completely describe the technical solutions in the embodiments of the present invention in conjunction with the drawings in the embodiments of the present invention. Obviously, the described embodiments are only It is an embodiment of a part of the present invention, but not all embodiments. Based on the embodiments of the present invention, all other embodiments obtained by persons of ordinary skill in the art without making creative efforts shall fall within the protection scope of the present invention.
参照图1,图1示出了本发明提供的一种基于图形集群的远程实时渲染平台构建方法的一实施例的流程图,该方法包括:步骤一至步骤四。Referring to FIG. 1 , FIG. 1 shows a flow chart of an embodiment of a method for constructing a graphics cluster-based remote real-time rendering platform provided by the present invention. The method includes: Steps 1 to 4.
在步骤一中,利用Docker架构在图形集群内部实现虚拟桌面系统的部署。In step 1, the deployment of the virtual desktop system is implemented within the graphics cluster using the Docker architecture.
首先,在图形集群上部署和运行VDI,为用户开辟独立的虚拟桌面系统,可较好的满足不同用户的应用需求。考虑到虚拟机运行模式对GPU渲染能力的制约,系统采用基于Docker(应用容器引擎)的VDI解决方案,在Docker运行环境下直接调用显示驱动,大大提升了GPU渲染效率。First, deploying and running VDI on a graphics cluster provides users with an independent virtual desktop system, which can better meet the application requirements of different users. Considering the constraints of the virtual machine operation mode on the GPU rendering capability, the system adopts a VDI solution based on Docker (application container engine), and directly invokes the display driver in the Docker operating environment, which greatly improves the GPU rendering efficiency.
一般基于虚拟机的虚拟桌面系统都是通过调用基础操作系统的显示驱动实现显示功能,其本身显示资源有限且处理模式多属于串行工作模式,无法充分发挥图形集群高端显卡的GPU渲染能力。基于Docker的VDI解决方案利用GPU虚拟化技术穿透基础操作系统的显示驱动,在多个独立的虚拟机内部实现基于GPU的图形加速,从而在一定程度上实现多用户对GPU资源的共享。参考图2,图2为虚拟机与Docker的技术机制对比示意图。Generally, the virtual desktop system based on the virtual machine realizes the display function by calling the display driver of the basic operating system. Its own display resources are limited and the processing mode is mostly a serial working mode, which cannot fully utilize the GPU rendering capability of the high-end graphics card of the graphics cluster. The Docker-based VDI solution uses GPU virtualization technology to penetrate the display driver of the basic operating system and realize GPU-based graphics acceleration in multiple independent virtual machines, thereby realizing the sharing of GPU resources by multiple users to a certain extent. Referring to FIG. 2, FIG. 2 is a schematic diagram of a technical mechanism comparison between a virtual machine and Docker.
该步骤具体包括:在图形集群渲染节点操作系统上创建Docker容器;将封装后的虚拟桌面系统做成Docker镜像存入共享存储系统中;Docker容器通过加载Docker镜像,在图形集群内部实现虚拟桌面系统的部署,同时在虚拟桌面系统内实现基于Docker架构的GPU渲染加速。This step specifically includes: creating a Docker container on the operating system of the graphics cluster rendering node; making the encapsulated virtual desktop system into a Docker image and storing it in the shared storage system; loading the Docker image to the Docker container to realize the virtual desktop system inside the graphics cluster Deployment, while realizing GPU rendering acceleration based on Docker architecture in the virtual desktop system.
其中,Docker是基于LXC(Linux Container,Linux容器)的高级容器开源引擎,主要包括三种部件,即守护进程(Docker daemon),镜像(Image)和容器(Container),其中,守护进程作为服务端接收来自客户的请求并进行处理,镜像是容器运行时的只读模板,容器包含用户应用运行所需要的集成环境。Among them, Docker is an advanced container open source engine based on LXC (Linux Container, Linux Container), which mainly includes three components, namely, the daemon (Docker daemon), the image (Image) and the container (Container), where the daemon is used as the server Receive requests from customers and process them. The image is a read-only template when the container is running. The container contains the integrated environment required for the user application to run.
渲染加速的步骤具体包括:将图形集群渲染节点操作系统的显卡驱程内核文件映射到Docker容器的集成环境中,同时调用OpenGL(Open Graphics Library,开放图形库)的窗口扩展插件,实现在虚拟桌面系统内的GPU(Graphics Processing Unit,图形处理器)实时渲染加速。The steps of rendering acceleration specifically include: mapping the graphics card driver kernel file of the graphics cluster rendering node operating system to the integrated environment of the Docker container, and calling the window extension plug-in of OpenGL (Open Graphics Library, Open Graphics Library) to realize the virtual desktop The GPU (Graphics Processing Unit, Graphics Processing Unit) in the system accelerates real-time rendering.
由于Docker容器与主机操作系统共享操作系统内核,用户应用可直接调用主机操作系统中的硬件资源。但在实际应用过程中,用户在容器直接提供的集成环境中运行应用无法实现有效的GPU渲染。经过大量的测试实验,将主机操作系统的显卡驱程内核文件映射到容器的集成环境中,同时调用OpenGL的X窗口扩展插件,能够较好的实现GPU的渲染加速。Since the Docker container shares the operating system kernel with the host operating system, user applications can directly call hardware resources in the host operating system. However, in the actual application process, users cannot achieve effective GPU rendering by running applications in the integrated environment directly provided by the container. After a large number of tests and experiments, mapping the graphics card driver kernel file of the host operating system to the integrated environment of the container, and calling the X window extension plug-in of OpenGL at the same time, can better achieve GPU rendering acceleration.
进一步的,所述虚拟桌面系统的显示采用虚拟外接输出的方式,该方式包括:Further, the display of the virtual desktop system adopts a virtual external output method, which includes:
为每一个Docker容器分配虚拟的显示输出,当用户访问该Docker容器时,Docker容器中的图形通过虚拟的显示输出,输出至客户端,使得GPU渲染不依赖于实际的图形卡输出接口。A virtual display output is assigned to each Docker container. When a user accesses the Docker container, the graphics in the Docker container are output to the client through the virtual display output, so that GPU rendering does not depend on the actual graphics card output interface.
通常情况下,GPU渲染流水线进行屏幕在线式的渲染,而多用户的异步访问无法实现屏幕共享。针对这一问题,采用虚拟外接输出的方式,为每一个容器分配虚拟的显示输出,当用户访问该容器时图形将显示输出至客户端,使得GPU渲染不依赖于实际的图形卡输出接口,较好的解决了多用户异步应用的问题。Usually, the GPU rendering pipeline performs online rendering on the screen, and asynchronous access by multiple users cannot realize screen sharing. In response to this problem, a virtual external output method is used to assign a virtual display output to each container. When the user accesses the container, the graphics will be displayed and output to the client, so that GPU rendering does not depend on the actual graphics card output interface. Good solution to the problem of multi-user asynchronous applications.
在步骤二中,在所述虚拟桌面系统中嵌入VNC(Virtual Network Console,虚拟网络控制台)服务端,VNC客户端访问所述VNC服务端后,通过VNC协议建立远程桌面连接。In step 2, a VNC (Virtual Network Console, virtual network console) server is embedded in the virtual desktop system, and after the VNC client accesses the VNC server, a remote desktop connection is established through the VNC protocol.
VNC服务端利用分块匹配的区域变化检测算法对发生变化的图像区域进行筛选,经图像压缩后发送给对应的VNC客户端,通过VNC协议建立基于C/S架构的远程桌面连接。The VNC server uses the area change detection algorithm of block matching to screen the changed image area, and sends it to the corresponding VNC client after image compression, and establishes a remote desktop connection based on the C/S architecture through the VNC protocol.
其中,所述VNC服务端利用分块匹配的区域变化检测算法对发生变化的图像区域进行筛选,包括:Wherein, the VNC server uses a region change detection algorithm of block matching to screen the changed image region, including:
设定需要变化检测的单位区域;Set the unit area that requires change detection;
获取截获系统屏幕重绘区域的信息;Obtain the information of the intercepted system screen redrawing area;
若截获的系统屏幕重绘区域小于单位区域,发送该区域位置信息;If the intercepted system screen redrawing area is smaller than the unit area, send the location information of the area;
若截获的系统屏幕重绘区域大于单位区域,将截获系统屏幕重绘区域进行拆分,将拆分区域的坐标信息存储至链表中,对链表中每个拆分区域的坐标信息进行遍历检测后得到需要重新发送的变化区域位置信息,将需要重新发送的变化区域的位置信息进行存储并发送。If the intercepted system screen redrawing area is larger than the unit area, split the intercepted system screen redrawing area, store the coordinate information of the split area in the linked list, and traverse and detect the coordinate information of each split area in the linked list The location information of the changed area that needs to be resent is obtained, and the location information of the changed area that needs to be resent is stored and sent.
其中,该步骤具体为:VNC机制通过采用消息钩子机制截获系统屏幕重绘区域信息。设定需要变化检测的单位区域,如记单位区域rgn大小为32×32,若截获的系统屏幕重绘区域小于单位区域,则直接发送该区域位置信息;若截获系统屏幕重绘区域大于单位区域,则将截系统屏幕重绘获区域进行拆分,得到一个矩形链表(遍历链表)来存储拆分区域坐标信息,记为array_list,定义一个变化区域记为vnc_rgn,专门保存需要重新发送的区域位置信息,对array_list每个成员矩形调用此检测算法进行变化区域检测。Wherein, this step specifically includes: the VNC mechanism intercepts the redrawing area information of the system screen by using the message hook mechanism. Set the unit area that requires change detection. For example, the size of the unit area rgn is 32×32. If the captured system screen redraw area is smaller than the unit area, the location information of the area will be sent directly; if the intercepted system screen redraw area is larger than the unit area , then redraw the captured area of the screenshot system screen and split it to obtain a rectangular linked list (traversing the linked list) to store the coordinate information of the split area, which is recorded as array_list, and defines a change area as vnc_rgn, which specifically saves the position of the area that needs to be resent Information, call this detection algorithm for each member rectangle of array_list to detect the changed area.
一优选实施例:A preferred embodiment:
(1)假设其中一个成员矩形为arri,如果arri的长宽都小于32×32,则直接作为需重新发送的变化区域,保存到vnc_rgn中,否则对arri进行分析检测。(1) Suppose one of the member rectangles is arri. If the length and width of arri are both smaller than 32×32, it will be directly used as the changed area to be resent and saved in vnc_rgn, otherwise, analyze and detect arri.
(2)首先定义一个新的矩形arrj(arri.left,0,arri.right,0),在arri中找到发生变化的行,记录该行的y坐标,记arrj.top=y,同时y+=16递增找到未发生变化行,暂时记arrj.bottom=y;然后从arrj底部y-=1进行比较,寻找内容发生变化的行,找到后将此行的y坐标设置成arrj.bottom=y。至此确定了变化矩形arrj的最终的top、bottom坐标。同时将arri的值设为arri(arri.left,arrj.bottom,arri.right,arri.bottom)。在对arrj分析完毕后接着对arri遍历分析直至结束。(2) First define a new rectangle arrj(arri.left, 0, arri.right, 0), find the changed row in arri, record the y coordinate of the row, record arrj.top=y, and y+= 16 Incrementally find the line that has not changed, temporarily record arrj.bottom=y; then compare from the bottom of arrj y-=1, find the line that has changed content, and set the y coordinate of this line to arrj.bottom=y after finding it. So far, the final top and bottom coordinates of the changing rectangle arrj have been determined. Also set the value of arri to arri(arri.left, arrj.bottom, arri.right, arri.bottom). After the analysis of arrj is completed, the analysis of arri is traversed until the end.
(3)确定矩形arrj后,对矩形arrj进行分析。首先定义一个矩形arrn(0,0,0,0),在arrj中寻找最先发生改变的列,找到后记录发生变化的区域的left、top坐标,arrn.left=x,arrn.top=y,分别对x、y轴方向循环遍历进行分析(记为x+=32,y+=32),如果此列屏幕像素数据改变,则x+=32继续比较;否则将记录arrn.right=x,对y轴方向进行同样的比较,y+=32,并记录arrn.bottom=y,最终得到需要发送的变化区域矩形坐标,并将此矩形保存到最终发送的矩形链表中,同时记录下arrk(arrn.right,arrn.top,arrj.right,arrn.bottom)、arrm(arrn.left,arrn.bottom,arrj.right,arrj.bottom),分别将arrk、arrm赋值给arrj进行类似分析检测,依次循环遍历整个arrj,直到结束。(3) After determining the rectangle arrj, analyze the rectangle arrj. First define a rectangle arrn(0, 0, 0, 0), find the first changed column in arrj, and record the left and top coordinates of the changed area after finding, arn.left=x, arn.top=y , respectively analyze the cyclic traversal of the x and y axis directions (recorded as x+=32, y+=32), if the screen pixel data of this column changes, then x+=32 continues to compare; otherwise, it will record arrn.right=x, for y Make the same comparison in the axis direction, y+=32, and record arn.bottom=y, and finally get the rectangle coordinates of the change area to be sent, and save this rectangle in the final rectangle list, and record arrk(arrn.right , arrn.top, arrj.right, arrn.bottom), arrm(arrn.left, arrn.bottom, arrj.right, arrj.bottom), respectively assign arrk and arrm to arrj for similar analysis and detection, and cycle through the entire arrj until the end.
通过此屏幕变化区域检测算法,对整个array_list链表的成员矩形进行遍历后得到需要重新发送的变化区域坐标信息。Through this screen change area detection algorithm, after traversing the member rectangles of the entire array_list linked list, the coordinate information of the change area that needs to be resent is obtained.
另外,对于图像的实时传输控制,系统采用C/S(Client/Server,客户端/服务器)架构在客户端与服务端之间建立图像传输通道,服务端采集、压缩图像后发送给客户端,客户端接收、解压图像后显示给用户。图像实时传输采用VNC协议,服务端利用分块匹配的区域变化检测算法对发生变化的图像区域进行筛选,经图像压缩后发送给客户端,大大减少了网络发送数据量。客户端图像刷新速度由用户自主控制,服务端在接收到客户端的刷新请求后进行图像传输,当客户端较忙或网络延迟较大时,图像刷新速度会相应的降低。In addition, for the real-time transmission control of images, the system adopts C/S (Client/Server, client/server) architecture to establish an image transmission channel between the client and the server, and the server collects and compresses the images and sends them to the client. The client receives and decompresses the image and displays it to the user. The real-time transmission of images adopts the VNC protocol, and the server uses the area change detection algorithm of block matching to screen the changed image areas, and sends them to the client after image compression, which greatly reduces the amount of data sent by the network. The image refresh speed of the client is controlled by the user. The server transmits the image after receiving the refresh request from the client. When the client is busy or the network delay is large, the image refresh speed will be reduced accordingly.
增强图像传输实时性的方法主要包括两方面,一是提升区域变化检测算法的效率,二是使用压缩率更高并且编码时间更短的图像压缩算法。对VNC的区域变化检测算法进行了改进,通过隔行扫描对图像变化区域进行细分,进一步消除了冗余的未变化图像数据。系统对该算法进行了测试,以1280×800的24位屏幕图像为例,客户端屏幕刷新间隔为40ms,在文字处理、网页浏览等应用上数据发送量在200kb/s左右,应用该算法平均可降低约10%的数据量;在高动态图像应用上数据发送量超过4Mb/s,应用该算法对数据量影响很小,而CPU使用率有明显提升,所以方法一对高动态图像传输的实时性影响较弱。综合考虑压缩率和编码所花费的时间,系统常采用效率更高的MJPEG(一种图像压缩算法)算法对图像进行压缩编码,实验结果表明,相同条件下采用MJPEG算法数据发送流量可降至Zlib(一种VNC协议默认的图像压缩算法)算法的50%以下,能够在一定程度上避免由于数据量过大而造成的网络拥塞问题。The method of enhancing the real-time performance of image transmission mainly includes two aspects, one is to improve the efficiency of the region change detection algorithm, and the other is to use an image compression algorithm with higher compression rate and shorter encoding time. The area change detection algorithm of VNC is improved, and the image change area is subdivided by interlaced scanning, which further eliminates redundant unchanged image data. The system has tested the algorithm. Taking a 1280×800 24-bit screen image as an example, the client screen refresh interval is 40ms, and the data transmission volume in word processing, web browsing and other applications is about 200kb/s. It can reduce the amount of data by about 10%; in high dynamic image applications, the amount of data sent exceeds 4Mb/s, and the application of this algorithm has little impact on the amount of data, while the CPU usage is significantly improved, so the method is suitable for high dynamic image transmission. Real-time impact is weak. Considering the compression rate and the time spent on encoding, the system often uses the more efficient MJPEG (an image compression algorithm) algorithm to compress and encode the image. The experimental results show that the data transmission traffic using the MJPEG algorithm can be reduced to Zlib under the same conditions. (A default image compression algorithm of the VNC protocol) is less than 50% of the algorithm, which can avoid network congestion problems caused by excessive data volume to a certain extent.
在步骤三中,图形集群根据远程桌面连接情况进行动态负载均衡,建立图形集群动态任务调度与管理机制。In step 3, the graphics cluster performs dynamic load balancing according to the connection status of the remote desktop, and establishes a dynamic task scheduling and management mechanism for the graphics cluster.
所述图形集群动态任务调度与管理机制包括:The graphics cluster dynamic task scheduling and management mechanism includes:
在一定的负载均衡策略下,由集群管理节点合理安排渲染节点为用户提供服务资源;所述图形集群动态任务管理与调度涉及到包括但不限于单用户对单节点、多用户对单节点、单用户对多节点和/或多用户对多节点四种情况中的一种或多种情况间动态转换。Under a certain load balancing strategy, the cluster management node reasonably arranges the rendering nodes to provide service resources for users; the dynamic task management and scheduling of the graphics cluster involves including but not limited to single user to single node, multi-user to single node, single Dynamic conversion between one or more of the four situations of user to multi-node and/or multi-user to multi-node.
所述负载均衡策略包括:The load balancing strategy includes:
在单用户对单节点情况下,采用轮询策略分配渲染节点;在多用户对多节点的情况,综合考虑渲染节点的资源利用率、网络带宽以及I/O(Input/Output,输入/输出)速率等指标,利用动态负载均衡模型求解渲染系统负载方差或标准差为极小值的单目标规划问题,得到优化后的图形集群负载均衡策略。In the case of single user to single node, the polling strategy is used to allocate rendering nodes; in the case of multi-user to multi-node, the resource utilization rate, network bandwidth and I/O (Input/Output, input/output) of rendering nodes are comprehensively considered Speed and other indicators, use the dynamic load balancing model to solve the single-objective programming problem with the minimum variance or standard deviation of the rendering system load, and obtain the optimized graphics cluster load balancing strategy.
远程实时渲染系统的任务调度与管理机制为在一定的负载均衡策略下,由集群管理节点合理安排渲染节点为用户提供服务资源。一般情况下,集群管理涉及到单用户对单节点、多用户对单节点、单用户对多节点和多用户对多节点四种情况,而在系统运行过程中可能还会出现多种情况的动态转换问题。The task scheduling and management mechanism of the remote real-time rendering system is that under a certain load balancing strategy, the cluster management node reasonably arranges the rendering nodes to provide service resources for users. In general, cluster management involves four situations: single user to single node, multi-user to single node, single user to multi-node, and multi-user to multi-node, and there may be dynamic dynamics in various situations during system operation. conversion problem.
在单用户对单节点情况下,可采用轮询策略分配渲染节点,而在实际应用中更多的是多用户对多节点的情况。在用户数和渲染节点数一定的情况下,综合考虑渲染节点的资源利用率、网络带宽以及I/O速率等指标,负载均衡策略可归纳为在渲染节点的选择中做决策,即求解渲染系统负载方差或标准差为极小值的单目标规划问题;若用户数或渲染节点数发生变化,则在一个时段内求解过程可能演变成为复杂的动态规划问题,但是在当前时刻还是可以作为单目标规划问题来对待。In the case of a single user to a single node, the round-robin strategy can be used to allocate rendering nodes, but in practical applications, it is more of a multi-user to multi-node situation. When the number of users and the number of rendering nodes are fixed, considering the resource utilization rate of rendering nodes, network bandwidth and I/O rate, the load balancing strategy can be summarized as making decisions in the selection of rendering nodes, that is, solving the rendering A single-objective programming problem where the variance or standard deviation of the system load is minimal; if the number of users or the number of rendering nodes changes, the solution process may evolve into a complex dynamic programming problem within a period of time, but it can still be used as a single-objective programming problem at the current moment. The problem of goal planning is treated.
设Ei为第i台渲染节点的负载值,则:Let Ei be the load value of the i-th rendering node, then:
Ei=w1Ci+w2Mi+w3Gi+w4Ni+w5IOi (1)Ei =w1 Ci +w2 Mi +w3 Gi +w4 Ni +w5 IOi (1)
式中,Ci、Mi、Gi分别为第i台渲染节点CPU、内存和GPU的占用率,Ni为网络利用率,IOi为I/O速率,wj(j=1,2,…,5)为对应上述5项指标的权重值,各指标项与负载值Ei均需做归一化处理。In the formula, Ci , Mi , and Gi are the CPU, memory, and GPU occupancy rates of the i-th rendering node, Ni is the network utilization rate, IOi is the I/O rate, wj (j=1,2 ,...,5) are the weight values corresponding to the above five indicators, and each indicator item and load value Ei need to be normalized.
渲染系统的总负载均值为:The total load average for the rendering system is:
将求解渲染系统负载方差简化为求解各渲染节点负载与总负载均值差值的极小值,即:The calculation of the variance of the rendering system load is simplified to the minimum value of the difference between the load of each rendering node and the average of the total load, that is:
经负载均衡后,各渲染节点的负载值总体上会稳定在系统总负载均值上下。为避免由于新增用户过多而影响当前用户的渲染体验,管理节点在监测到渲染节点当前用户的渲染帧频低于设定值(默认为24帧/秒)时,按照规则会优先将用户请求分配至其他渲染节点或拒绝用户的访问请求。After load balancing, the load value of each rendering node will be generally stable at the average value of the total system load. In order to avoid affecting the rendering experience of the current user due to too many new users, when the management node detects that the rendering frame rate of the current user of the rendering node is lower than the set value (the default is 24 frames per second), it will give priority to the user according to the rules. Requests to be assigned to other render nodes or deny user access requests.
在步骤四中、通过图形集群动态任务调度与管理机制,在平台客户端与图形集群服务端间建立实时图像传输通道,综合集成基于图形集群的远程实时渲染平台。In step 4, through the dynamic task scheduling and management mechanism of the graphics cluster, a real-time image transmission channel is established between the platform client and the graphics cluster server, and a remote real-time rendering platform based on the graphics cluster is comprehensively integrated.
如图3所示,该步骤具体包括:As shown in Figure 3, this step specifically includes:
接收到平台客户端发起应用请求时,将VNC客户端嵌入到平台客户端(图3中简称客户端n,n≥1),Docker容器(图3中简称容器n,n≥1)和VNC服务端嵌入到图形集群渲染节点(图3中简称节点),Docker镜像(图3中简称镜像)存储于共享存储系统中,由图形集群管理节点依据动态任务调度与管理机制进行集群负载均衡;When the application request initiated by the platform client is received, the VNC client is embedded into the platform client (referred to as client n in Figure 3, n≥1), the Docker container (referred to as container n in Figure 3, n≥1) and the VNC service The end is embedded in the graphics cluster rendering node (referred to as the node in Figure 3), and the Docker image (referred to as the mirror in Figure 3) is stored in the shared storage system, and the graphics cluster management node performs cluster load balancing according to the dynamic task scheduling and management mechanism;
图形集群管理节点为平台客户端指定渲染节点,渲染节点启动Docker容器并加载Docker镜像,同时利用VNC协议建立远程实时渲染通道,综合集成基于图形集群的远程实时渲染平台。The graphics cluster management node designates the rendering node for the platform client. The rendering node starts the Docker container and loads the Docker image. At the same time, it uses the VNC protocol to establish a remote real-time rendering channel, and comprehensively integrates the remote real-time rendering platform based on the graphics cluster.
所述综合集成的基于图形集群的远程实时渲染平台包括平台客户端、图形集群管理节点、图形集群渲染节点和共享存储系统四个部分;平台客户端部署于用户操作终端,用于向图形集群服务端发起应用请求;图形集群管理节点和图形集群渲染节点部署于图形集群服务端,用于响应平台客户端发起应用请求;共享存储系统,用于存储管理用户配置文件、虚拟桌面系统镜像和/或渲染模型数据信息。The comprehensive and integrated remote real-time rendering platform based on graphics cluster includes four parts: platform client, graphics cluster management node, graphics cluster rendering node and shared storage system; the platform client is deployed on the user operation terminal to serve the graphics cluster The graphics cluster management node and the graphics cluster rendering node are deployed on the graphics cluster server to respond to the application request initiated by the platform client; the shared storage system is used to store and manage user configuration files, virtual desktop system images and/or Render model data information.
所述远程实时渲染平台的应用模式包括:图形集群服务端在接到平台客户端发起的应用请求后,由图形集群管理节点将渲染任务分配至渲染节点,渲染节点通过创建独立的虚拟桌面系统为用户提供渲染服务。The application mode of the remote real-time rendering platform includes: after the graphics cluster server receives the application request initiated by the platform client, the graphics cluster management node assigns the rendering task to the rendering node, and the rendering node creates an independent virtual desktop system for Users provide rendering services.
一实施例,远程实时渲染系统利用Docker架构实现虚拟桌面系统部署,使用VNC建立远程桌面连接。远程用户向集群服务端发出Docker容器管理请求,利用VNC客户端与VNC服务端建立远程桌面连接。在图形集群服务端,集群管理节点通过Docker守护进程对容器进行管理调度,Docker注册表用于保存用户自定义的镜像文件。当服务端收到客户端发出的容器管理请求后,由Docker守护进程搜索注册表中的镜像并创建用户容器,同时在容器中启动VNC服务端。In one embodiment, the remote real-time rendering system uses the Docker architecture to implement virtual desktop system deployment, and uses VNC to establish a remote desktop connection. The remote user sends a Docker container management request to the cluster server, and uses the VNC client to establish a remote desktop connection with the VNC server. On the graphics cluster server side, the cluster management node manages and schedules containers through the Docker daemon process, and the Docker registry is used to save user-defined image files. When the server receives the container management request from the client, the Docker daemon searches for the image in the registry and creates a user container, and at the same time starts the VNC server in the container.
图形集群在接到用户终端发起的应用请求后,由管理节点将渲染任务分配至渲染节点,渲染节点通过创建独立的虚拟桌面系统为用户提供渲染服务。基于图形集群的远程实时渲染平台主要包括平台客户端、图形集群管理节点、图形集群渲染节点和共享存储系统四部分,其中平台客户端部署于用户操作终端,图形集群管理节点和渲染节点部署于图形集群服务端,共享存储系统主要为用户配置文件、虚拟桌面系统镜像以及渲染模型数据等提供方便可靠的存储管理。平台功能模块如图4所示。After the graphics cluster receives the application request initiated by the user terminal, the management node assigns the rendering task to the rendering node, and the rendering node provides rendering service for the user by creating an independent virtual desktop system. The remote real-time rendering platform based on graphics cluster mainly includes four parts: platform client, graphics cluster management node, graphics cluster rendering node and shared storage system. The platform client is deployed on the user operation terminal, and the graphics cluster management node and rendering node are deployed on the On the cluster server side, the shared storage system mainly provides convenient and reliable storage management for user configuration files, virtual desktop system images, and rendering model data. The functional modules of the platform are shown in Figure 4.
平台客户端通过用户注册/登录模式向图形集群管理节点发送虚拟桌面请求,待管理节点指定渲染节点后负责与提供渲染服务的渲染节点建立远程桌面连接。平台客户端可直接访问共享存储系统,在用户权限范围内上传、下载或修改特定的配置文件。The platform client sends a virtual desktop request to the graphics cluster management node through the user registration/login mode. After the management node designates a rendering node, it is responsible for establishing a remote desktop connection with the rendering node that provides rendering services. The platform client can directly access the shared storage system, upload, download or modify specific configuration files within the scope of user permissions.
图形集群管理节点主要包括初始化、任务管理和节点管理3个模块。系统启动后首先完成集群内部连接与配置文件加载等初始化功能;任务管理模块主要完成任务的存储、调度与查询等功能,在接到平台客户端的虚拟桌面请求后,对集群中各渲染节点的负载情况进行查询,同时利用动态负载均衡算法为平台客户端指定渲染节点,若为新用户注册模式则渲染节点新开辟虚拟桌面系统,若为用户登录模式则渲染节点从共享存储系统中加载虚拟桌面系统文件;节点管理主要完成对渲染节点的增删、配置和状态查询等功能。The graph cluster management node mainly includes three modules: initialization, task management and node management. After the system is started, it first completes the initialization functions such as cluster internal connection and configuration file loading; the task management module mainly completes tasks such as storage, scheduling, and query functions. After receiving the virtual desktop request from the platform client, the load of each rendering node in the cluster Query the situation, and use the dynamic load balancing algorithm to designate the rendering node for the platform client. If it is a new user registration mode, the rendering node will open a new virtual desktop system. If it is a user login mode, the rendering node will load the virtual desktop system from the shared storage system. File; node management mainly completes functions such as addition and deletion of rendering nodes, configuration and status query.
图形集群渲染节点在启动虚拟桌面系统后,通过远程桌面管理与平台客户端建立独立的数据连接通道,为用户提供远程渲染服务。渲染节点主要包括虚拟桌面系统管理与远程桌面系统管理两部分,前者负责创建与管理虚拟桌面系统,为用户提供实时渲染服务,后者主要用于远程显示与交互控制。After the graphics cluster rendering node starts the virtual desktop system, it establishes an independent data connection channel with the platform client through remote desktop management to provide users with remote rendering services. The rendering node mainly includes two parts: virtual desktop system management and remote desktop system management. The former is responsible for creating and managing the virtual desktop system and providing real-time rendering services for users, while the latter is mainly used for remote display and interactive control.
虚拟桌面系统管理模块主要是在Linux操作系统上创建Docker容器,将封装后的虚拟桌面系统做成Docker镜像存入共享存储系统中,在需要创建虚拟桌面系统时通过加载Docker镜像来实现VDI部署,同时利用基于Docker的GPU渲染技术解决在虚拟桌面系统内的实时渲染问题。The virtual desktop system management module is mainly to create a Docker container on the Linux operating system, make the encapsulated virtual desktop system into a Docker image and store it in the shared storage system, and realize VDI deployment by loading the Docker image when creating a virtual desktop system. At the same time, use the Docker-based GPU rendering technology to solve the real-time rendering problem in the virtual desktop system.
远程桌面管理模块主要采用VNC解决方案,由于VNC是采用消息钩子机制截获系统屏幕重绘区域信息,所以远程桌面管理模块需要为每一个用户的虚拟桌面系统创建显示输出接口映射,即创建虚拟“屏幕”。在虚拟桌面系统中安装VNC服务端,平台客户端通过调用VNC客户端与虚拟桌面系统建立远程桌面连接,采用基于VNC的图像实时传输控制方法对传输实时性进行了优化处理。用户使用远程实时渲染平台的应用流程示例如图5所示,包括:The remote desktop management module mainly adopts the VNC solution. Since VNC uses the message hook mechanism to intercept the redrawing area information of the system screen, the remote desktop management module needs to create a display output interface mapping for each user's virtual desktop system, that is, create a virtual "screen ". The VNC server is installed in the virtual desktop system, and the platform client establishes a remote desktop connection with the virtual desktop system by calling the VNC client, and the real-time image transmission control method based on VNC is used to optimize the real-time transmission. An example of the application flow of the user using the remote real-time rendering platform is shown in Figure 5, including:
平台客户端发起连接请求,图形集群管理节点接收连接请求,图形集群管理节点为用户选择渲染节点,判断是否为新用户连接,是,则启动应用容器引擎,创建虚拟桌面系统;否,则启动应用容器引擎,加载虚拟桌面系统镜像;图形集群渲染节点响应用户连接请求,图形集群渲染节点创建VNC实时渲染通道,平台客户端完成远程桌面连接,用户启动系统应用。The platform client initiates a connection request, and the graphics cluster management node receives the connection request. The graphics cluster management node selects a rendering node for the user, and judges whether it is a new user connection. If yes, start the application container engine and create a virtual desktop system; otherwise, start the application The container engine loads the virtual desktop system image; the graphics cluster rendering node responds to user connection requests, the graphics cluster rendering node creates a VNC real-time rendering channel, the platform client completes the remote desktop connection, and the user starts the system application.
为测试系统应用效果,选择两台图形工作站组成图形集群,两台均为渲染节点,其中一台作为管理节点,平台客户端安装在普通PC上,网络环境为千兆局域网。其中图形集群节点硬件配置为英特尔至强四核处理器,16G内存,Nvidia Q7000专业图形卡(显存6G),操作系统为64位Ubuntu Kylin 16.04(乌班图麒麟操作系统)。平台客户端登录后与图形集群渲染节点建立远程桌面连接,在1280×800分辨率上分别进行GPU渲染效率和多用户异步应用实验。In order to test the application effect of the system, two graphics workstations are selected to form a graphics cluster, both of which are rendering nodes, one of which is used as a management node, the platform client is installed on an ordinary PC, and the network environment is a Gigabit LAN. Among them, the hardware configuration of the graphics cluster node is Intel Xeon quad-core processor, 16G memory, Nvidia Q7000 professional graphics card (6G video memory), and the operating system is 64-bit Ubuntu Kylin 16.04 (Ubantu Kylin operating system). After the platform client logs in, it establishes a remote desktop connection with the graphics cluster rendering node, and performs GPU rendering efficiency and multi-user asynchronous application experiments on a resolution of 1280×800.
GPU渲染效率实验:在主机操作系统和Docker容器环境中分别运行相同的图样测试样例,由于受屏幕刷新频率的限制,运行效果如图6a所示主机操作系统上运行帧频不超过60帧/秒,Docker容器环境下的运行帧频可达85帧/秒,运行效果如图6b所示。测试结果显示,基于Docker的GPU渲染效率已基本接近主机操作系统上的使用效率。GPU rendering efficiency experiment: Run the same pattern test sample in the host operating system and the Docker container environment respectively. Due to the limitation of the screen refresh rate, the running effect is shown in Figure 6a. The running frame rate on the host operating system does not exceed 60 frames/ seconds, the running frame rate in the Docker container environment can reach 85 frames per second, and the running effect is shown in Figure 6b. The test results show that the GPU rendering efficiency based on Docker is basically close to the usage efficiency on the host operating system.
多用户异步应用实验:多平台客户端同时启动后,在系统稳定运行情况下渲染帧频随平台客户端数量的增加而逐步下降,各平台客户端间的渲染帧频差异不大,平台客户端显示无明显卡顿现象。当单渲染节点支持1个用户时平均帧频可达140帧/秒,支持2个用户时约为120帧/秒,平台客户端显示效果如图7a所示,支持4个用户时则将至75帧/秒左右,平台客户端显示效果如图7b所示。Multi-user asynchronous application experiment: After the multi-platform clients are started at the same time, the rendering frame rate gradually decreases with the increase of the number of platform clients when the system is running stably. It shows no obvious lagging phenomenon. When a single rendering node supports 1 user, the average frame rate can reach 140 frames per second, and when it supports 2 users, it is about 120 frames per second. The display effect of the platform client is shown in Figure 7a. About 75 frames per second, the display effect of the platform client is shown in Figure 7b.
综上,本发明实施例针对大量远程用户基于不同需求的渲染应用问题,根据面向多用户的异步分布式工作模式,依托图形集群硬件环境,利用虚拟化手段来满足不同用户按需使用的需求。其核心思想是用户远程访问图形集群,图形集群为用户提供实时高效的运行环境,同时响应用户在本地的交互操作,使用户获得一种接近图形工作站的工作体验,其数据资源和计算程序都部署在远端,既方便管理又确保了数据安全。To sum up, the embodiment of the present invention aims at the rendering application problem of a large number of remote users based on different needs, according to the multi-user-oriented asynchronous distributed working mode, relying on the graphics cluster hardware environment, and using virtualization means to meet the needs of different users for on-demand use. Its core idea is that users access the graphics cluster remotely. The graphics cluster provides users with a real-time and efficient operating environment, and at the same time responds to the user's local interactive operations, enabling users to obtain a working experience close to a graphics workstation. Its data resources and computing programs are deployed. At the remote end, it is convenient for management and ensures data security.
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201810109865.XACN108388460B (en) | 2018-02-05 | 2018-02-05 | Remote real-time rendering platform construction method based on graphic cluster |
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201810109865.XACN108388460B (en) | 2018-02-05 | 2018-02-05 | Remote real-time rendering platform construction method based on graphic cluster |
| Publication Number | Publication Date |
|---|---|
| CN108388460Atrue CN108388460A (en) | 2018-08-10 |
| CN108388460B CN108388460B (en) | 2021-05-18 |
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201810109865.XAActiveCN108388460B (en) | 2018-02-05 | 2018-02-05 | Remote real-time rendering platform construction method based on graphic cluster |
| Country | Link |
|---|---|
| CN (1) | CN108388460B (en) |
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN109213561A (en)* | 2018-09-14 | 2019-01-15 | 珠海国芯云科技有限公司 | The equipment scheduling method and device of virtual desktop based on container |
| CN109725986A (en)* | 2019-01-29 | 2019-05-07 | 中山大学 | A graphical and containerized virtual network environment construction and batch deployment method |
| CN109949201A (en)* | 2019-01-29 | 2019-06-28 | 福建多多云科技有限公司 | A kind of image rendering accelerated method of linux container |
| CN110032413A (en)* | 2019-03-05 | 2019-07-19 | 华为技术有限公司 | A kind of desktop virtualization method, relevant device and computer storage medium |
| CN110442389A (en)* | 2019-08-07 | 2019-11-12 | 北京技德系统技术有限公司 | A kind of shared method using GPU of more desktop environments |
| WO2020093843A1 (en)* | 2018-11-11 | 2020-05-14 | 长沙摩智云计算机科技有限公司 | Distributed multi-terminal and multi-network supporting system for android online game |
| CN111163345A (en)* | 2018-11-07 | 2020-05-15 | 杭州海康威视系统技术有限公司 | Image rendering method and device |
| CN111343219A (en)* | 2018-12-18 | 2020-06-26 | 同方威视技术股份有限公司 | Computing service cloud platform |
| CN111984352A (en)* | 2020-08-10 | 2020-11-24 | 南京江北新区生物医药公共服务平台有限公司 | A desktop cloud service platform system based on spice protocol optimization |
| CN112085988A (en)* | 2020-09-11 | 2020-12-15 | 北京信息科技大学 | Virtual simulation experiment system and method for penetration attack |
| CN112200712A (en)* | 2020-09-08 | 2021-01-08 | 成都安易迅科技有限公司 | GLES image rendering method and device, storage medium and computer equipment |
| CN112398914A (en)* | 2020-10-28 | 2021-02-23 | 武汉大势智慧科技有限公司 | Cloud rendering platform based on Kubernetes container cluster |
| CN112470194A (en)* | 2019-04-12 | 2021-03-09 | 艾司科软件有限公司 | Method and system for generating and viewing 3D visualizations of objects with printed features |
| CN113763227A (en)* | 2021-07-19 | 2021-12-07 | 锐捷网络(苏州)有限公司 | Data processing method, device and system |
| CN114531740A (en)* | 2022-02-16 | 2022-05-24 | 北京易智时代数字科技有限公司 | VR head display terminal application rendering operation method and system |
| CN114706666A (en)* | 2022-03-16 | 2022-07-05 | 深圳市瑞云科技有限公司 | A Rendering Method for Realizing One-machine Multi-tasking |
| CN115185667A (en)* | 2022-09-13 | 2022-10-14 | 天津市天河计算机技术有限公司 | Visual application acceleration method and device, electronic equipment and storage medium |
| CN116192923A (en)* | 2021-11-29 | 2023-05-30 | 国家广播电视总局广播电视科学研究院 | A remote desktop control method and system |
| CN118886358A (en)* | 2024-07-16 | 2024-11-01 | 中国建筑东北设计研究院有限公司 | Building wind engineering simulation result distribution system, method, equipment, medium and product |
| CN120147497A (en)* | 2025-02-25 | 2025-06-13 | 四川省天府容大信息科技有限公司 | Urban three-dimensional visualization interactive method and system based on virtual reality |
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN103631634A (en)* | 2012-08-24 | 2014-03-12 | 中国电信股份有限公司 | Graphics processor virtualization achieving method and device |
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN103631634A (en)* | 2012-08-24 | 2014-03-12 | 中国电信股份有限公司 | Graphics processor virtualization achieving method and device |
| Title |
|---|
| DJ0379: "在低速网络下利用VNC实现应用程序共享的解决方案", 《HTTPS://BLOG.CSDN.NET/DJ0379/ARTICLE/DETAILS/52397788?BIZ_ID=102&UTM_TERM=JINGLE%20VNC&UTM_MEDIUM=DISTRIBUTE.PC_SEARCH_RESULT.NONE-TASK-BLOG-2~ALL~SOBAIDUWEB~DEFAULT-0-52397788&SPM=1018.2118.3001.4187》* |
| PREETH E N等: "Evaluation of Docker Containers Based on Hardware Utilization", 《2015 INTERNATIONAL CONFERENCE ON CONTROL, COMMUNICATION & COMPUTING INDIA (ICCC)》* |
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN109213561A (en)* | 2018-09-14 | 2019-01-15 | 珠海国芯云科技有限公司 | The equipment scheduling method and device of virtual desktop based on container |
| CN111163345B (en)* | 2018-11-07 | 2021-11-26 | 杭州海康威视系统技术有限公司 | Image rendering method and device |
| CN111163345A (en)* | 2018-11-07 | 2020-05-15 | 杭州海康威视系统技术有限公司 | Image rendering method and device |
| WO2020093843A1 (en)* | 2018-11-11 | 2020-05-14 | 长沙摩智云计算机科技有限公司 | Distributed multi-terminal and multi-network supporting system for android online game |
| US11872482B2 (en) | 2018-11-11 | 2024-01-16 | Hunan Duoxingyun Cloud Technology Co., Ltd. | Distributed multi-terminal and multi-network supporting system for android online game |
| CN111343219B (en)* | 2018-12-18 | 2022-08-02 | 同方威视技术股份有限公司 | Computing service cloud platform |
| CN111343219A (en)* | 2018-12-18 | 2020-06-26 | 同方威视技术股份有限公司 | Computing service cloud platform |
| CN109949201A (en)* | 2019-01-29 | 2019-06-28 | 福建多多云科技有限公司 | A kind of image rendering accelerated method of linux container |
| CN109949201B (en)* | 2019-01-29 | 2023-04-07 | 福建多多云科技有限公司 | Image rendering acceleration method for Linux container |
| CN109725986B (en)* | 2019-01-29 | 2023-01-20 | 中山大学 | Graphical and containerized virtual network environment construction and batch deployment method |
| CN109725986A (en)* | 2019-01-29 | 2019-05-07 | 中山大学 | A graphical and containerized virtual network environment construction and batch deployment method |
| CN110032413A (en)* | 2019-03-05 | 2019-07-19 | 华为技术有限公司 | A kind of desktop virtualization method, relevant device and computer storage medium |
| CN110032413B (en)* | 2019-03-05 | 2021-08-31 | 华为技术有限公司 | A desktop virtualization method, related equipment and computer storage medium |
| CN112470194A (en)* | 2019-04-12 | 2021-03-09 | 艾司科软件有限公司 | Method and system for generating and viewing 3D visualizations of objects with printed features |
| CN112470194B (en)* | 2019-04-12 | 2024-11-01 | 艾司科软件有限公司 | Method and system for generating and viewing 3D visualizations of objects with printed features |
| CN110442389A (en)* | 2019-08-07 | 2019-11-12 | 北京技德系统技术有限公司 | A kind of shared method using GPU of more desktop environments |
| CN110442389B (en)* | 2019-08-07 | 2024-01-09 | 北京技德系统技术有限公司 | Method for sharing GPU (graphics processing Unit) in multi-desktop environment |
| CN111984352A (en)* | 2020-08-10 | 2020-11-24 | 南京江北新区生物医药公共服务平台有限公司 | A desktop cloud service platform system based on spice protocol optimization |
| CN112200712A (en)* | 2020-09-08 | 2021-01-08 | 成都安易迅科技有限公司 | GLES image rendering method and device, storage medium and computer equipment |
| CN112200712B (en)* | 2020-09-08 | 2023-10-27 | 成都安易迅科技有限公司 | GLES image rendering method and device, storage medium and computer equipment |
| CN112085988A (en)* | 2020-09-11 | 2020-12-15 | 北京信息科技大学 | Virtual simulation experiment system and method for penetration attack |
| CN112398914A (en)* | 2020-10-28 | 2021-02-23 | 武汉大势智慧科技有限公司 | Cloud rendering platform based on Kubernetes container cluster |
| CN112398914B (en)* | 2020-10-28 | 2023-03-24 | 武汉大势智慧科技有限公司 | Cloud rendering platform based on Kubernetes container cluster |
| CN113763227A (en)* | 2021-07-19 | 2021-12-07 | 锐捷网络(苏州)有限公司 | Data processing method, device and system |
| CN116192923A (en)* | 2021-11-29 | 2023-05-30 | 国家广播电视总局广播电视科学研究院 | A remote desktop control method and system |
| CN114531740B (en)* | 2022-02-16 | 2024-06-14 | 北京易智时代数字科技有限公司 | VR head display terminal application rendering operation method and system |
| CN114531740A (en)* | 2022-02-16 | 2022-05-24 | 北京易智时代数字科技有限公司 | VR head display terminal application rendering operation method and system |
| CN114706666A (en)* | 2022-03-16 | 2022-07-05 | 深圳市瑞云科技有限公司 | A Rendering Method for Realizing One-machine Multi-tasking |
| CN115185667B (en)* | 2022-09-13 | 2022-12-20 | 天津市天河计算机技术有限公司 | Visual application acceleration method and device, electronic equipment and storage medium |
| CN115185667A (en)* | 2022-09-13 | 2022-10-14 | 天津市天河计算机技术有限公司 | Visual application acceleration method and device, electronic equipment and storage medium |
| CN118886358A (en)* | 2024-07-16 | 2024-11-01 | 中国建筑东北设计研究院有限公司 | Building wind engineering simulation result distribution system, method, equipment, medium and product |
| CN120147497A (en)* | 2025-02-25 | 2025-06-13 | 四川省天府容大信息科技有限公司 | Urban three-dimensional visualization interactive method and system based on virtual reality |
| Publication number | Publication date |
|---|---|
| CN108388460B (en) | 2021-05-18 |
| Publication | Publication Date | Title |
|---|---|---|
| CN108388460A (en) | Long-range real-time rendering platform construction method based on graphics cluster | |
| CN109582425B (en) | A GPU service redirection system and method based on cloud and terminal GPU fusion | |
| US11372469B2 (en) | Apparatus and method for power management of a multi-gpu computing system | |
| US8638336B2 (en) | Methods and systems for remoting three dimensional graphical data | |
| US10699364B2 (en) | Graphical rendering using multiple graphics processors | |
| KR101956411B1 (en) | Delivering a single end user experience to a client from multiple servers | |
| US9479358B2 (en) | Managing graphics load balancing strategies | |
| CN103412701B (en) | remote desktop image processing method and device | |
| US20160314008A1 (en) | Method for implementing gpu virtualization and related apparatus, and system | |
| CN112614202A (en) | GUI rendering display method, terminal, server, electronic device and storage medium | |
| US20090002263A1 (en) | Providing a Composite Display | |
| CN103778591B (en) | Method and system for processing graphic operation load balance | |
| US9235452B2 (en) | Graphics remoting using augmentation data | |
| CN108762934B (en) | Remote graphic transmission system and method and cloud server | |
| KR20210042992A (en) | Method and apparatus for training a deep learning model | |
| CN102097080B (en) | Display drive processing method, device and system | |
| CN114968152B (en) | Method for reducing VIRTIO-GPU extra performance loss | |
| US12124318B2 (en) | Apparatus and method for power management of a computing system | |
| Carroll et al. | 3D rendering in the cloud | |
| CN114064182A (en) | Low-cost desktop virtualization system and operation method | |
| Tanaka et al. | The performance evaluation of a grid using Windows PCs | |
| CN116206031A (en) | Data visualization method and device and electronic equipment | |
| Tanaka et al. | Parallel computing of CG using an open source windows grid | |
| CN116382838A (en) | gpu virtualization implementation method | |
| CN120010980A (en) | A front-end and back-end application interaction method based on cloud computing |
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant |