As I understand it, the basic principle is that when splitting, the parent processor (searching the parent node) obtains a child processor (to search the child nodes). That child processor then performs the search (likely by using children processors of its own unless none are available) and returns a result. If, in the meantime, a cutoff has occurred and the result from that child processor can be discarded by the parent processor, the child processor is sent a message to discontinue searching and become available.
Presumably, this could be managed in the abstract by having a queue of available processor ids, and having parents remove processor ids from the queue to obtain a child processor and then having children processors add themselves back in when their search is complete or cancelled. This would be trivial for a shared-memory program, but what is the best way to do this with MPI? Must one process be devoted to managing this queue, or is there some better way to do it?
Edit: I should add that I'm assuming a YBW parallelization.