[ITK] b-spline registration performance

Matt McCormick matt.mccormick at kitware.com
Thu Aug 27 00:38:22 EDT 2015


Hi Chad,

> For the metric, I am using correlation since it's unimodal registration, and
> I have 32 threads (16 physical cores total with 2 CPUs, 8 cores on each).
>
> Also, I've heard that the interpolator can affect the registration
> performance, and I'm currently trying out different ones (using linear for
> default).
>
> For the registration initiation, the Python (SimpleITK) process's CPU % goes
> up all the way for couple minutes, and then it drops—I only see 1~3%
> activity (virtually no activity) and no change in memory. And this period
> seems to be correlated with the image size and also the mesh size for
> b-spline transformation—if I use a large number of nodes for the mesh, it
> can even take up to couple hours.
>
> Is this a known issue? or Am I doing something wrong?

Yes, this is a known issue. There is room for improvement in ITK
related to thread re-use and data starvation in threads.

It may be worth setting the ITK_GLOBAL_DEFAULT_NUMBER_OF_THREADS
environmental variable to a smaller value, e.g

  export ITK_GLOBAL_DEFAULT_NUMBER_OF_THREADS=6

HTH,
Matt


More information about the Community mailing list