VMware

VMware's Desktop Vision | Main | VMware View for "Thick" Clients

10/14/2009

Why PCoIP is Ideal for Remote Virtual Desktops

It’s not a secret that remote desktop protocols have been lacking to date when compared with local execution on client PCs. However the centralized management and security is compelling and has often made up for this shortcoming. VMware has been hard at work addressing this deficiency – we aim to bring all the operational benefits of virtualized desktops to our customers without having to compromise on the richness of the user experience. PCoIP is a remote graphics protocol originally designed by our partner, Teradici, and available today in hardware implementations. VMware has been diligently working with Teradici to create a virtualized implementation of this robust, innovative protocol and deliver the premier remote desktop experience for VMware View. I thought it would be useful to spend some blog space discussing why we believe this protocol and our joint implementation architecture delivers the ideal remote graphics experience for virtual desktops.

PCoIP is a server-centric protocol, meaning that we are doing the majority of the graphics rendering and processing on powerful servers. Compressed bitmaps or frames are transmitted to the remote client. This division of labor has some ideal properties for static content. First it’s making use of the powerful processing capabilities of multi-core servers such as Intel’s Nehalem to render the graphics. More importantly, by transmitting compressed bitmaps or frames, we can adjust the protocol in real time to account for the available bandwidth and latency of the communications channel. On a WAN connection with typically less bandwidth and higher latency, a less crisp image is produced quickly, typically with  0.2-0.5 bits/pixel producing a grainy, but still recognizable image. Kind of like an analog TV… This rapidly sharpens with increasing clarity and detail visibility with each succeeding frame until the image is perceptually lossless. This is a high quality image at a total of approximately 1-3 bits/pixel. Think of it as now Digital HD to stick with our TV analogy. On a higher performance LAN, the images become sharp instantly and will build to complete lossless at 5-15 bits per pixel. Think of it as Blu-Ray!

PCoIP blog 1

This is very different than protocols that make use of more client side processing to draw an object – those are all or nothing. And best of all, this compression algorithm is applied dynamically; the architecture doesn’t pre-compress content so we can pick exact bit-rates on the fly for almost every frame – this is really powerful.  Think about situations where the available bandwidth can fluctuate and become oversubscribed.  If you try to send drawing primitives to the client for it to render using local hardware, you generally consume a fixed amount of bandwidth and lose the ability to adapt to bit-rate availability changes.

The PCoIP architecture in our server-side Virtual Machines is a multi-layer architecture enabled by a Windows mechanism called DevTap and VMware Virtual Graphics Hardware in the guest OS. The remote bitmap display is rendered, encoded and sent at a low-level of the stack via our virtual SVGA driver, while we make use of the DevTap interface at higher levels of the graphics stacks that recognize the types of objects present in different areas of the screen and hence in the resulting bitmap. If we just did frame differencing in software, the overhead would be quite high.  However with virtual hardware, we can carve up the screen into a stream of regions that have changed so you only have to encode those updated regions.  Furthermore we may even have information about what is in that region based on what GDI calls were use to render it (text vs. video vs. blit graphics) and that can save a lot of effort in the categorization path. This allows the application of different codecs or graphics processing engines to render the different screen objects. Desktop screens are not one size fits all and this technique allows the division of multi-media content, static images and type from each other and the application of the ideal codec for each along with the tailored quality heuristics. The robust VMware Virtual NIC technology rounds this all out by enabling independent channels and even the separation of control and data streams. And of course, PCoIP still makes use of multi-media redirection for the most efficient and direct processing of streaming media directly on the client.

PCoIP blog 2

The transport used for PCoIP is also unique and tailored for a rich user experience. It makes use of UDP datagrams, not TCP. TCP is a generic virtual circuit protocol, meaning that the transport layer is making sure that packets are received and that they are delivered to the application in the specific order they were sent. Lost or dropped packets will hold up the delivery of subsequent packets and there is a specific acknowledgment sequence. This is a great mechanism and is widely used across the internet for many applications. However,  the most convenient, generic mechanism is not necessarily ideal or optimized for a specific application and in the case of remote desktops it will not deliver the richest user experience. If you have packet loss, is it best to ensure that every last bit gets to the client and in the order sent by asking for and waiting on retransmissions?  Is all content on the screen of equal importance (where is the mouse? What has focus?)? or what codecs are most resilient to loss?  By controlling the flow control policies in layer 7, the remote desktop centric application layer, and differing the algorithms and policies based on heuristics such as these, PCoIP delivered via UDP datagrams is able to make optimal use of the bandwidth available to deliver the richest interactive experience possible across a range of remote desktop scenarios.

And of course, all of this will be available later this year and with various flavors of optional hardware acceleration! Our advanced PCoIP software encoding will be good enough for the majority of users – and that might be the target audience for your initial roll-out. However knowing that hardware acceleration is an option provides an upgrade path for power-users who may need it and gives much greater confidence in deploying VMware View as your standard for Desktop Virtualization.

