From: Roy S. <roy...@ic...> - 2009-12-12 15:24:30
|
On Sat, 12 Dec 2009, Przemyslaw Kaminski wrote: > I am a beginner in libMesh. I'm currently studying the examples. I > cannot find anywhere the option to change the number of processors. > Currently, example 10 is running on 1 processor. How can I make it use > more? > Thanks in advance and sorry for such a silly question ;) We get the number of processors from the MPI environment; the specifics of how to set that up depend on your MPI implementation (or on more complex systems, on your job queueing system). Typically, instead of running "./ex10 -some_options" you'd run something like "mpiexec -np 4 ./ex10 -some_options" to start on 4 processors. In our example files, you can still run multiprocessor jobs through "make run" by setting the LIBMESH_RUN environment variable, to something like "mpirun -np 2" (or whatever else needs to precede the rest of the command line). --- Roy |
From: Roy S. <roy...@ic...> - 2009-12-12 18:43:28
|
On Sat, 12 Dec 2009, Przemyslaw Kaminski wrote: > Thank you for your answer. The problem is that when I run ex9, say, then > it actually takes twice as long for two processors. I do: > mpiexec -np 2 ./ex9-opt > It takes 7.2 sec, just running ./ex9-opt takes 3.4 sec. On my machine with my default solver options, "mpirun -np 4 ./ex9-opt -other_options" takes 5.2 seconds; "-np 2" takes 6.3 seconds; "-np 1" takes 9.9 seconds. Not exactly linear speedup, but you wouldn't expect linear speedup on such a small problem. Just setting up and tearing down the problem takes longer on 2 processors than on one. > I think the program is just run twice, not with two threads which > should communicate with each other... I have seen that happen before, when using one MPI implementation to run a libMesh binary that was compiled with a different MPI (or with no MPI at all). ex9 should print out a line like "n_processors() = 2" right when it starts up; if you're seeing "n_processors() = 1" instead then you need to make sure that your libMesh install configured correctly to use your mpiexec. --- Roy |