OpenMP joy from Visual Studio :)

An update from my earlier post, I got a reply to my OpenMP 3.0 ticket, for those of you who don’t have a Windows Live account:

Hopefully that means it’ll be in VS 2010 by release time. Superb.

<3 Visual Studio, yet again :)



// Given a list of vehicles pending an update, eliminate those who
// are not yet ready for an update (not finished spawning, not heard
// from in a while, etc). Also perform all the various discrete,
// preliminary steps that can safely be executed in parallel.
static void _evaluateVehicleCandidates(VEHICLES& vehicles)
  // Have as many threads as possible spawn tasks of the
  // workload.
  #pragma omp parallel for schedule(guided) shared(vehicles)
  for ( size_t i = 0 ; i < vehicles.size() ; ++i )
    // Turn each vehicle into a task, since the execution length
    // is variable.
    #pragma omp task firstprivate(i)
      if ( _evaluateCandidate(vehicles[i]) == false )
      vehicles[i] = NULL ;

Cpu0: Idle: 99.8%
Cpu1: Idle: 0%

With 0 people on the server. Hmm.

OpenMP dissapointment from Visual Studio

I was going to post my little OpenMP self-tuition examples, but in the process of cleaning them up for public consumption, I discovered that Visual Studio 2010 doesn’t support OpenMP 3.0. Since about half of my examples focus on the use of the task directive for recursion and descent, it’s kinda pointless =/