MPI problem

1,375 views
Skip to first unread message

ΠΑΝΑΓΙΩΤΗΣ ΠΑΠΑΝΙΚΟΛΑΟΥ

unread,
Mar 25, 2016, 9:00:18 AM3/25/16
to FDS and Smokeview Discussions
Hello,

I have searched the thread, but could not find a solution applying the advices you gave for similar problems.

I have set up an FDS file through Pyrosim, and when I run a multiple thread solution through the Pyrosim program, it starts corrrectly and assigns the meshes to different processes.

But when I try to run the same FDS through command prompt to add the evac part that pyrosim can't handle (C:\..\location of file\ mpiexec -n 3 fds filename.fds) I get the following error:
I have also tried all other syntaxes (fds_mpi, etc)

[01:5916]..ERROR:Error while connecting to host, The requested address is not valid in its context. (10049)
[01:5916]..ERROR:Connect on sock (host=localhost, port=0) failed, exhaused all end points
SMPDU_Sock_post_connect failed.
[1] PMI_ConnectToHost failed: unable to post a connect to localhost:0, error: Undefined dynamic error code
uPMI_ConnectToHost returning PMI_FAIL
[1] PMI_Init failed.
[01:5480]..ERROR:Error while connecting to host, The requested address is not valid in its context. (10049)
[01:5480]..ERROR:Connect on sock (host=localhost, port=0) failed, exhaused all end points
SMPDU_Sock_post_connect failed.
[2] PMI_ConnectToHost failed: unable to post a connect to localhost:0, error: Undefined dynamic error code
uPMI_ConnectToHost returning PMI_FAIL
[2] PMI_Init failed.
[01:4940]..ERROR:Error while connecting to host, The requested address is not valid in its context. (10049)
[01:4940]..ERROR:Connect on sock (host=localhost, port=0) failed, exhaused all end points
SMPDU_Sock_post_connect failed.
[0] PMI_ConnectToHost failed: unable to post a connect to localhost:0, error: Undefined dynamic error code
uPMI_ConnectToHost returning PMI_FAIL
[0] PMI_Init failed.

When I ran the file as a single process using only fds filename.fds it runs smoothly.

Can anyone help?

Thank you,
Panagiotis

dr_jfloyd

unread,
Mar 25, 2016, 9:08:36 AM3/25/16
to FDS and Smokeview Discussions
See this thread and read down towards the end where pyrosim starts being discussed.

Kevin

unread,
Mar 25, 2016, 9:09:09 AM3/25/16
to FDS and Smokeview Discussions
What command does PyroSim issue? You might want to ask them. Instructions for running mpiexec are in the User's Guide


On Friday, March 25, 2016 at 9:00:18 AM UTC-4, ΠΑΝΑΓΙΩΤΗΣ ΠΑΠΑΝΙΚΟΛΑΟΥ wrote:

ΠΑΝΑΓΙΩΤΗΣ ΠΑΠΑΝΙΚΟΛΑΟΥ

unread,
Mar 25, 2016, 9:31:02 AM3/25/16
to FDS and Smokeview Discussions
Thank you for the quick reply, I will try the solutions suggested, but the problem is that I installed FDS+Smokeview on another pc, which has not Pyrosim installed and I have the same problem. I am attaching the .fds file, I would appreciate it if someone could do a short run to see if they can run it.
B53.fds

ΠΑΝΑΓΙΩΤΗΣ ΠΑΠΑΝΙΚΟΛΑΟΥ

unread,
Mar 25, 2016, 9:32:50 AM3/25/16
to FDS and Smokeview Discussions
Thanks, I have mailed them to ask this, but I think that due to the Easter holiday they will be closed, and seeing that it will take about 30hours to run this on one core, I would like to find a solution sooner, in case their reply doesn't solve this.

Kevin

unread,
Mar 25, 2016, 9:41:48 AM3/25/16
to FDS and Smokeview Discussions
I have the release version of FDS (6.3.2) installed on my Windows 7 computer. I type

mpiexec -n 4 fds B53.fds

and it runs. I do not have PyroSim installed.

ΠΑΝΑΓΙΩΤΗΣ ΠΑΠΑΝΙΚΟΛΑΟΥ

unread,
Mar 25, 2016, 10:12:13 AM3/25/16
to FDS and Smokeview Discussions

So it is not a problem of the file. Is there some setting I should adjust regarding the mpi exe? How can I test that MPI is installed in the second pc (the one without the pyrosim)? 

Sorry for the trouble, but I am short on time and would like to avoid running the single core solution for 30-40 hours (which is what I am doing on the first pc).

Kevin

unread,
Mar 25, 2016, 10:17:32 AM3/25/16
to FDS and Smokeview Discussions
type