PCoIP blog 3
 
The remote desktop experience has fallen short in some dimensions to date and for certain classes of users. I hope I’ve given you some insights into exactly how and why VMware and Teradici are addressing these shortcomings together and why View with PCoIP will be the best remote desktop experience available anywhere!

 


Comments

Feed You can follow this conversation by subscribing to the comment feed for this post.

Thank you for posting this information. It does show insight into the realm of desktop virtualization and PCoIP. As an SE who is trying to get his company moving in the desktop virtualization space, it has been difficult for people to grasp the information you are presenting. We are a medical research organization, and the immediate reaction to virtualizing desktops is that they will not perform well due to the high intensive graphics that deal with on a daily basis, i.e. DNA sequence images, multi-gig images and movies, etc. I am hoping that the new version of View will encompass the obstacles we have seen without PCoIP technologies.

I'm not certain UDP is the best option, sure you can make a thinner packet but you lose the guaranteed data. This scares me for medical purposes. What if i'm looking at an Xray image and the UDP packet is lost on the way to my client. I could miss a very important portion of the xray.

Good observation and question, let me clarify. TCP means that the transport takes care of the delivery in a generic manner. If a packet is lost, all subsequent packets on that connection are held in the transport layer until the missing one is retransmitted and received. This is not the best behavior for a graphics protocol. With UDP, the graphics layer controls the management of lost packets. However, I did not mean to imply that by using UDP any lost packets and the image fragments they represent are not retransmitted. The retransmit is simply handled in a graphics knowledgeable way, so that the rest of the image painting doesn't come to a halt waiting for it. Rest assured that PCoIP converges to a fully lossless image and with complete resolution. Hope this clarifies!

The concept of retransmission on the application layer makes a lot of sense for interactive and multimedia content.
I'm very keen to try out PCoIP in View 4. The question of how PCoIP handles congestion is very high on my 'laundry list'.

Regarding MaxP's question on how to guarantee the transmission of data that under no circumstance can be lost, I think that application layer retransmission can(!) even be better than transport layer retransmission, because the application layer is closer to the user. Therefore PCoIP theoretically can guarantee that all data has traversed the network and no data is lost, because it handles the retransmission itself rather then relying on retransmission features of the underlying layers (link and transport)

Christoph

Thanks for the update on the progress at VMware and Teradici. I've got the latest 2.1 firmware loaded on my Dell FX100 devices, and they are pointed at my VMware Connection Server. We're eagerly awaiting an update to View to allow these connections. Any guidance on the timeline?

I would also like to know about the timeline for when View will be supported under vSphere infrastructure.

We tried PCoIP in various technical builds to date, and to bluntly honest: we are very, very disappointed. What we saw in terms of performance for multimedia, latency resistance and responsiveness was worse than all our exspectations and a harsh contrats to VMware marketing mayhem. Side by side with XenDesktop 4 and ICA-HDX, this is a lightyears difference on any network still. Our target audience is global comanies with a worldwide model, hence PCoIP and RDP can not be used so far.

Recognizing the UDP character of PCoIP makes hings even worse. How are we supposed to build global romaing, stateful detection, dynamic policy managed sysems while still lacking secure gateway connections with PCoIP ?

Where is your serious vision to deliver a truly stunning global desktop experience ?

We will take another look on your updates, but by know we feel it's unfortunately morekless a waste of time for next 12 month at least.

Sorry !

I support a college of engineering diciplines. Anyone have PCoIP experience delivering EDA tools to the desktop?

Re: Thomas Mueller post - I’m not sure what you are basing your conclusions about the View user experience over PCoIP on, since our technology is currently in limited preview beta with on-going tuning and optimization work in progress prior to its first commercial release. In any event, to reiterate, PCoIP was designed from the ground up to deliver virtual desktops, which is unique in the industry. By coupling Teradici’s technologies around progressive build and distinct codecs for different screen elements along with VMware’s knowledge of what’s being placed where on the desktop and the relative priorities by virtue of our virtual GPU technology, we have a solution that allows for an optimized desktop experience across a wide variety of clients and network conditions. We are very excited about bringing this technology to market and letting our many current and future customers experience for themselves the rich user environment it provides. Thanks.

Yes but is Vmware going to charge extra for these new features like they did with vSphere 4 Enterprise Plus money grab? Also when is it going to be released? This is holding up a lot of companies from being able to move to vSphere 4.

