It has been a year since Microsoft acquired Calista Technologies, a pioneering virtualization technologies company that I co-founded. I thought that it would be timely to provide some more details about Calista’s technologies and how they differ from traditional Windows desktop remoting.
The Calista acquisition has provided Microsoft with several independent, but interoperable and important technologies that significantly enhance the end user experience and will be incorporated into future versions of Microsoft’s Remote Desktop Protocol (RDP).
Host side rendering and “smart capture”
Before Calista, RDP remoted graphics primitives (the graphics drawing commands, such as “draw a line from screen location A to screen location B”) from the host, over the network, to the client. Those primitives where then rendered (drawn – converted from primitives to actual pixels on the screen), on the client device by the client’s software and hardware. Calista adds innovative and important host side rendering (with select primitive remoting – so as to optimize for certain client and network capabilities / bandwidth / application behavior / etc.) Thus, with Calista technology, rendering is done primarily on the host, and a “smart capture” mechanism is used to monitor which parts of the screen have changed and need to be forwarded to the client. This approach significantly increases the range of client device hardware/software combinations for which the full Windows desktop experience can be enabled. What more, this technology is especially well suited for ultra-lightweight thin clients (which have minimal hardware and software). Conceptually, while RDP before Calista was based on primitives remoting, Calista is based on “image” remoting.
For a given VDI host to be able to support many users and target the full range of possible client devices, each interacting with rich content, rendering needs to be performed by the GPU on the server. Current technologies do not allow a GPU to be shared (virtualized) by multiple VMs. Some approaches try to overcome this problem by using CPU rendering (which is less efficient, cannot handle rich 3D graphics, and uses CPU cycles that would otherwise be available to the application workload), or by using a GPU for every VM (very expensive and not scalable). Calista has pioneered the technology to share (virtualize) a single GPU between multiple VMs. This GPU virtualization technology has major implications for centralized computing scenarios like VDI and Terminal Services as well as other VM applications.
Host side rendering has many advantages over primitive remoting – most importantly desktop like performance for the end user, especially when the client device has limited rendering capabilities. However, a potential trade-off is that host side rendering may require more bandwidth (which can limit network scalability). To overcome this problem Calista uses a number of techniques (rich media redirection, hints, select primitive remoting, advanced caching, etc.).
Nevertheless, in many cases large bitmaps need to be sent across the network. For those cases, Calista developed an advanced compression scheme (CODEC) specifically designed to remote the Windows desktop (optimized for low latency, high-frequency data, etc.). While this CODEC can run on the CPU, large parts of it can also run on the GPU (providing better performance and utilizing the GPU’s untapped power). Furthermore, when even higher scalability is required on the server and for ultra-lightweight thin clients (without a powerful GPU/CPU), Calista has created a reference ASIC implementation of this CODEC so that hardware partners can develop solutions for such cases.
In summary, the combination of Microsoft’s proven primitive-remoting approach with the innovations that the Calista acquisition adds in the areas of host-side rendering, provides Microsoft with a comprehensive set of technologies that enables the remoting of a media-rich Windows-desktop with excellent user experience in numerous customer scenarios with varying network, host, and client requirements.