<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, Aug 4, 2015 at 6:33 PM, Barry Smith <span dir="ltr"><<a href="mailto:bsmith@mcs.anl.gov" target="_blank">bsmith@mcs.anl.gov</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""><br>
> On Aug 4, 2015, at 6:20 PM, Patrick Sanan <<a href="mailto:patrick.sanan@gmail.com">patrick.sanan@gmail.com</a>> wrote:<br>
><br>
> And note that it is possible to run gdb/lldb on each of several MPI processes, useful when you hit a bug that only appears in parallel.  For example, this FAQ describes a couple of ways to do this:<br>
><br>
> <a href="https://www.open-mpi.org/faq/?category=debugging#serial-debuggers" rel="noreferrer" target="_blank">https://www.open-mpi.org/faq/?category=debugging#serial-debuggers</a><br>
<br>
</span>   You can also use the PETSc option -start_in_debugger which can work under some circumstances (like all MPI processes have access to the X server).</blockquote><div><br></div><div>and you can start debuggers on only some processes using -debugger_nodes 1,3,7</div><div><br></div><div>  Thanks,</div><div><br></div><div>     Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="HOEnZb"><font color="#888888"><br>
  Barry<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
><br>
><br>
>> Am 05.08.2015 um 00:36 schrieb Barry Smith <<a href="mailto:bsmith@mcs.anl.gov">bsmith@mcs.anl.gov</a>>:<br>
>><br>
>><br>
>> Correction, even in parallel you should be able to use a 0 for the viewer for calls to KSPView() etc; just make sure you do the same call on each process that shares the object.<br>
>><br>
>>  To change the viewer format you do need to use PetscViewerSetFormat(PETSC_VIEWER_STDOUT_(PETSC_COMM_WORLD), PETSC_VIEWER_ASCII_INFO)  to change the format for parallel objects that live on PETSC_COMM_WORLD.<br>
>><br>
>><br>
>> Barry<br>
>><br>
>> PetscViewerSetFormat(0, PETSC_VIEWER_ASCII_INFO) only effects the format of the sequential ASCII viewer.<br>
>><br>
>>> On Aug 4, 2015, at 5:22 PM, Barry Smith <<a href="mailto:bsmith@mcs.anl.gov">bsmith@mcs.anl.gov</a>> wrote:<br>
>>><br>
>>><br>
>>> I do this by running in the debugger and putting in breakpoints. At the breakpoint you can look directly at variables like the n in call to VecMDot() you can also call KSPView() etc on any PETSc object (with a viewer of 0) and it will print out the information about the object right then. Calling VecView() or MatView() directly will of course cause it to print the entire object which generally you don't want but you can do PetscViewerSetFormat(0, PETSC_VIEWER_ASCII_INFO) and then VecView or MatView to have it print size information etc about the object instead of the full object. In parallel instead of passing 0 for the viewer you need to pass PETSC_VIEWER_STDOUT_(PETSC_COMM_WORLD) and make sure all processes that share the object call the routine in the debugger but it is possible.<br>
>>><br>
>>> Let us know how it goes and we can try to improve the experience with your suggestions,<br>
>>><br>
>>> Barry<br>
>>><br>
>>>> On Aug 4, 2015, at 5:09 PM, Justin Chang <<a href="mailto:jychang48@gmail.com">jychang48@gmail.com</a>> wrote:<br>
>>>><br>
>>>> Hi all,<br>
>>>><br>
>>>> Not sure what to title this mail, but let me begin with an analogy of what I am looking for:<br>
>>>><br>
>>>> In MATLAB, we could insert breakpoints into the code, such that when we run the program, we could pause the execution and see what the variables contain and what is going on exactly within your function calls. Is there a way to do something like this within PETSc?<br>
>>>><br>
>>>> I want to see what's going on within certain PETSc functions within KSPSolve. For instance, -log_summary says that my solver invokes calls to functions like VecMDot and VecMAXPY but I would like to know exactly how many vectors each of these functions are working with. Morever, I would also like to get a general overview of the properties of the matrices MatPtAP and MatMatMult are playing with (e.g., dimensions, number of nonzeros, etc).<br>
>>>><br>
>>>> Or<br>
>>>><br>
>>>> Above functions happen to be invoked from gamg, so is it possible to tell just from the parameters fed into PETSc what the answers to the above may be?<br>
>>>><br>
>>>> Thanks,<br>
>>>> Justin<br>
>><br>
<br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener</div>
</div></div>