Re: Remote fork() and Parallel programming

Andrej Presern (andrejp@luz.fe.uni-lj.si)
Mon, 15 Jun 1998 11:57:24 +0200


mshar@vax.ipm.ac.ir wrote:
> migrated if some thresholds are exceeded in a machine. Because of the hint
> mechanism, the application programmer can inform the system not to migrate
> processes are are short lived, or that use many local resouces.
>
> This help from the application programmer will greatly help prevent the
> system from making the wrong decisions.
[snip]
> >Answer: memory channel. DSM on standard networks cannot work.
>
> Yes it can. Its performance can improve if the programmers are a bit
> careful. As I said before, the use of sychronization methods like
[snip]
> Yes, synchronizing via DSM can kill a program. A bit of programming
> discipline is all that is needed to mitigate such problems. I believe the
> advantages of DSM by far outweigh the disadvantages.
[snip]
> in the form of the hints from the application itself. If the programmer (or
> better, the user, via a command line argument to the program) informs the
> kernel that migration should be performed, [...]

You've clearly pointed out that in order to be efficient (or at least
work) in a cluster, applications WILL have to be modified. So what's
about the 'old apps will benefit' argument? It doesn't make sense
anymore. It doesn't make sense to insist on making inappropriately
designed old software work in a radically different environment.
Distributed computing will force us to write new software, so we might
as well write it in a manner that suits distributed systems the best and
makes the best possible use of distributed system's resources.

> If the user sees a drop in performance, after allowing process migration in
> one run of the program (an error in the migration-decision algorithm), then
> it will allow the program to run only locally the next time. This works
> because most programs are executed many times.

Who says the use of resources won't be radically different the next time
the app is run?

> >You are avoiding the question. DSM turns out to be messages with some
> >extra junk on top because most networks support messages, not shared
> >memory.
>
> You really think so? _Any_ elementary OS text book informs its readers that
> using shared memory for synchronization is bad even in a single computer.
> This is called busy waiting. So the answer is: use mechanisms like semaphores
> and messages for this.
>
> I thought this is too obvious to write.

A page in memory looks like this:
[data, data, data, ...]

When the page is migrated to another host, it gets to look like this:
[envelope,
[data, data, data, ...]
]

The page is put into an envelope that carries it to the new destination.
I'd say that such a page in migration is not really a 'page', but a
message whose data is the page. Obvious enough?

Andrej

-- 
Andrej Presern, andrejp@luz.fe.uni-lj.si

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu