From: Roy S. <ro...@st...> - 2008-06-24 19:19:24
|
On Tue, 24 Jun 2008, Derek Gaston wrote: > I really haven't looked into it. It's more of a "feeling" you can watch the > cpu's peg out for a few seconds... then they all go crazy and the network > traffic spikes. It could be something specific to the way the > NonlinearSystem solve progresses.... maybe syncing the global solution so > that it can pass it into compute_residual()? I don't know. > > There is no refinement happening at all (well, beyond the initial uniform > refinements to get up to the problem size I want). I'm not even looping > around "system.solve()". This is just one big solve. > > I'm probably just going to start with print statements and see if I can "see" > when the memory spikes are occurring. I've got a good guess as to where the memory spikes are occuring: check out __libmesh_petsc_snes_residual() in petsc_nonlinear_solver.C. Is that X_local a serial vector? I think I noticed this problem and tried to avoid it in petsc_diff_solver.C; you might cut and paste some of that code into Ben's solver to see if using my "swap vectors, System::update" localization works any better. --- Roy |