> On Feb 20, 2014, at 9:49 AM, Roman Vetter <vette...@ethz.ch> wrote: > > Dear libMesh folks, > > since I've ported my simulations from libmesh ~v0.7 to the current Git > HEAD, they run ~50% slower overall. Profiling revealed that this > slow-down is caused by those parts of my programs that consist of simple > loops over mesh nodes and system variables, like (simplified): > > for (unsigned int nid = 0; nid < mesh.n_nodes(); nid++) > for (unsigned int var = 0; var < 3; var++)
Don't loop over mesh nodes like this, use node iterators declared outside the loop... See any of the examples for analogous code looping over elems. > use(some_vector(mesh.node(nid).dof_number(0, var, 0))); > > Such code runs ~3x slower than before. Surprising, isn't it? From the > recent change in the global dof ordering (used to be grouped by > variables in ~v0.7, is now grouped by nodes), you'd expect a clear > speedup due to better cache locality, but instead, the opposite happens. > > Any ideas why? Also, why and when was the dof order changed? > > Best regards, > Roman > > ------------------------------------------------------------------------------ > Managing the Performance of Cloud-Based Applications > Take advantage of what the Cloud has to offer - Avoid Common Pitfalls. > Read the Whitepaper. > http://pubads.g.doubleclick.net/gampad/clk?id=121054471&iu=/4140/ostg.clktrk > _______________________________________________ > Libmesh-users mailing list > Libmesh-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/libmesh-users ------------------------------------------------------------------------------ Managing the Performance of Cloud-Based Applications Take advantage of what the Cloud has to offer - Avoid Common Pitfalls. Read the Whitepaper. http://pubads.g.doubleclick.net/gampad/clk?id=121054471&iu=/4140/ostg.clktrk _______________________________________________ Libmesh-users mailing list Libmesh-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/libmesh-users