[Insight-developers] vxl update

Hans Johnson hans-johnson at uiowa.edu
Thu Dec 9 07:52:37 EST 2010


Bill,

No matter what we do in ITKv4, it does not affect companies, it's customers,
for any of their existing products.  They can continue using ITKv3 for as
long as they like.

Given the fact that the ITKv4 has 1 year of funding to develop a
maintainable infrastructure that needs to last 10 years, I would propose
that those companies that need/desire to update to ITKv4 will have to share
the maintenance burden and find a way to update their compilers.

====
Plea to commercial entities (or their customers), please contribute to the
this discussion.  You have very few spokesman, and we need you to speak up
with concrete examples so that we may make evidence based decisions given
limited developmental resources.

In particular:
1) Do you require ITKv4 for your products? (Why?)
2) What compilers are you required to use? (Why?)
3) How can we help you contribute to ITK so that your needs are better met?

Regards,
Hans


-- 
Hans J. Johnson, Ph.D.
Hans-johnson at uiowa.edu

278 GH
The University of Iowa
Iowa City, IA 52241
(319) 353 8587


> From: Bill Lorensen <bill.lorensen at gmail.com>
> Date: Wed, 8 Dec 2010 17:40:56 -0500
> To: Hans Johnson <hans-johnson at uiowa.edu>
> Cc: Bradley Lowekamp <brad at lowekamp.net>, Brad King <brad.king at kitware.com>,
> ITK <insight-developers at itk.org>
> Subject: Re: [Insight-developers] vxl update
> 
> I am concerned about an academic argument versus a commercial
> argument. Academics are much more likely to upgrade infrastructure
> like compilers. For a company and its customers, compiler upgrades are
> non-trivial, possibly impacting many products.
> 
> On Wed, Dec 8, 2010 at 11:33 AM, Hans Johnson <hans-johnson at uiowa.edu> wrote:
>> 
>> First:  I am willing to loose this argument.  I just think it is important
>> that we think about the cons of supporting a wide range of compilers.
>> 
>> The default download of mingw is version 4.5 of the gcc compiler.  After
>> several minute of looking, I could not find the mingw 3 series.
>> 
>> ===
>> 
>> I am concerned that the gcc3 compiler has several work a rounds that have
>> been propagated with the ITKv3 being mainly tuned for gcc3 compiler.
>> 
>> This still needs testing, but there is some anecdotal evidence form Brad
>> Lowekamp that the TEMPLATE_META_PROGRAMMING_LOOP_UNROLLING improves
>> performance on gcc3, but gcc4 (and any vectorizing compilers)  are
>> significantly better with the for loops.
>> 
>> ===  What follows are my options
>> To me, the scariest part of making ITKv4 live for the next 10 years on it's
>> own without significant funding support, is the maintenance of the software.
>> Any way that we can minimize the maintenance support structure of ITKv4 now
>> will pay back dividends later (yes this is a developer concern, not an
>> end-user concern).  If we drive away developers because of the difficulty in
>> supporting too many compilers, we have shot ourselves in the foot.  I can
>> tell you that we have items that we would have contributed to ITKv3, but the
>> pain in getting it to work with the Borland compiler means that it is still
>> in our won private svn repository.
>> 
>> From surveys, ITK has a bad reputation of having poor performance.  With
>> performance, we moved to gcc4 many years ago because the gcc4 compiler
>> produced so much better performance.
>> 
>> My opinion is that there are two comminutes that we should focus on: 1) ITK
>> users who are software/algorithm developers, 2) medical image processing end
>> users who prefer pre-built binaries.
>> 
>> Group #1 is mostly using a fairly recent freely available version of
>> compilers for their platforms.  The ITK dashboard has many compilers that
>> are only used for testing, but never really used by end users.  I'd contend
>> that if there is a user community that depends on Mac 10.3.9 (released in
>> April 15, 2005).  That communities need for ITKv4 is not large enough to
>> justify the effort of maintaining it.  Even RedHat EL4 (4.1, also known as
>> Update 1, 2005-06-09) has gccv4, and RedHat is one of the most conservative
>> Linux variations.
>> 
>> Group #2 depends on Group #1 to get them the best compiled version of the
>> library.
>> 
>> In my highly opinionated cost/benefit analysis, we will gain more happy
>> end-users from targeted performance testing and maintenance simplifications
>> at the cost of a few un-happy end-users who will be required to find a way
>> to install an updated free (from a licensing perspective) one of our few
>> supported compilers.
>> 
>> For ITKv4's life cycle of September 2011-2020, we should target the
>> "available commodity" compilers of the most commonly used operating systems
>> of say 2009.
>> 
>> That would be
>> WindowsXP -- (released in November 2007) Visual Studio 2008 Express ,
>> Mac 10.5 (October 26, 2007)-- gcc4
>> RedHat Linux 5 (5.1, also known as Update 1, 2007-11-07)--gcc4
>> 
>> ==============================
>> So in summary:
>> ** ITKv4 won't be "in the wild" until about a year from now.
>> ** Now is our only opportunity to simplify the maintenance burden for the
>> next 10 years (i.e. old compilers not being supported).
>> ** The diversity of compilers to be supported in ITKv4 will be monotonically
>> increasing over the next 10 years.
>> 
>> Regards,
>> Hans
>> --
>> Hans J. Johnson, Ph.D.
>> Hans-johnson at uiowa.edu
>> 
>> 278 GH
>> The University of Iowa
>> Iowa City, IA 52241
>> (319) 353 8587
>> 
>> 
>>> From: Bill Lorensen <bill.lorensen at gmail.com>
>>> Date: Wed, 8 Dec 2010 10:08:54 -0500
>>> To: Hans Johnson <hans-johnson at uiowa.edu>
>>> Cc: Brad King <brad.king at kitware.com>, ITK <insight-developers at itk.org>
>>> Subject: Re: [Insight-developers] vxl update
>>> 
>>> I don't think we should drop gcc 3.x. For example, my mingw gcc
>>> compiler is 3.4.5 and builds ITK just fine. It is a recent download of
>>> mingw.
>>> 
>>> I'm sure there are a lot of folks out there still using gcc 3.x
>>> 
>>> 
>>> 
>>> On Wed, Dec 8, 2010 at 9:49 AM, Hans Johnson <hans-johnson at uiowa.edu> wrote:
>>>> Food for thought:
>>>> 
>>>> If we just stick to gcc 4.0 or greater, then we reduce the spread of
>>>> supported features sets in compilers.
>>>> 
>>>> On mac from two OS revisions ago (i.e. 10.4 and latest is 10.6) gcc4 is
>>>> available by default.
>>>> 
>>>> On Linux RedHad EL4 a two OS revisions ago is also a default compiler on
>>>> that platform.
>>>> 
>>>> Hans
>>>> 
>>>> --
>>>> Hans J. Johnson, Ph.D.
>>>> Hans-johnson at uiowa.edu
>>>> 
>>>> 278 GH
>>>> The University of Iowa
>>>> Iowa City, IA 52241
>>>> (319) 353 8587
>>>> 
>>>> 
>>>>> From: Brad King <brad.king at kitware.com>
>>>>> Date: Wed, 08 Dec 2010 09:27:01 -0500
>>>>> To: ITK <insight-developers at itk.org>
>>>>> Subject: Re: [Insight-developers] vxl update
>>>>> 
>>>>> On 12/07/2010 06:19 PM, Sean McBride wrote:
>>>>>> On Tue, 7 Dec 2010 17:54:40 -0500, Bill Lorensen said:
>>>>>>> There are a few issues. Several platforms have compiler errors:
>>>>> 
>>>>> Thanks for the summary.
>>>>> 
>>>>>>> http://www.cdash.org/CDash/viewBuildError.php?buildid=795777
>>>>>> Personally, I'd ditch gcc 3.3.  If it's running OS 10.4, gcc 4.0 is also
>>>>>> available there.
>>>>> 
>>>>> I agree.  Any objections to dropping gcc 3.3 and this midworld dashboard?
>>>>> 
>>>>>>> http://www.cdash.org/CDash/viewBuildError.php?buildid=795403
>>>>>> I could fix this the same way it was fixed for VTK/ITK years ago: an #if
>>>>>> APPLE that ignores the try-compile results.
>>>>> 
>>>>> http://itk.org/gitweb?p=ITK.git;a=commitdiff;h=2d832c34
>>>>> 
>>>>>>> http://www.cdash.org/CDash/viewBuildError.php?buildid=795260
>>>>>>> http://www.cdash.org/CDash/viewBuildError.php?buildid=795348
>>>>>> 
>>>>>> These are hitting an #error...
>>>>> 
>>>>> http://itk.org/gitweb?p=ITK.git;a=commitdiff;h=388ab9f1
>>>>> http://itk.org/gitweb?p=ITK.git;a=commitdiff;h=d09fc7b5
>>>>> 
>>>>>> http://www.cdash.org/CDash/testSummary.php?project=2&name=test_pow_log&da
>>>>>> te
>>>>>> =2
>>>>>> 010-12-07
>>>>> 
>>>>> http://itk.org/gitweb?p=ITK.git;a=commitdiff;h=d280635a
>>>>> 
>>>>> -Brad
>>>>> _______________________________________________
>>>>> 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.html
>>>>> 
>>>>> 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
>>>> 
>>>> _______________________________________________
>>>> 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.html
>>>> 
>>>> 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
>>>> 
>> 
>> 



More information about the Insight-developers mailing list