@Johnk If those companies are smart, they don't wait for a paper release but go for Citrix. They can do this stuff for years already, and I've saw a 3D demo a couple of weeks back that VMWare could only dream of. Dont get me wrong, I like vSPhere, but this PCoIP stuff is too little, too late, and one can only imagine the scalability of a hardware to software conversion. Why was it hardware in the first place? Exactly, to get it to perform without stressing the main cpu. All those single VM demo's look very nice, but I never saw someone open up the performance monitor while they demo a movie... I wonder why...

@Patrick
In VMware's testing of the beta version of PC over IP Beta code versus RDP and ICA, generally PCoIP had LOWER CPU requirements than ICA. You can see their test results in the VMworld session DV3260. Just download the slides or watch the presentation at VMworld.com.
Or you can see my write up of it here:
http://vmjunkie.wordpress.com/2009/09/02/vmworld-session-dv3260-protocol-benchmarking-and-comparisons/

@Patrick, have a look her for exactly that...someone opening Task Manager while running PCoIP on to 4 hi res screens:

http://www.youtube.com/watch?v=APVP0DUu34c

Yeah Charlie , nice...that shows the CPU inside the VM.. worthless info.

Please show the host CPU utilization.....

Oh wait... you didnt do that probably because it went through the roof... lol.

What about over slow WAN link's? What typically is the required bandwidth for a user?
I think this is more important to the majority of Business. Rich desktops and multimedia will always be the minority user base, the guys using core business apps dont tend to care about viewing video's and animated this and that. WAN links are expensive so I dont want a protocol to be fat because of this. Thanks.

How good is VMware PCoIP compared with Citrix ICA over slow WAN links? Do you have any benchmark? Thanks.

Have you compared VMware PCoIP with Citrix ICA/HDX over WAN? Most large companies are global and performance over the WAN is very important..

mmm... I've just installed this thing and I found out that you cant print remotly! forget about movies and graphics and banwidth. vmware obviously don't know how important printing is to the end users and they want to be in the desktop business? what a joke!

It appears that a lot of people don't understand video and audio over TCP/UDP. The gentleman who was worried about possibly loosing a part of an X-RAY and thinks he needs the guaranteed data is missing THE point.

After a frame is displayed, missing a pixle or not, even if TCP resends the data it's not put back into the frame and re-broadcast. You are several refreshes down the road by then. You would get no benefit whatsoever by having that dropped packet resent just to be dropped into the bit bucket.

Same as with voice. If you miss a syllable of a word would you want it inserted in the middle of another sentence? That would cause the confusion of the dropped syllable along with one inserted at a random position totally out of place.

I always thought UDP was a possible answer to better performance due to the considerable less overhead. I just did an installation of vSphere and View 4 in a school system in West Virginia and the first test we ran was a basketball video from ESPN. With RDP it was unwatchalble. It was more like a slide show. With PCoIP it was like watching it on TV. The other engineer I had working with me at the time was in another school in the state about 100 miles away and tried the same test and had exactly the same results! The distance didn't make any difference.

The printing is coming out in the first update. In the meantime you can use PCoIP for everything except printing and then just log out, and select RDP from the dropdown box where you select the image you want to use and when it comes up you can then print with Virtual Print as before. When you create the desktop pool just make sure you select that it can be accessed by both protocols and you're OK.

View 4, even Tech Preview, is laughable.

A client of mine is actively testing your View 4 limited Tech Preview against XenDesktop 4 and they are STILL experiencing subpar performance. And this is not the admin team making the allegations; it is the USERS rejecting the hosted VDI-only approach.

PCoIP is not meant to be delivered over the WAN (unless you plan to piss of your networking team by demanding larger pipes), and definitely not the Internet. And lossless image quality is a joke unless you are on the LAN.

Let's face it...until View 4 opens up and offers more options for desktop delivery, you'll continue to be locked into VDI. And what's up with not being Hypervisor agnostic by now? Now you are locked into a pricey hypervisor, where many of the server-specific features do not even pertain to desktops(HA, sVMotion, SRM), in a world of powerful free hypervisors.

If you want to see 3D apps and other powerful apps perform in very high quality over the INTERNET...heck, even over 3G on an iPhone, visit http://citrixcloud.net/CitrixCloud.html to sign up for a free demo account. It rocks.

Agree, PCoIP is a joke in the current incarnation (for WANs).

It is a beta product on which vmware is making money

look here
http://www.miercom.com/?url=reports/&v=110

When with 64bit VMs or 64bit blades be supported.

When will there be a PCoIP View 4 client for linux thin clients?

When will bi-directional audio be supported (redirect analogue mic)? Required for VoIP apps.

We have been testing View 4.01 with PCOIP over VPN. It is working superb with our PACS application. I'm running our application on a 55 HD tv over HDMI with a view desktop running 756MB of ram and its like being on our LAN. I can't comment on very slow links as I'm using cable.

I'm very impressed can't wait until 4.5 comes out and I hope we can get this on the books soon. Keep up the good work vmware.

The comments to this entry are closed.