[Trilinos-Users] Typical memory usage of Epetra_FECrsMatrix

Ramsey, James J CIV (US) james.j.ramsey14.civ at mail.mil
Wed May 22 06:28:47 MDT 2013


________________________________________
Hi -- are you measuring peak ("high water mark") memory usage, or memory usage after calling FillComplete()?  
________________________________________


The measurements I quoted should be for peak memory usage, at least when concerning the output from massif

________________________________________
Peak memory usage for FECrsMatrix may vary depending on the following:

1. Whether you constructed it with dynamic or static profile (this matters a lot; static profile uses less memory)
________________________________________

I'm pretty sure that the profile was dynamic.

I used Epetra_FECrsGraph to build the graph with which I constructed the Epetra_FECrsMatrix (which should answer your fourth question). As far as I can tell, none of its constructors even have a StaticProfile argument (unlike the straight-up Epetra_CrsGraph). Also, (and this will answer your second and third questions), I only preallocated *one* entry per row you preallocated in the constructor.

________________________________________
5. How many entries you inserted into nonowned rows (i.e., rows that are not in the row Map on the calling process).  (Zero is best, in which case you could use Epetra_CrsMatrix instead.)
________________________________________

I don't know *exactly* how many, but it's definitely non-zero.

________________________________________
The following technical report explains best practices for maximizing performance and minimizing memory use of Epetra objects:

http://trilinos.sandia.gov/packages/epetra/EpetraPerformanceGuide.pdf
________________________________________

Thanks.

BTW, I'm mostly concerned about whether I'm doing something blatantly pathological. If I'm making a tradeoff between flexibility and memory usage, then I'm okay with that.



More information about the Trilinos-Users mailing list