[Insight-developers] Change in ITK[master]: PERF: Remove false sharing across threads

Matt McCormick matt.mccormick at kitware.com
Mon Sep 30 11:45:40 EDT 2013


+1 for another hangout discussion.  Hans or Brad, let me know if you
would like tips in creating the Hangout Event.

YAAC (yet another array class) would be a lot of effort and
maintenance burden, and I don't have an opinion on whether it would be
worth it.  But, I am working on the Visual Studio issue compile issues
for this patch [1], and it appears that aligned std::vector is not
going to work for older versions of Visual Studio [2] [3].

Thanks,
Matt

[1] http://review.source.kitware.com/#/c/12747/
[2] http://thetweaker.wordpress.com/2010/05/05/stdvector-of-aligned-elements/
[3] http://connect.microsoft.com/VisualStudio/feedback/details/692988

On Mon, Sep 30, 2013 at 1:33 PM, Bradley Lowekamp
<blowekamp at mail.nih.gov> wrote:
> I build Slicer that way too.
>
> However, the Slicer build server is running Snow Lepoard OSX 10.6, and is compiling with genuine GNU GCC 4.2.1, which I believe was part of XCode 3.
>
> Brad
>
> On Sep 30, 2013, at 9:28 AM, "Williams, Norman K" <norman-k-williams at uiowa.edu> wrote:
>
>> When I work on ITK, I use a version of CLang that I build from the svn
>> repository periodically.  This has in general been stable for the past
>> year, and there have been significant improvement both in warnings and the
>> minimization of 'false positive' warnings. In addition there have been
>> incremental improvements in code generation.
>>
>> When I build Slicer, I use the Xcode release version of Clang.  What
>> 'true' GCC are you using?  I gave up trying with newer versions of GCC
>> because they can't compile the Apple 'blocks' C++ extension, which keeps
>> VTK from compiling. Are you talking about an older version of GCC4?
>>
>>
>> --
>> Kent Williams norman-k-williams at uiowa.edu
>>
>>
>>
>>
>>
>>
>> On 9/30/13 8:17 AM, "Bradley Lowekamp" <blowekamp at mail.nih.gov> wrote:
>>
>>> Hans,
>>>
>>> I think we should try to do a google hang out on Registration performance
>>> enhancements this week,
>>>
>>> It looks like you have a lot of really good patches to improvements. I
>>> think some of them look like good fixes and can be made independent and
>>> easily merge.
>>>
>>> However, how we do this cache alignment thing needs some more thought on
>>> the best way to do it and to plan for more cases and future proofing.
>>> Your point about the padding for compiler which don't support our current
>>> alignment is important as the genuine gcc compiler Slicer is using on OSX
>>> does not support it. I think likely we need yet another array class to
>>> encapsulate some things, and provide more compatibility to flexibility of
>>> implementations.
>>>
>>> Brad
>>>
>>> On Sep 27, 2013, at 4:27 PM, "Johnson, Hans J" <hans-johnson at uiowa.edu>
>>> wrote:
>>>
>>>> Brad,
>>>>
>>>> My thought was that the padding is needed for compilers that do not
>>>> support the alignment.  It seems like perhaps I traded one problem for
>>>> another though.
>>>>
>>>> I suppose it would be an easy test to remove the padding.  Then machines
>>>> that do not support the alignment will have less speed up benefit.  But
>>>> honestly I think that anyone who is doing production work with ITK
>>>> should
>>>> be using a compiler/compiler options that supports alignment.
>>>>
>>>>
>>>>
>>>> Hans
>>>>
>>>> On 9/27/13 2:00 PM, "Bradley Lowekamp (Code Review)"
>>>> <review at kitware.com>
>>>> wrote:
>>>>
>>>>> Bradley Lowekamp has posted comments on this change.
>>>>>
>>>>> Change subject: PERF: Remove false sharing across threads
>>>>> ......................................................................
>>>>>
>>>>>
>>>>> Patch Set 3:
>>>>>
>>>>> I am not sure that the padding is needed it the structure has an
>>>>> alignment property. Was this verified that this was required? I didn't
>>>>> think it was needed when I did the v3 aligned data structures.
>>>>>
>>>>> --
>>>>> To view, visit http://review.source.kitware.com/12747
>>>>>
>>>>>
>>>>> To unsubscribe, visit http://review.source.kitware.com/settings
>>>>>
>>>>> Gerrit-MessageType: comment
>>>>> Gerrit-Change-Id: I1c823f03612958a43cc25860c8d7c9727e635f11
>>>>> Gerrit-PatchSet: 3
>>>>> Gerrit-Project: ITK
>>>>> Gerrit-Branch: master
>>>>> Gerrit-Owner: Hans J. Johnson <hans-johnson at uiowa.edu>
>>>>> Gerrit-Reviewer: Ali Ghayoor <ali-ghayoor at uiowa.edu>
>>>>> Gerrit-Reviewer: Bradley Lowekamp <blowekamp at mail.nih.gov>
>>>>> Gerrit-Reviewer: Hans J. Johnson <hans-johnson at uiowa.edu>
>>>>> Gerrit-Reviewer: Matt McCormick <matt.mccormick at kitware.com>
>>>>> Gerrit-Reviewer: Nick Tustison <ntustison at gmail.com>
>>>>> Gerrit-Reviewer: brian avants <stnava at gmail.com>
>>>>> Gerrit-Reviewer: kent williams <norman-k-williams at uiowa.edu>
>>>>
>>>>
>>>>
>>>> ________________________________
>>>> Notice: This UI Health Care e-mail (including attachments) is covered
>>>> by the Electronic Communications Privacy Act, 18 U.S.C. 2510-2521, is
>>>> confidential and may be legally privileged.  If you are not the intended
>>>> recipient, you are hereby notified that any retention, dissemination,
>>>> distribution, or copying of this communication is strictly prohibited.
>>>> Please reply to the sender that you have received the message in error,
>>>> then delete it.  Thank you.
>>>> ________________________________
>>>
>>
>>
>>
>> ________________________________
>> Notice: This UI Health Care e-mail (including attachments) is covered by the Electronic Communications Privacy Act, 18 U.S.C. 2510-2521, is confidential and may be legally privileged.  If you are not the intended recipient, you are hereby notified that any retention, dissemination, distribution, or copying of this communication is strictly prohibited.  Please reply to the sender that you have received the message in error, then delete it.  Thank you.
>> ________________________________
>


More information about the Insight-developers mailing list