Re: understanding 9grid and clustering?
Bob Hartley <[email protected]> Tue, 7 Dec 2004 22:02:51 -0500
| Newsgroups | gmane.os.plan9.nine-grid |
|---|---|
| Message-ID | <[email protected]> |
On Dec 7, 2004, at 6:51 PM, andrey mirtchovski wrote: >> I wonder if it would be useful to spin off threads and have them >> executing or self-migrating to another node somewhere else on a >> cluster >> or grid where there are more cycles available. > > it would be very useful, yes. difficult to implement too. you won't > find much in linux to borrow from either. > > i don't think anyone is working at adding support along those lines. Thank you for entertaining me on this. I have been imagining a distributed threading library, perhaps called dthreads. (I started wondering about total amount of threads that could be active on a CPU server, the term "max thread room" came to mind, and then started wondering what sort of runtime library the 1980's pseudo animated TV character Max Headroom would have had if he were real.) Most of the following musing could be prefaced with "perhaps" "maybe" and "what if." The idea would be a superset of the pthreads library, but everything would be a distributed thread even if it was local. Variables and open file resources could continue to be shared across node boundaries through transparent proxying, but this may not be too bad if using a remote file server. Memory protection schemes and debugging traps could be used for synchronization Enhancements to the standard facility would be threads that could: - be started up on a different nodes - migrate to other nodes after being preemptively interrupted. - de/serialize variable and task states, basically swap out, copy to another node, swap in again. - resources can be found and negotiated between threads on other nodes that share individual and grouped: CPU cycles, memory, network bandwidth, minimal latency, etc. - heterogeneous threading through use of "fat" binaries as used on NeXT and as described at http://www.lfbs.rwth-aachen.de/~martin/MetaMPICH/metaframe.html - allow object and process state introspection, perhaps through debugging type facility - allow automatic thread redundancy. This would allow sharing of grid resources at a new level. One could time share machines between friends here in Ottawa and back home in Melbourne Australia. Snapshots of processes could be made and duplicated or moved from home to iPod to work, all without needing a system like VMWare or others like it. Applications could backtrack on a problem solving expedition by doing a thread based equivalent to "longjmp()" I think much of this sort of thing is done already on VMS, but am wondering if it has been looked at on Plan 9 or other OSes. Thanks, -rh