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++)
     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
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-users

Reply via email to