[MLton] More on Parallel Runtime

skaller skaller at users.sourceforge.net
Mon Oct 22 22:33:31 PDT 2007


On Mon, 2007-10-22 at 22:54 -0500, Henry Cejtin wrote:
> I agree that it is tricky to place safe points at the correct frequency.

I would guess it is impossible: you may cover many case but some
corners will defeat any assurances. But I do not *know* this,
it is only a guess.

If someone proved that it is indeed impossible, it would change the
approach to supporting parallel collectors (and other async operations).

In particular, control inverting a complex algorithm like
a parallel collector can't be trivial, but control inversion
is often the consequence of switching between a checking and
a pre-empting model. I know how to control invert sequential code ..
I have no idea how to invert parallel code ;(

OTOH suitable OS support may control invert transparently.
The OS can 'resume' a collector based on page modifications
(data granularity) and timeouts (time granularity).

Normal program code abstracts both of these things away.

-- 
John Skaller <skaller at users dot sf dot net>
Felix, successor to C++: http://felix.sf.net



More information about the MLton mailing list