where mpiexec

If you have multiple versions installed, the one associated with FDS6 should be the first listed. Then type

mpiexec -n 2 mpi_test

and you should see "hello world" printout.

ΠΑΝΑΓΙΩΤΗΣ ΠΑΠΑΝΙΚΟΛΑΟΥ

unread,
Mar 25, 2016, 10:34:00 AM3/25/16
to FDS and Smokeview Discussions
Ok, 
I have two results
 c:\program files\microsoft MPI\Bin\mpiexec.exe
 c:\program files\firemodels\fds\bin\mpiexec.exe

so I go to the bin folder of fds, where the exe is, I type mpiexec -n 2 mpi_test
and get the first image as error (pmi_proxy not found etc)

and if I run it on the second folder, I get the second image error (cannot find file)

Should I uninstall one of the two?
error.jpg
error2.jpg

Kevin

unread,
Mar 25, 2016, 10:51:54 AM3/25/16
to FDS and Smokeview Discussions
When you type "mpiexec", you are getting the MS version, which is not compatible with the version that we distribute with FDS. So I suggest that you either uninstall the MS MPI or change its position in your PATH. You need to invoke the mpiexec that comes with FDS. You may even have to reinstall the FDS package so that certain demons are started properly.

ΠΑΝΑΓΙΩΤΗΣ ΠΑΠΑΝΙΚΟΛΑΟΥ

unread,
Mar 25, 2016, 11:14:43 AM3/25/16
to FDS and Smokeview Discussions
Thank you!!!! That did the trick, I uninstalled the Windows MPI, did a restart and the mpi now runs.

A quick final question, I have 3 meshes for the fire and 1 mesh for the evacuation (+1 that evac creates for eyeheight).

I have a 3 core AMD, I set OMP_NUM_THREADS=3, 
when running the simulation, should I set the n=4 (as the total of the meshes) or to a different number? 

Thank you very much for the very fast and accurate support!! 

dr_jfloyd

unread,
Mar 25, 2016, 11:20:09 AM3/25/16
to FDS and Smokeview Discussions
For each process you request via mpiexec -n you will create OMP_NUM_THREADS.  So mpiexec -n 3 with OMP_NUM_THREADS=3 would require 3x3=9 cores.

ΠΑΝΑΓΙΩΤΗΣ ΠΑΠΑΝΙΚΟΛΑΟΥ

unread,
Mar 25, 2016, 11:28:15 AM3/25/16
to FDS and Smokeview Discussions
So the fastest way is to have "number of fire meshes of equal size"="core number" (so 3 meshes for 3 cores) -as evac meshes are calcuated later- and assign one thread to each?

Kevin

unread,
Mar 25, 2016, 12:59:33 PM3/25/16
to FDS and Smokeview Discussions
If you have 3 cores, set OMP_NUM_THREADS=1 and run your case with -n 3.

dr_jfloyd

unread,
Mar 25, 2016, 1:13:40 PM3/25/16
to FDS and Smokeview Discussions
Yes that is likely to result in the fastest run times.

Ersin Yilmaz

unread,
Mar 1, 2017, 8:33:14 AM3/1/17
to FDS and Smokeview Discussions
In a case of i5 2467M, the specs on intel website tells:
2 cores, 4 threads.

So for a fds file with 4 meshes, 
Mesh 1 , MPI_PROCESS=?
Mesh 2, MPI_PROCESS=?
Mesh 3, MPI_PROCESS=?
Mesh 4, MPI_PROCESS=?

What should be MPI_PROCESS numbers, set OMP_NUM_THREADS value?



Thank you,

Kevin

unread,
Mar 1, 2017, 8:50:56 AM3/1/17
to FDS and Smokeview Discussions
Based on my limited knowledge of cores and threads (and you should do some research on this too), I suggest you set the MPI_PROCESS of meshes 1 and 2 to 0, and meshes 3 and 4 to 1. That is, use your first core to work on mesh 1 and 2, and the second core to work on mesh 3 and 4. I also think you should set OMP_NUM_THREADS to 1. You do not have enough resources on this single processor to make good use of OpenMP.

Ersin Yilmaz

unread,
Mar 2, 2017, 3:46:24 AM3/2/17
to FDS and Smokeview Discussions
Thank you for the reply. I tried running it and it seems your solution is almost equivalent to not using MPI_PROCESS and setting OMP_NUM_THREADS to 4. 

Kevin

unread,
Mar 2, 2017, 8:30:02 AM3/2/17
to FDS and Smokeview Discussions
No, my solution is not equivalent to using OMP_NUM_THREADS set to 4. But try both methods and see what happens. FDS will report how it is mapping MPI processes and OpenMP threads.
Reply all
Reply to author
Forward
0 new messages