Friday, September 4, 2009

FDS and OpenMP

Christian Rogsch of the University of Wuppertal has implemented OpenMP directives that enable FDS to make use of multiple processors on a single computer. This is a second option for running FDS in parallel. In fact, although it still needs a bit of testing, OpenMP and MPI should work together. OpenMP (Open Multi-Processing) will run a single mesh FDS job faster by making use of all available processors on a single computer. MPI (Message Passing Interface) requires that you break up the single mesh into multiple meshes, each of which runs on a separate computer. Ideally, we should be able to break up a case over multiple meshes on multiple computers using MPI, and allow OpenMP to run the individual mesh calculations faster.

As a test, I have posted to the Downloads page two executables:

fds5_openmp.exe
fds5_openmp_mpi.exe

These are for 32 bit Windows machines. If this test is successful, we will compile and release executables for other platforms as well. Note that there is currently no guidance in the User's Guide about OpenMP. These executables should work just like fds5.exe and fds5_mpi.exe. That is, there should be nothing you need to install, and you should not need extra libraries. At least, that is what we hope and why we need to test these before doing a more general release. What you should notice is that when you run fds5_openmp.exe on a job, all of your available processors or cores should work on the case. You can check your system performance to make sure.

Please let us know if these executables work for you, or more importantly if they don't. Of course, you need to have a computer, or computers, with multiple processors. At the start of the run, FDS should tell you how many processors (or "threads") it thinks it has access to.

Good luck and thanks again to Christian for all his efforts!