Running FDS on Single Multi-Core Machine Linux OS

324 views
Skip to first unread message

malek

unread,
Jan 21, 2010, 12:29:21 AM1/21/10
to FDS and Smokeview Discussions
Hello,

My question is in regards to being able to run the mpi_version of FDS5
on a single multi-core machine to take advantage of parrallel mesh
calculations instead of across processors that are on different
machines on a cluster. I know it is possible to do that, and I have
installed LAM-MPI on the machine I am using, but I am running into
issues with LAM-MPI in specifying the host name computer machine name
in lamhosts file.

Originally, I did try to run mp_FDS on multiple machines within a
cluster, but then I had issues with LAM-MPI. The issue that I have is
that for some reason it doesn't recognize the hostname computer
machine, even though I have the correct name and am trying to start
the simulation from the host computer.

This led me to try just using LAM-MPI to try running it locally on a
multi-core machine, but I don't know how to do this.

I simply try running the mpi_fds5 version, but that doesn't seem to
work for me. I noticed in an earlier post that running the mpi_fds5
version in windows is pretty simple, just a simple command line call
with no extra work or configuration necessary, but I want to run it in
a Linux environment so that I may be able to do some program
profiling.

In that same post, there was mention of an equivalent easy to run
linux version, but so far I have not seen any such release, nor do I
understand what difference (if any) there would be in the ease of
running it over the current linux release.

I apologize in advance for the long post, and would greatly appreciate
any help/insight on the matter.

Malek

shostikk

unread,
Jan 21, 2010, 2:38:33 AM1/21/10
to FDS and Smokeview Discussions
Malek,
If I understand correctly, your problem is making the LAM-MPI
understand your configuration.

If you want to run everything on a single machine, you do not need to
specify the host name. Instead, you can refer to generic 'localhost'
name. Assuming you have the mpi software properly installed, you
should be able to run FDS like this:

mpirun -np 2 -host localhost ~/FDS-SMV/fds5_mpi_intel_linux_64
yourfile.fds

malek

unread,
Jan 21, 2010, 11:36:07 PM1/21/10
to FDS and Smokeview Discussions
Thanks for the help. I believe it works now, because I don't get an
error, but I also don't get an error in the output file. All i get is
a description of how to use LAM-MPI. I am running mpi on some of the
Fire Examples provided, such as couch.fds and room_fire.fds. I guess
it might be due to the fact that these input files do not contain more
than 1 mesh that would allow for parallel mesh execution, but I am not
sure.

Are there any specific files which I could use to run MPI on to verify
execution? In addition, I am looking to do some program profiling
(using oprofile / valgrind) to learn the program execution trace. Is
there another program that is better suited to profile the mpi
execution? I have seen some posts about monitoring processor core
usage, but no mention of a specific program.

I have copied below what the output file exhibits, so if anyone can
confirm that there is no error (because my script doesn't seem to run,
it complets immediately), and so this would be attributed to running
the wrong kind of input file for this.

I again would appreciate any help.

Thanks.

Synopsis: mpirun [options] <app>
mpirun [options] <where> <program> [<prog args>]

Description: Start an MPI application in LAM/MPI.

Notes:
[options] Zero or more of the options listed
below.
<app> LAM/MPI appschema.
<where> List of LAM nodes and/or CPUs
(examples
below).
<program> Must be a LAM/MPI program that either
invokes MPI_INIT or has exactly one of
its children invoke MPI_INIT.
<prog args> Optional list of command line
arguments
to <program>.

Options:
-c <num> Run <num> copies of <program> (same as
-np).
-c2c Use fast library (C2C) mode.
-client <rank> <host>:<port>
Run IMPI job; connect to the IMPI
server <host>
at port <port> as IMPI client number
<rank>.
-D Change current working directory of
new
processes to the directory where the
executable resides.
-f Do not open stdio descriptors.
-ger Turn on GER mode.
-h Print this help message.
-lamd Use LAM daemon (LAMD) mode (opposite
of -c2c).
-nger Turn off GER mode.
-np <num> Run <num> copies of <program> (same as
-c)
-nsigs Don't catch signals.
-nx Don't export LAM_MPI_* environment
variables.
-O Multicomputer is homogeneous.
-pty Use pty if stdout is a tty.
-s <nodeid> Load <program> from node <nodeid>.
-toff Enable tracing with generation
initially off.
-ton, -t Enable tracing with generation
initially on.
-v Be verbose.
-w / -nw Wait/don't wait for application to
complete.
-wd <dir> Change current working directory of
new
processes to <dir>.
-x <envlist> Export environment vars in <envlist>.

