Check out the new USENIX Web site. next up previous
Next: Filesystem extension Up: Examples Previous: Program monitoring

Service improvement

In this example, we replace the definition of FFT used by a program, by another one that makes a more efficient computation exploiting multiple CPUs. Given the new FFT service, the extension should simply bridge differences in the interface:

void fft_bridge(float *data, long size)
{
  n = get_num_processors();
  new_data = reshape_data(n, data);
  spawn(n, parallel_fft, new_data, size);
  wait_for_end();
}

This routine computes the available number of processors, prepares the data to be used by the threads, and spawns threads to execute a parallel FFT using the reshaped data. Once built, we should simply override the old FFT service using the redefinition facility, either through the config file or at run-time (di_rebind).



Albert Serra, DITools, 2000 USENIX Annual Technical Conference
Tue Apr 25 13:07:07 MET DST 2000