[OT] Retreating from Iraq

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Mon Oct 13 15:35:07 PDT 2008


Sean Kelly wrote:
> Andrei Alexandrescu wrote:
>> Suppose that a miracle happen and the decision is taken at the highest 
>> level to retreat all of US military presence from Iraq. That will take 
>> a while, but sending the orders quickly is a must.
>>
>> For utmost certainty, all orders are to be sent via phone and down the 
>> command chain, and only to direct subordinates. Each officer has a 
>> variable number of subordinates. Initially the president calls his 
>> immediate subordinates, who call their immediate subordinates, etc. 
>> Each call can be assumed to take the same amount of time.
>>
>> Devise an algorithm that ensures every foot soldier gets the news as 
>> quickly as possible, show it is correct, and show it is fast.
> 
> Ah, we're finally getting into concurrent programming :-)  I'm sure the 
> syntax could be made more D 2.0-like, but something like this should do 
> the trick:
> 
> class Soldier
> {
>     Soldier[] subordinates;
> 
>     void notify()
>     {
>         foreach( s; subordinates )
>             pool.add( &s.notify() );
>         pool.add( &flee() );
>     }
> 
>     void flee()
>     {
>         // make 'this' actually flee
>     }
> }
> 
> Assume 'pool' is a global thread pool with some number of worker threads 
> proportional to the number of cores on the system.  This will issue 
> instructions for all Soldiers to flee in an optimally parallel manner 
> for the target system.

Nope, not optimal. Please reread the spec.

Andrei



More information about the Digitalmars-d mailing list