From: Roy S. <roy...@ic...> - 2012-05-30 23:33:34
|
While trying to track down a bug in my next ParallelMesh patch, I ran into an apparent bug in our Parmetis support that dates back for I don't know how far. We already serialize and fall back on Metis when we have more elements than processors, and according to our code comments N_e<N_p is simply an unsupported configuration for Parmetis... but I'm seeing crashes (segfaults and/or double-frees) in quite a few other cases. Running adaptivity_ex1 with 1 through 20 elements on 1 through 15 processors gives failures whenever num_proc: num_elem is in 3:3 4:4 5:5,6,7,8 6:6,7,8 7:7,8,9 8:8,9,10,11 9:9,10,11,12 10:10,11,12,13,14,15,16,17 11:11,12,13,14,15,16,17 12:12,13,14,15,16,17 13:13,14,15,16,17,18,19 14:14,15,16,17,18,19,20 15:15,16,17,18,19,20 Not sure what the pattern is other than "1 or 2 procs always works, otherwise 'N_e==N_p + {0,...n}' always fails for some n >= 0" Since n seems to be N_p dependent we can't just increase the "fall back on Metis" threshhold. Anyone know enough about Parmetis to say what might be going on here? It's not like we're giving it some tricky topology, either; adaptivity_ex1 is just trying to prepare_for_use the result of a build_line when it dies. --- Roy |