
Once,
DEPO Computers received a request to calculate a solution for 10 design designers working in 3ds Max. It was required to pick up not only workstations, but also a render server for visualizing the results obtained. There were no problems with graphic stations, but the render server did not want to fit into the budget. The scope of work on rendering was not assumed to be large, but the speed of execution of the calculation required a high one. I recommended the customer to use distributed computing on all workstations by means of network rendering, but the customer was not satisfied with this option. He said that when starting the calculation, all network machines are loaded at 100%, and the possibility of local work is almost eliminated. At the same time, the available tools that allow you to adjust the load on the network machines involved in the calculation are quite complex and cannot always solve the task.
We had to develop a new way to implement the solution, which would provide the necessary functionality within a given budget.
The basis of the solution was the isolation of resources intended for local work and resources allocated for network calculations. This task was solved by transfer of computing resources to a virtual environment and integration into a computing cluster. The virtual environment was built on the basis of the Parallels Workstation 6 hypervisor.
Implementation example
The operating system and the Parallels Workstation hypervisor are installed on all graphic stations. With the help of the hypervisor, a virtual machine is created on which the operating system is installed - in our case it is Windows 7, but installation of various operating systems is possible. In our configuration, the host machine has 12 computing threads, 10 out of 12 are allocated for the virtual machine. The remaining 2 streams will ensure stable operation of the host machine.
')

Also, a physical network adapter is allocated to the virtual computing server to provide high-speed access to the local network. The virtual machine receives the amount of RAM and disk space required for operation.

On the host machine is installed specialized software that allows you to make network calculations. Virtual modules are installed software modules (solvers) that will identify the machine on the network as part of the computing cluster.
In our case, the Autodesk 3Ds MAX program for three-dimensional modeling and the Mental Ray visualization system with network rendering support are used. In order to use the computing power of network machines when calculating the render, we prescribe the IP addresses of each machine in the settings of the visualization system. In our example, 5 graphic stations are involved, one of which is the initiator of the calculation.

In the process of rendering, the visualization system uses 90-100% of the computing power of all the machines involved in the calculation. Since not all station resources are allocated in a hybrid solution for a virtual machine, the host machine will retain the ability to work locally during network calculation. The image shows an example of loading the computational resources of the virtual machine and the host under the following load: the virtual machine participates in the network calculation, and a full HD video is played locally on the graphic station and the 3D object is processed.

Resource Monitor shows 100% virtual machine load and 93% graphic station load. If the local work of the graphics station requires more computing power, in the settings of the hypervisor, you can reallocate resources in favor of the host.
At the moment when the work on the graphics station was not conducted and only the virtual machine was active, the host machine load was reduced to 50-60%. This means that there is a supply of computing resources for the local operation of the graphics station.

The performance gain in this solution is proportional to the number of cores involved in the calculation of the processors (provided they are the same)
Thus, a hybrid graphics solution for cluster computing allows you to efficiently use the computing resources of each graphics station without sacrificing local work and make simple calculations without using dedicated servers. This solution can be used to improve system performance in software products ANSYS, MSC, Mental ray, V-Ray and other programs using distributed computing.
I hope that this simple solution will help someone with the optimization of the work of a group of users in design and graphics applications.