[petsc-dev] discoverability

Jed Brown jed at 59A2.org
Mon Feb 22 14:48:23 CST 2010

On Mon, 22 Feb 2010 14:12:03 -0600, Barry Smith <bsmith at mcs.anl.gov> wrote:
>    Jed,
>     Over 10 years ago we had support for exactly this. Each section  
> bracketed by PetscOptionsBegin/PetscOptionsEnd resulted in a page of  
> options one could select for in a GUI. This is what the dead variable  
> PetscOptionsPublish is related to. It used the Alice Memory Snooper to  
> communicate between the PETSc processes and a Tcl GUI. It was pretty  
> sweet, but DOE politics killed the Alice Memory Snooper.

I definitely noticed that the design was set up for this, but never knew
it actually worked.

>     I think the way to resurrect it is by using the Zope stuff that we  
> added to PETSc a few years ago and display the GUI's in a browser  
> (with javascript I guess). This would give portability and not require  
> the user to install any GUI packages. Roughly the PetscOptionsEnd()  
> routine would communicate via sockets to the Zope server which would  
> display and get back the options via HTTP and the users browser. What  
> the GUI system does is present the options and allow the user to set/ 
> change the options database graphically as the program runs; except  
> for actually sending/getting back the values from the server the code  
> is in PetscOptionsEnd_Private().

It seems to me that sending the options to the program pretty much
requires restarting it.  If we could arrange things so that all options
were set before anything "expensive" happened, then the restart could be
done continuously as the user changed things like pc_type.  This is hard
to arrange for multilevel and fieldsplit.

I have no direct contact with Zope, but I recall hearing complaints
about unnecessary complexity.  The cool kids seem to like Django these
days.  Any any case, getting it in the browser does sound a lot better
than rolling a custom GUI.


More information about the petsc-dev mailing list