[petsc-dev] Possible bugs when using TS with ViennaCL

Karl Rupp rupp at mcs.anl.gov
Mon Jan 27 14:05:48 CST 2014


For the sake of completeness of this thread:

Mani's build included
--with-threadcomm --with-pthreadclasses --with-openmp
which seems the be the cause of the problem. Without these flags,  the 
problem disappears and results are correct. If I remember correctly, 
this is a more fundamental problem in threadcomm rather than specific to 
the ViennaCL bindings, yet we clearly need to fix it.

Karli


On 01/27/2014 03:03 AM, Mani Chandra wrote:
> Hi Karl,
>
> I check my solution using -ts_monitor_draw_solution. Ok forget about the
> earlier code and try running the code I have attached now. It is
> basically the same code but using DMComposite to manage multiple
> variables. On using -ts_monitor_draw_solution, you will see two windows
> with blobs being advected. Here's a report for this code:
>
> 1) Everything works if I use ComputeResidual, irrespective of which
> DMSetVecType I use (including VECVIENNACL). Note that in the earlier
> code (without DMComposite) the case with VECVIENNACL doesn't give the
> right answer but lets forget about the earlier code.
>
> 2) Nothing works if I use ComputeResidualVecViennaCL, whatever maybe
> DMSetVecType. Again note that in the earlier code this case works only
> if I set the vec/mat types to VIENNACL.
>
> Getting this code to work will basically solve my problems.
>
> Sorry for the bother and thanks so much!
>
> P.S I run the code using ./petsc_opencl -ts_monitor -snes_monitor
> -ts_max_steps 1000 -ts_type theta -ts_dt 10 -snes_rtol 1e-4
> -ts_final_time 1000 -ts_monitor_draw_solution
>
> Cheers,
> Mani
>
>
> On Sun, Jan 26, 2014 at 4:40 PM, Karl Rupp <rupp at mcs.anl.gov
> <mailto:rupp at mcs.anl.gov>> wrote:
>
>     Hi Mani,
>
>
>      > Thanks! It worked. However the following cases still don't work:
>
>
>         1)  Using ComputeResidual (not ComputeResidualViennaCL) but with
>         DMSetVecType(da, VECVIENNACL) and DMSetMatType(da,
>         MATAIJVIENNACL). The
>         SNES solver converges but gives nonsensical results. I just get a
>         flashing blob.
>
>         2) Using ComputeResidualViennaCL (not ComputeResidual) and *without*
>
>         DMSetVecType(da, VECVIENNACL) and DMSetMatType(da,
>         MATAIJVIENNACL). The
>         SNES solver converges but gives nonsensical results. I just get a
>         flashing blob as 1) above. This case probably should not work anyway
>         cause I'm not sure if VecViennaCLGetArray works if the Vecs have not
>         been set to ViennaCL.
>
>
>     Both cases worked for me when calling VecView() on the solution
>     vector. Maybe I missed something, I'll check again tomorrow.
>
>     Best regards,
>     Karli
>
>




More information about the petsc-dev mailing list