HPC (High Performance Compute) Architecture

Graham Cantin kamilion at gmail.com
Mon Mar 14 23:33:05 PDT 2011


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.
[image: 25-cents-coin-door-label-small-02172010.jpg]
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/20110314/03df7016/attachment-0001.htm>


More information about the wayland-devel mailing list