Plan 9 and multicores/parallelism/concurrency? - Plan9

This is a discussion on Plan 9 and multicores/parallelism/concurrency? - Plan9 ; from wikipedia: "Plan 9 from Bell Labs is a distributed operating system, primarily used for research." but it doesnt say anything more about the distributed part. I have recently found a big interest in concurrency, distributed systems and multicore-programming. So ...

+ Reply to Thread
Results 1 to 8 of 8

Thread: Plan 9 and multicores/parallelism/concurrency?

  1. Plan 9 and multicores/parallelism/concurrency?

    from wikipedia:
    "Plan 9 from Bell Labs is a distributed operating system, primarily
    used for research."

    but it doesnt say anything more about the distributed part.

    I have recently found a big interest in concurrency, distributed
    systems and multicore-programming.

    So is Plan 9 good for a multicore-computer or what kind of distributed
    system is it made for?

    In what way does it make it easy?

  2. Re: [9fans] Plan 9 and multicores/parallelism/concurrency?

    On Mon, Jul 14, 2008 at 4:45 PM, ssecorp wrote:
    > from wikipedia:
    > "Plan 9 from Bell Labs is a distributed operating system, primarily
    > used for research."
    >
    > but it doesnt say anything more about the distributed part.
    >
    > In what way does it make it easy?


    Plan 9 makes it easy via 9p, its file system/resource sharing
    protocol. In plan 9, things like graphics and network drivers export a
    9p interface (a filetree). Furthermore, 9p is network transparent
    which means accesses to remote resources look exactly like accesses to
    local resources, and this is the main trick - processes do not care
    whether the file they are interested in is being served by the kernel,
    a userspace process, or a machine half way across the world.
    -sqweek


  3. Re: [9fans] Plan 9 and multicores/parallelism/concurrency?

    In addition to sqweek's good reply:
    The "distributed" part also refers to how a typical installation is
    structured. The system responsible for authenticating you, your
    file server, the cpu server you run processes on, and the terminal
    you're typing at may well all be distinct computers, but for the
    most part none of the application code knows anything about
    networking. The system takes care of it for you (mostly thanks to
    9p, as sqweek described).
    In terms of concurrency, that's more of a programming question
    than an OS question (which isn't to say the OS isn't relevant).
    Plan 9's thread(2) library is probably the most relevant thing
    there. It follows a very different (and easier to learn, read, and
    write) model than the threads you see in other systems. Plan
    9 mostly helps there by making things lighter, encouraging the
    use of multiple processes where other systems penalize it; the
    library itself is now available on unix through plan9port.
    Anthony



  4. Re: [9fans] Plan 9 and multicores/parallelism/concurrency?

    On Mon, Jul 14, 2008 at 1:45 AM, ssecorp wrote:

    > from wikipedia:
    > "Plan 9 from Bell Labs is a distributed operating system, primarily
    > used for research."
    >
    > but it doesnt say anything more about the distributed part.
    >
    > I have recently found a big interest in concurrency, distributed
    > systems and multicore-programming.
    >
    > So is Plan 9 good for a multicore-computer or what kind of distributed
    > system is it made for?
    >
    > In what way does it make it easy?
    >
    > Assuming that the kernel can address multiple cores and SMP systems (I've

    never tried it but I assume it can), one can write code in C via a library
    called libthread, which provides a mechanism for writing concurrent programs
    (originally meant to help port the programs written in the ill-fated but
    very cool language Alef to C).
    It features threads and typed data channels for interprocess communication
    in a CSP sort of organization.

    If libthread is able to grab real processors per thread and get them
    scheduled, one's concurrent style code ultimately ends up having potential
    to run in parallel on those cores/processors.

    I think this method of writing programs designed to work on multi-core
    systems is a good one. As do the folks who use Concurrent Haskell, or even
    Erlang and perhaps Scala and other "new languages". In a sense this makes
    writing code for multiple cores "easy" on Plan 9.

    Dave


  5. Re: [9fans] Plan 9 and multicores/parallelism/concurrency?

    > If libthread is able to grab real processors per thread and get them
    > scheduled, one's concurrent style code ultimately ends up having potential
    > to run in parallel on those cores/processors.


    due to the specific meaning of "thread" in the thread
    library, this statement is misleading.

    only procs may run in parallel. threads are scheduled
    cooperatively. since procs are scheduled by the kernel,
    the kernel is responsible for scheduling procs; the thread
    library doesn't grab processors.

    - erik



  6. Re: [9fans] Plan 9 and multicores/parallelism/concurrency?

    On 7/14/08, sqweek wrote:
    > On Mon, Jul 14, 2008 at 4:45 PM, ssecorp wrote:
    > > from wikipedia:
    > > "Plan 9 from Bell Labs is a distributed operating system, primarily
    > > used for research."
    > >
    > > but it doesnt say anything more about the distributed part.
    > >

    >
    > > In what way does it make it easy?

    >
    >
    > Plan 9 makes it easy via 9p, its file system/resource sharing
    > protocol. In plan 9, things like graphics and network drivers export a
    > 9p interface (a filetree). Furthermore, 9p is network transparent
    > which means accesses to remote resources look exactly like accesses to
    > local resources, and this is the main trick - processes do not care
    > whether the file they are interested in is being served by the kernel,
    > a userspace process, or a machine half way across the world.
    >


    more on 9p at http://9p.cat-v.org

    --
    iru


  7. Re: [9fans] Plan 9 and multicores/parallelism/concurrency?

    On Mon, 2008-07-14 at 08:45 +0000, ssecorp wrote:
    > from wikipedia:
    > "Plan 9 from Bell Labs is a distributed operating system, primarily
    > used for research."
    >
    > but it doesnt say anything more about the distributed part.
    >
    > I have recently found a big interest in concurrency, distributed
    > systems and multicore-programming.
    >
    > So is Plan 9 good for a multicore-computer or what kind of distributed
    > system is it made for?


    I believe the real question is not whether Plan9 is good for multicore,
    but whether multicore is any good as a long term computing strategy.

    My personal impression has always been that Plan9 is the best OS for
    distributed memory systems. I believe that folks working with IBM can
    elaborate on that. As for the shared memory (whether NUMA or not) the
    pressure is more on application (and thus application level languages
    and tools) than on OS. It'll be interesting to see how a single Plan9
    kernel scales on something like a Batoka box (256 hardware threads per
    box, 64 physical cores). On the other hand, may be the trick is not
    to scale a single kernel on something like that but have multiple
    kernels running under something like Xen or kvm.

    Thanks,
    Roman.



  8. Re: [9fans] Plan 9 and multicores/parallelism/concurrency?

    On Mon, 2008-07-14 at 17:08 +0800, sqweek wrote:
    > On Mon, Jul 14, 2008 at 4:45 PM, ssecorp wrote:
    > > from wikipedia:
    > > "Plan 9 from Bell Labs is a distributed operating system, primarily
    > > used for research."
    > >
    > > but it doesnt say anything more about the distributed part.
    > >
    > > In what way does it make it easy?

    >
    > Plan 9 makes it easy via 9p, its file system/resource sharing
    > protocol. In plan 9, things like graphics and network drivers export a
    > 9p interface (a filetree). Furthermore, 9p is network transparent
    > which means accesses to remote resources look exactly like accesses to
    > local resources, and this is the main trick - processes do not care
    > whether the file they are interested in is being served by the kernel,
    > a userspace process, or a machine half way across the world.


    All very true. And it sure does provide enormous benefits on distributed
    memory architectures. But do you know of any part that would be
    beneficial for highly-SMP systems?

    Thanks,
    Roman.



+ Reply to Thread