On Mon, Oct 3, 2011 at 12:22 PM, Spencer Boucher sboucher@stanford.edu wrote:
New to Freesurfer here, but I was wondering if there is any viability to the idea of parallelizing freesurfer for running on multiple servers so as to reduce the time required to run recon-all on a single subject. Is there an aspect of the algorithm that makes this inherently infeasible?
Given that essentially everything these days is multicore, running on multiple servers wouldn't even be necessary - you could do it with OpenMP (Multiple servers running MPI would only be necessary once the new 1000T MRI machines start producing 8192^3 data sets with good SNR). Indeed a lot of algorithms within Freesurfer are well suited to such parallelisation, since they are basically independent iterations over all the voxels in an image (this is how the GPU version works). Unfortunately, the detailed implementation of these algorithms in the current codebase is not always optimal for this. It might be worthwhile experimenting with a couple of carefully placed OpenMP pragmas, though - the convolution routines would be an ideal starting point, since they're already separated out into a unit test (under cudatest) with timers attached.
Richard