Hello,

Continuing to glance at the class.... I also see the following member variables 
for the MeanSquares class:

  MeasureType *   m_ThreaderMSE;
  DerivativeType *m_ThreaderMSEDerivatives;

Where these are index by the thread ID and access simultaneously across the 
threads causes the potential for False Sharing, which can be a MAJOR problem 
with threaded algorithms.

I would think a good solution would be to create a per-thread data structure 
consisting of the Jacobin, MeasureType, and DerivativeType, plus padding to 
prevent false sharing, or equivalently assigning max data alignment to the 
structure.

Rupert, Would like to take a stab at this fix?

Brad


On Jul 25, 2012, at 4:31 PM, Rupert Brooks wrote:

> Sorry if this repeats - i just got a bounce from Insight Developers, so im 
> trimming the message and resending....
> --------------------------------------------------------------
> Rupert Brooks
> [email protected]
> 
> 
> 
> On Wed, Jul 25, 2012 at 4:12 PM, Rupert Brooks <[email protected]> 
> wrote:
> Aha.  Heres around line 183 of itkTranslationTransform.
> 
> // Compute the Jacobian in one position
> template <class TScalarType, unsigned int NDimensions>
> void
> TranslationTransform<TScalarType, 
> NDimensions>::ComputeJacobianWithRespectToParameters(
>   const InputPointType &,
>   JacobianType & jacobian) const
> {
>   // the Jacobian is constant for this transform, and it has already been
>   // initialized in the constructor, so we just need to return it here.
>   jacobian = this->m_IdentityJacobian;
>   return;
> }
> 
> Thats probably the culprit, although the root cause may be the reallocating 
> of the jacobian every time through the loop.
> 
> Rupert
> 
> <snipped>

_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html

Kitware offers ITK Training Courses, for more information visit:
http://kitware.com/products/protraining.php

Please keep messages on-topic and check the ITK FAQ at:
http://www.itk.org/Wiki/ITK_FAQ

Follow this link to subscribe/unsubscribe:
http://www.itk.org/mailman/listinfo/insight-developers

Reply via email to