Re: Next Generation of Language



From: Madhu <enom...@xxxxxxxx>
if your input is not a tree, this algorithm will expand the same
node multiple times. This [inefficiency] can be done in parallel,
of course :) Which is why order tends to be important in DFS, and
why it is unsuitable for decomposition.

If you use any parallelism, then by definition it isn't *depth*first*
search, because you're already starting a second branch before the
first branch is completely finished. So I'm going to ignore the
reference to DFS in what you said, and treat the more general case
of top-down traversal of DAG (directed acyclic graph) from a unique
top node.

In the context here, per-CPU computational resources greatly exceed
inter-CPU communication capability. Accordingly there's virtually
no cost for computing hash numbers for situations and using them to
pass service requests to a distributed hash table and thereby
consolidating duplicate appearances of the same situation and then
caching results. Note that it isn't necessary to pass the entire
situation from the node that spawns it to the node owning its hash.
It's sufficient for the spawner to ask "are you working on this
already" via the hash code, and if so then let the work continue
and set a callback when task is done, if not then set a back-link
and work on it yourself if you're not overloaded relative to the
hash-owner.
.