[petsc-dev] We need to cleanup viewers

Barry Smith bsmith at mcs.anl.gov
Thu Mar 27 17:29:58 CDT 2014


On Mar 27, 2014, at 5:22 PM, Jed Brown <jed at jedbrown.org> wrote:

> Barry Smith <bsmith at mcs.anl.gov> writes:
> 
>> On Mar 27, 2014, at 5:03 PM, Jed Brown <jed at jedbrown.org> wrote:
>> 
>>> Barry Smith <bsmith at mcs.anl.gov> writes:
>>>>   If a user calls XXX() and it doesn’t do what they expect, how do
>>>>   they figure out what is wrong? It is called debugging and usually
>>>>   it is because what they expect is not what it does.
>>> 
>>> I have to say, my first instinct in such cases, especially when working
>>> with an unfamiliar code base, is that the line invoking the viewer is
>>> never reached
>> 
>>   Trivia to check in the debugger. 
> 
> Yes, but already cumbersome when the front-end is Python, the program is
> launched through a script that always creates at least 9 processes, the
> build system doesn't support simultaneous debug and optimized installs,
> and rebuilds take hours.  Suddenly you're jumping through hoops (each
> one manageable if disconcerting) for what should have been a 10-second
> task.  I don't understand why people bring such things upon them, but
> the things we shrug off as 10-second queries are not always.  Yes, it's
> "their" own damn fault for building a monstrosity, but there is
> sometimes amazing value in simple reasoning about user code.

   You shouldn’t be allowed to start implementing a complicated nested “framework system” until you clearly understand how you are going to debug in it. The community should just not tolerate that kind of crap.


> 
>>> Sometimes we want XXView(X,V) to mean "Hey X, anything you feel like
>>> talking about?" and other times we mean "X, serialize yourself!”
>> 
>>   Maybe this is related to the specific type of viewer and even
>>   format.  
> 
> Indeed, some sort of attribute of the viewer.  It may be tricky to know
> which semantic is best in all cases, but I think many are clear.
> 
>>   Also it is related to either 1) serialize yourself so you can be
>>   totally recreated (true serialization) versus 2) serialize enough
>>   of yourself so I can visualize you.  We usually do 2) currently and
>>   in that case it is reasonable sometimes to not view everything.




More information about the petsc-dev mailing list