HPC (High Performance Compute) Architecture

Josh Leverette coder543 at gmail.com
Wed Mar 16 19:11:13 PDT 2011


Yeah I'm not too sure on the finer points of the implementation. No other people have comments?

On Mar 15, 2011, at 2:33 AM, Graham Cantin <kamilion at gmail.com> wrote:

> Most of this doesn't apply to Wayland directly, but to the ecosystem surrounding it.
> 
> However, you did touch upon one feature there that has some merit within Wayland, in my opinion.
> 
> Some way to serialize an application's set of windows to suspend and restore them.
> 
> Right now, with X, you need to use some kind of proxy holding the windows/desktop open if you want to be able to detach and reattach.
> 
> Since it sounds like the window toolkits are implementing wayland communications paths, that would be the place to shim this in.
> 
> Wayland, supporting a generic capture of window objects, and QT and such knowing how to restore the rest of the graphical state (like a repaint after resize) itself after a window object was restored/deserialized.
> 
> So, one would serialize the window objects, transfer the package, deserialize (which would recreate the window and properties on the new output device, and then inform the application/toolkit the window was resized and it needs to redraw.
> 
> This should also apply to wayland 'fullscreen' windows.
> 
> Note that there are several very advanced checkpoint systems for linux that can freeze and restore processes, or the whole machine. 
> Collaborate with them to develop the proper hooks early so that hibernate/restore and standby work as well, since the process has many similarities.
> 
> On the other side of it; Rackspace and Amazon both have APIs you can spawn new machines with. 
> Systemd brings up a system to multiuser in seconds. It is completely feasible to spawn a machine in ten seconds, and during that time pack up the local application state for transfer.
> 
> Really, I wouldn't mind a 25c Quarter Slot icon next to my Maximize icon.
> 
> http://www.priglmeier.com/arcade_projects/wiring_coin_doors_files/25-cents-coin-door-label-small-02172010.jpg
> Doubleclicking it shoves the app off to the cloud, state and all, in 15 seconds to a minute.
> Right clicking it gives you the context menu containing the VM size and cost.
> 
> 
> Josh, you're a guy after my own heart.
> I've got two ramdisk 780G hexcore machines with 16GB that act as my terminals to my cheap supermicro dual E5620 with 64GB.
> They're blazingly speedy, and not too hard to set up! The trick is to get 16GB sandisk Cruzer U3 drives and overwrite their ISO portion with u3-tool.sf.net with an ubuntu livecd. Edit the boot options to turn on persistent mode and TORAM=Yes. With a little bit of magic in your persistent /home/ you can also use sshfs to mount other machines on the network.
> 
> Systemd, will of course, make this nasty hack obsolete since you can specify automount points of /home/<username> as type sshfs.
> 
> If you don't want any disks, not even a USB key, booting over the network with gpxe is pretty easy to set up these days and uses HTTP or HTTPS instead of tftp. It's really easy on DD-WRT or OpenWRT, or any system with dnsmasq.
> 
> On Mon, Mar 14, 2011 at 4:24 PM, Josh Leverette <coder543 at gmail.com> wrote:
> HPC (High Performance Compute) Architecture
> 
> ...the means by which we can make the Lion tremble.
> 
> I have hung around in the shadows of Wayland's development since it was an infant, reading the different discussions that have taken place. I've commented occasionally, but not very often. I don't believe I've ever requested a feature, but this afternoon I was mowing my grandfather's lawn and had plenty of time to think about what feature Wayland could provide to catapult Linux to the top of the Operating System Wars. This is the idea I came up with, please give it consideration. I think it is well within the abilities of the people who have been contributing to Wayland so far, and could attract other skilled developers to this project, and that's without mentioning all of the long term impacts it could have. I've recently been thinking about how difficult it will be for Linux to compete with Mac OS X Lion, and this feature came to me as one that would make Linux a very desirable option.
> 
> In Mac OS X Lion a variety of features are coming which make it extremely competitive with Linux in ways that are very attractive to consumers and enterprises alike. Among these are the inclusion of Apple's very friendly server software in regular Mac OS X, the presence of the lucrative App Store, the Mission Control interface, and very advanced and effective use of multitouch from the trackpad.
> 
> Windows is dying, this will just be breaking already shattered glass, so no need to discuss this here really.
> 
> Here's the gist of the idea, something that would give Ubuntu and other Linuxes a step up on the other operating systems if implemented well inside of Wayland from the start. I was recently on my iPad and discovered an app called iSwifter which allows you to browse the web with fully enabled flash content. What it does is it renders these pages on (as far as i can tell) an Ubuntu server/desktop thing and streams it by using ffmpeg in a compressed stream. Any input is sent back to the server for processing and the page is manipulated accordingly and the result is returned to the iPad. This creates the illusion of actually browsing the flash-enabled web on an iPad. Occasionally you will see compression artifacts, but not very often.
> 
> Take this idea, but have it implemented in Wayland. Ideally this could be negotiated with the window manager so that it could be done on a per-program basis. When an application, such as Blender, is being used on a slow computer or a netbook, it might be desirable to have it run faster. There would be a button on each program's primary window which would allow you to transition it to a remote High Performance Compute server. The application would write down everything that it needs to in order to open back up to exactly where it was before, this information would get compressed and sent to the server. The server would start an instance of this application in a sandboxed virtual machine (with resources limited based on the type of account the end user is using, whether its a free account or a partially limited account, or a high paying account with access to lots of resources) and this application would load up the saved state information to resume where it left off. Preferably the entire virtual machine would be running from a RAMDisk in order to increase performance and security (as the memory would forget what had been going on as soon as the copy of the virtual machine is shut down). Whenever access to a file is requested, it gets compressed and sent over to the virtual machine. The file would then be kept in sync between the two computers. The application would be streaming its interface in a compressed fashion to windows that are of the correct sizes so that the interface appears to still be local. Each window would have its own stream. User input, such as keyboard, mouse, or window resize/minimize events would all be streamed back to the server for processing.
> 
> Before the transition would occur, it would need to check the integrity of the internet connection, if it doesn't meet certain latency requirements and bandwidth requirements, it might have to warn the user against running remotely, but it could still work it out on a slow connection, it just might not be as amazing of an experience. During the transition time from client to server, or server to client the window would be greyed out and a nice looking rounded box could be displayed showing a message that says the application is being transported and it could show a progress bar representative of the status (including compressing the app, uploading the app, and resuming the app on the server) and a cancel button (for when transitioning to the server). When the application is running on the remote server, the title bar of each window of that application would ideally be a different color. If we were using the Dark ambiance theme from Ubuntu, a nice glowing blue color would still look good but clearly mark that this is a remote application. The largest forseeable problem would be keeping a synchronous copy of the app as it is on the server with the user on the local machine in case of a sudden termination of the connection so that the program would hopefully not crash. The files would already be syncronized though.
> 
> The final feature that would make this a killer feature for everyone from consumers to enterprisers would be being able to easily set up your own HPC service on your own hardware. It would have a user friendly interface, and it could set up accounts with limited resource access. However, this interface would have to be manipulated locally and manually. For a small fee they could purchase a package which would allow for end users to enter payment methods and control their account settings from anywhere in order to create an HPC business. By default a copy of wayland would connect to either a service hosted by Wayland or by the individual distribution, such as Canonical. This service could generate revenue to fund Wayland development or each distribution's development or just give revenue to third parties if the user chose. In order for this feature to be a winner, there should be a free account which would give say 1GB of RAMDisk space and 1GB of virtual machine RAM (total of 2GB real RAM) and limited access to a graphics card, perhaps also limiting the amount of server time they could have access to. This would give them a taste of the product, and for a small amount of money ($5/month, or whatever) they could upgrade to greater resources. As far as the end user is concerned, this would mean they could play really intense games on a netbook with the graphics settings at maximum, or they could encode a movie project a lot faster, or they could make their own animated movies or short films much faster. All of this without having to pay for a $1000+ machine. For this feature to truly work, it would have to be implemented either in the core of Wayland, or in a window manager on Wayland. I'm not too sure how it would be done, but only that I have faith it can and should be done. Thank you for considering this idea.
> 
> -- 
> Sincerely,
>     Josh
> 
> _______________________________________________
> wayland-devel mailing list
> wayland-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/wayland-devel
> 
> 
> 
> 
> -- 
> [     Graham Cantin      ] | (408) 890-7463 - Google Voice FindME
> "Never feel stupid for asking questions, feel stupid for ignoring answers."
> [  System Administrator  ] | (XXX) XXX-XXXX xXXX - IT & Office PBX
> "You're arrogant for thinking you can, ignorant for thinking you cannot."
> [ RFSpot Mobile Services ] | (XXX) XXX-XXXX - Main Office Direct
> "Asking questions is important,
> because that's when intuition gets converted into inspiration."
> [   NASA Ames Research   ] | Building 19, Moffett Field, CA
> "As living spies we must recruit men who are intelligent but appear
> to be stupid; who seem to be dull but are strong in heart; men who are
> agile, vigorous, hardy, and brave; well-versed in lowly matters and able
> to endure hunger, cold, filth, and humiliation." - Tu Mu (803-825) 
> 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/wayland-devel/attachments/20110316/4cc4ec88/attachment.htm>


More information about the wayland-devel mailing list