Multicore global fit? large data sets taking forever to fit

So I have been using Igor's global fit function for a while now to analyze large sets of data on a macbook pro with a dual core processor. I know for the simple fit program you can select to use multiple cores/processors, is there anyway to do a global fit using multiple processors? Currently only using one core it takes almost 30mins to perform the fits, it would be nice if I could cut that time down.
Unfortunately, I haven't had the time to modify Global Fit to allow threadsafe fit functions. If I did that, then Global Fit would be able to take advantage of multiple cores.

If you have multiple data sets that need to be analyzed at the same time, you should be able to use your multiple cores by running multiple instances of the Igor application. Usually the operating system will assign different applications to different cores.

On Windows, it is as simple as starting up Igor multiple times. On a Macintosh, make multiple copies of the Igor Pro.app application file and double-click each one.

John Weeks
WaveMetrics, Inc.
support@wavemetrics.com
Although the multithreading can't happen at the globalfit level you can do several things to speed things up. First of all make sure that all your fit functions are "all at once". That can cut a lot of overhead in different places.
The next thing to do would be to write an "all at once" wrapper function for each fit function you need to use. In this wrapper function (which does not need to be threaded) you can do a threaded calculation to calculate the theoretical values. Ok, so it's not at the top level, but it speeds things up a lot.
Here's a simple version that would do multithreaded gaussian calculations. The fitfunction you need to use in globalfit is gauss_wrapper.

Function gauss_wrapper(w, yy, xx): fitfunc
Wave w, yy, xx
Multithread yy = mygauss(w, xx)
End

Threadsafe Function mygauss(w, xx)
Wave w
variable xx
return  w[0] * exp(-1 * ((xx - w[1])/w[2])^2)
End