Il giorno mar 6 giu 2023 alle ore 09:24 Pichler, Franz < [email protected]> ha scritto:
Hello,
I was just investigating my KSP_Solve_BCGS Routine with algrandcallgrind,
I see there that petsc is using a vecduplicate (onvolvin malloc and copy) every time it is called.
Do you mean KSPSolve_BCGS? There's only one VecDuplicate in there and it is called only once. An example code showing the problem would help
I call it several thousand times (time evolution problem with rather small matrices)
I am not quite sure which vector is copied there but I guess is the initial guess or the rhs,
Is there a tool in petsc to avoid any vecduplication by providing a fixed memory for this vector?
Some corner facts of my routine:
I assemble the matrices(crs,serial) and vectors myself and then use
MatCreateSeqAIJWithArrays and VecCreateSeqWithArray
To wrap petsc around it,
I use a ILU preconditioner and the sparsity patterns between the calls to not change, the values do,
Thank you for any hint how to avoid the vecduplicate,
Best regards
Franz
*Dr. Franz Pichler*
Lead Researcher Area E
*Virtual Vehicle Research GmbH*
Inffeldgasse 21a, 8010 Graz, Austria
Phone: +43 316 873 9818
www.v2c2.at
Firmenname: Virtual Vehicle Research GmbH
Rechtsform: Gesellschaft mit beschränkter Haftung
Firmensitz: Austria, 8010 Graz, Inffeldgasse 21/A
Firmenbuchnummer: 224755y
Firmenbuchgericht: Landesgericht für ZRS Graz
UID: ATU54713500
-- Stefano