> Compute node and head node give exactly the same output.  So does this
> mean I have a very slow interconnect, and is this the reason for the
> bad scalability?

That is my thinking.  The System::project_vector() code does some all-to-all
communication, and this seems to be scaling quite badly as you get to larger
processor counts.  Running with 1 CPU/node will hopefully perform better
since you are not sharing a gigE connection between processors.

 2: project_vector()             66        47.6923     0.722610    4.93
10: project_vector()             66        48.0857     0.728571    9.92
20: project_vector()             66        89.0770     1.349651    17.00
40: project_vector()             66        187.9307    2.847436    24.08

By contrast, the ProjectVector::operator() does the actual projection and
contains no parallel communication.  As you can see it is scaling ~linearly
to 40 processors:

 2: operator()                   66        35.3491     0.535593    3.65
10: operator()                   66        6.9475      0.105265    1.43
20: operator()                   66        3.4364      0.052067    0.66
40: operator()                   66        1.7173      0.026020    0.22

-Ben


-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Libmesh-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-users

Reply via email to