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
