From: Tim K. <tim...@ce...> - 2009-04-09 13:43:14
|
Dear Jed, On Thu, 9 Apr 2009, Jed Brown wrote: > On Thu 2009-04-09 08:12, Tim Kroeger wrote: > >> What exactly do you mean? In other words, what do I have to do to >> produce the profiling output that you would like to see? > > Run with -log_summary so that we can see how much time is being spent in > PETSc scatters I'll do that once I found the bug that has just occured. > Also, there must be some way for you to adjust the problem size or the > integration period so that it takes a few minutes rather than many > hours. Yes, good point, thank you. >> What do you think about >> just preparing a patch yourself that removes these inefficiencies and >> contributing that to the library? I guess that everybody would >> appreciate that. > > I can do this for this simple case, but to be honest, I only > occasionally use libmesh (mostly as a reference to compare my own work > to). The way ghosted vectors are being used is not quite how they were > intended and I don't want to make any deep changes because I don't feel > confident that I understand their effects. Basically, there is a > distinction between the global vector and the local vector which libmesh > is trying to hide by keeping the ghosted entries up to date (essentially > regarding the local vectors as parallel vectors and defining collective > operations on them). I noticed that the way ghosted vectors are used now seems not to be the way they are meant. That's why I had to maintain a global_to_local_map myself in the PetscVector class. Of course, restructuring the whole libMesh library such as to use a ghosted concept that matches PETSc's concept is utopic, so we can't remove all inefficiencies. On the other hand, there seems to be no disadvantage in at least removing those inefficiencies for which it is obvious how to do that (like the one you pointed out); and such a task could more easily and error-freely be performed by someone who is a `native PETSc' speaker (like you seem to be) than by someone who is neither a native PETSc speaker nor familiar with most libMesh internals (like I am). BTW: If I understand you correct, the concept of the local and global form of a ghosted vector is comparable with that of the "solution" and "current_local_solution" vector in libMesh, but with the advantage that they share memory. Perhaps, this is an important hint for Roy in the work of unifying these two vectors. I'll CC Roy for this purpose. Best Regards, Tim -- Dr. Tim Kroeger tim...@me... Phone +49-421-218-7710 tim...@ce... Fax +49-421-218-4236 Fraunhofer MEVIS, Institute for Medical Image Computing Universitaetsallee 29, 28359 Bremen, Germany |