> On May 26, 2021, at 10:39 AM, Francesco Brarda <[email protected]> > wrote: > > Thank you very much. >> Based on the error message it appears that your code is requesting >> different times on different MPI ranks. Is that what you intend to do? > Yes. I want to save different times across a vector built with multiple MPI > ranks (PETSC_DECIDE for the local length). > The function is called only by the first proc (rank=0) and not from the > others. Is there a way to force also other ranks to call that routine?
Yes, just have all ranks call it and ignore the result on the other ranks. > Should I build everything into an external function outside the main? It can be called in main, does not need to be in a different function. > > Francesco > > >> Il giorno 26 mag 2021, alle ore 16:20, Barry Smith <[email protected] >> <mailto:[email protected]>> ha scritto: >> >> >> >> >> TSTrajectoryGetVecs() is listed as Collective on TS. This means all ranks >> must call it with the same times in the same order of operations on all >> ranks that share the TS. >> >> You do not need to use VecScatter. Each process must call >> TSTrajectoryGetVecs with the same time but then you can have only the rank >> you care about select the entries from the resulting vectors you care about >> while the other ranks for that time just ignore the vectors since they do >> not need to values from it. >> >> Barry >> >> >> >>> On May 26, 2021, at 5:20 AM, Francesco Brarda <[email protected] >>> <mailto:[email protected]>> wrote: >>> >>> Hi! >>> >>> I solved an ODE system with TS. Now I would like to save one of the >>> trajectories in specific times. To do so, I used TSTrajectoryGetVecs. >>> The values of the variable I am interested in is on one processor. I want >>> to collect these values in a parallel vector, but I had the error: >>> >>> [0]PETSC ERROR: Invalid argument >>> [0]PETSC ERROR: Real value must be same on all processes, argument # 2 >>> [0]PETSC ERROR: See https://www.mcs.anl.gov/petsc/documentation/faq.html >>> <https://www.mcs.anl.gov/petsc/documentation/faq.html> for trouble shooting. >>> [0]PETSC ERROR: Petsc Release Version 3.14.4, unknown >>> [0]PETSC ERROR: ./petsc_sir on a arch-debug named srvulx13 by fbrarda Wed >>> May 26 12:00:42 2021 >>> [0]PETSC ERROR: Configure options --with-cc=gcc --with-cxx=g++ >>> --with-fc=gfortran --with-openblas-dir=/opt/packages/openblas/0.2.13-gcc >>> --download-mpich PETSC_ARCH=arch-debug >>> [0]PETSC ERROR: #1 TSHistoryGetLocFromTime() line 134 in >>> /home/fbrarda/petsc/src/ts/interface/tshistory.c >>> [0]PETSC ERROR: #2 TSTrajectoryReconstruct_Private() line 55 in >>> /home/fbrarda/petsc/src/ts/trajectory/utils/reconstruct.c >>> [0]PETSC ERROR: #3 TSTrajectoryGetVecs() line 239 in >>> /home/fbrarda/petsc/src/ts/trajectory/interface/traj.c >>> >>> Is there any specific routine I can use to overcome this issue? Should I >>> use VecScatter? >>> >>> I hope I made myself clear. >>> Best, >>> Francesco >> >
