Parallel FDS continued ...



A clarification of yesterday's note:

I said that when running FDS in parallel, you need the same
number of CPUs as you
have meshes. This is not correct. Let me try again ...

When FDS runs in parallel, each mesh is processed by a
separate ``thread.''
A thread is essentially an FDS run in its own right. For
example, suppose I had
an input file containing 5 meshes. I need to invoke 5
processes, NOT processors.
I could run the case on my single processor laptop, and if I
monitored the processes,
I would see what appears to be 5 separate FDS jobs running.
In some sense, there
are 5 jobs running, and the MPI allows for a periodic
exchange of information between
the 5 jobs (processes). So I should use the word ``thread''
or ``process'' instead
of ``processor'' or ``CPU'' when describing the parallel
job. Of course, if you want
to optimize the parallel code, you assign one thread to each
CPU, but there are
times when you have more threads (meshes) than you have
CPUs, so you bunch up the
less time-consuming threads onto one CPU.

Some have asked about ``hyperthreading'', which is a
technique used by a single
CPU to make it act like two. I'm not sure we exploit this at
all. Someone who knows
more than me might shed some light.

Kevin


-- 
Kevin McGrattan
National Institute of Standards and Technology
100 Bureau Drive, Stop 8663
Gaithersburg MD 20899-8663

Telephone: (301) 975 2712
FAX:       (301) 975 4052



Date Index | Thread Index | Problems or questions? Contact list-master@nist.gov