Nodes: n<list>, e.g., n0-3,5
CPUS: c<list>, e.g., c0-3,5
Extras: h (local node), o (origin node), N (all nodes), C (all
CPUs)

Examples: mpirun n0-7 prog1
Executes "prog1" on nodes 0 through 7.

mpirun -lamd -x FOO=bar,DISPLAY N prog2
Executes "prog2" on all nodes using the LAMD RPI.
In the environment of each process, set FOO to the
value
"bar", and set DISPLAY to the current value.

mpirun n0 N prog3
Run "prog3" on node 0, *and* all nodes. This executes
*2*
copies on n0.

mpirun C prog4 arg1 arg2
mpirun c0 C prog5
Simlar to the "prog3" example above, this runs "prog5"
on CPU 0 *and* on each available CPU. This executes
*2* copies on the node where CPU 0 is (i.e., n0).
This is probably not a useful use of the "C" notation;
it is only shown here for an example.

Defaults: -c2c -w -nger -pty
-----------------------------------------------------------------------------
==6494==
==6494== Events : Ir
==6494== Collected : 656551
==6494==
==6494== I refs: 656,551

End of Output text file.

FYI This is how I invoked the mpi execution with valgrind:

(valgrind --tool=callgrind --dump-instr=yes --trace-jump=yes --combine-
dumps=yes mpirun -np 2 -host localhost /home/musleh/FDS/FDS5/bin/
fds5_mpi_intel_linux\
_32 $infile) >& $outfile

I also tried just mpi without valgrind as such:

(mpirun -np 2 -host localhost -v /home/musleh/FDS/FDS5/bin/
fds5_mpi_intel_linux_32 $infile) >& $outfile

Malek

shostikk

unread,
Jan 22, 2010, 1:50:13 AM1/22/10
to FDS and Smokeview Discussions
Sorry, we are not using LAM-MPI, but OpenMPI instead. I cannot study
the LAM-specific issues in detail.
S

malek

unread,
Jan 22, 2010, 2:50:28 AM1/22/10
to FDS and Smokeview Discussions
I tried using open-mpi, however i get this error

/home/musleh/FDS/FDS5/bin/fds5_mpi_intel_linux_32: error while loading
shared libraries: libaio.so.1: cannot open shared object file: No such
file or directory

I tried using 1.4.1 and then 1.4.0 and no luck. Any suggestions?

Malek

Barbro Maria Storm

unread,
Jan 22, 2010, 4:11:35 AM1/22/10
to fds...@googlegroups.com
That sounds like you have a typo in your directory, for example
~/FDS-SMV/fds5_mpi_intel_linux_64 <-- typo somewhere or in the
filename of the FDS-file (something.fds).
Linux is also rather bitchy if you don't use the right character. A
and a are the same in Windows OS, but in Linux A and a are two
different characters.

I've had the same error message while using different versions of FDS
and every time realized I'd misspelled something. When spelled
correctly it has worked for me.

2010/1/22 malek <malek....@gmail.com>:

> --
> You received this message because you are subscribed to the Google Groups "FDS and Smokeview Discussions" group.
> To post to this group, send email to fds...@googlegroups.com.
> To unsubscribe from this group, send email to fds-smv+u...@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/fds-smv?hl=en.
>
>

--
Barbro Storm

Emanuele Gissi

unread,
Jan 22, 2010, 6:56:10 AM1/22/10
to FDS and Smokeview Discussions
This happened to me when I used the fds5_mpi_intel_linux_32 32 bit
executable in a 64 bit system with a 64 bit LAM library.
Try to be consistent: either 32 or 64 bits.

Emanuele

On Jan 22, 10:11 am, Barbro Maria Storm <bar...@gmail.com> wrote:
> That sounds like you have a typo in your directory, for example
> ~/FDS-SMV/fds5_mpi_intel_linux_64 <-- typo somewhere or in the
> filename of the FDS-file (something.fds).
> Linux is also rather bitchy if you don't use the right character. A
> and a are the same in Windows OS, but in Linux A and a are two
> different characters.
>
> I've had the same error message while using different versions of FDS
> and every time realized I'd misspelled something. When spelled
> correctly it has worked for me.
>

> 2010/1/22 malek <malek.mus...@gmail.com>:

> ...
>
> read more »

Reply all
Reply to author
Forward
0 new messages