{"id":653,"date":"2023-01-04T11:53:03","date_gmt":"2023-01-04T16:53:03","guid":{"rendered":"http:\/\/localhost:8080\/?p=653"},"modified":"2026-05-27T16:54:48","modified_gmt":"2026-05-27T20:54:48","slug":"running-fds-smv","status":"publish","type":"post","link":"https:\/\/knowledgebasev.kinsta.cloud\/?p=653","title":{"rendered":"FDS"},"content":{"rendered":"<h2>In this Article&#8230;<\/h2>\n<ul>\n<li>Setting up and Running FDS\u00a0&#8211; Quick start video<\/li>\n<li>Run the FDS demo program<\/li>\n<li>Running Smokeview &#8211; using the launcher<\/li>\n<li>Troubleshooting<\/li>\n<li>Other Topics and Tips &#8211; downloading results<\/li>\n<li>Performance\u00a0considerations<\/li>\n<li>Tools &#8211; fdsreader<\/li>\n<\/ul>\n<h2>Setting up and Running Fire Dynamic Simulator (FDS)<\/h2>\n<p>Before reading this section, you should already have an understanding of\u00a0 how to\u00a0<a href=\"\/?p=353\">transfer files<\/a>.<\/p>\n<p>Quick Start Video:<br \/>\n<video controls=\"controls\" width=\"640\" height=\"360\"><span data-mce-type=\"bookmark\" style=\"display: inline-block; width: 0px; overflow: hidden; line-height: 0;\" class=\"mce_SELRES_start\">\ufeff<\/span><source src=\"wp-content\/uploads\/simple_fds_demo_v2.mp4\" type=\"video\/mp4\" \/><span data-mce-type=\"bookmark\" style=\"display: inline-block; width: 0px; overflow: hidden; line-height: 0;\" class=\"mce_SELRES_end\">\ufeff<\/span><source src=\"movie.ogg\" type=\"video\/ogg\" \/>Your browser does not support the video tag.<\/video><\/p>\n<p>&nbsp;<\/p>\n<p>Log into your account. Select &#8220;Tools &#8211;&gt; Remote Desktop&#8221; (or &#8220;Plugins &#8211;&gt; Remote Graphics&#8221;).<\/p>\n<p>Use the file manager to create a project folder\/directory. The File manager is located on the tool bar of the desktop. Be sure not to include any spaces in the folder name.<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/sci_remote_desktop-fmanager.png\" alt=\"\" \/><\/p>\n<p><a title=\"6) Transferring and Compressing Files\" href=\"\/?p=353\">Copy your fds file<\/a>\u00a0from your PC to the directory you just created using the ssClient&#8217;s SFTP tool (Tools &#8211;&gt; File Transfer).<\/p>\n<p>From the Sabalcore icon located at the bottom of the Graphical Interface, select &#8220;FDS&#8221;.<\/p>\n<p style=\"padding-left: 5px;\"><img decoding=\"async\" class=\"style1\" src=\"\/wp-content\/uploads\/sci_remote_desktop-FDS.png\" alt=\"\" \/><\/p>\n<p style=\"padding-left: 5px;\">The launcher will display.<\/p>\n<p style=\"padding-left: 5px;\"><img decoding=\"async\" src=\"\/wp-content\/uploads\/sci_remote_desktop-fdslauncher.png\" alt=\"\" \/><\/p>\n<h3 style=\"padding-left: 5px;\"><strong>MPI<\/strong><\/h3>\n<p style=\"padding-left: 5px;\">MPI is most efficient\/best performance and is the default method.<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\n<li>Select your fds file.<\/li>\n<li>Job Name:\u00a0A default name is entered automatically, or enter your own.<\/li>\n<li>MPI Procs:\u00a0 The number of MPI Processes. The launcher will\u00a0read the .fds file and automatically fill in\u00a0this value.\u00a0 It will assign 1 core per mesh (most efficient\/best performance) by default or assign processor cores based on what is defined in the .fds file. <em>If\u00a0you have a special case, please contact support for the recommended settings.<\/em><\/li>\n<li>Select the version of FDS you&#8217;d like to use. The newest is the default. It is best to match the version you have on your PC with.<\/li>\n<li>Enter an email address (or addresses) you&#8217;d like system information about this job to be emailed. Multiple comma separated email address can be entered.<\/li>\n<li>Choose which <a title=\"2) Getting Information About Processors, Compute Nodes, and Your Jobs\" href=\"\/?p=156\">cluster <\/a>you&#8217;d like to use. By default, all clusters are selected which means the system will run the job using nodes from the first available cluster starting with &#8220;blue&#8221; and working downward. Uncheck the cluster(s) which you <span style=\"text-decoration: underline;\">do not<\/span> want the job to run on.<\/li>\n<li>Threads per process (optional): Default is 1 thread per core per mesh (i.e. 1\u00a0 processor core per mesh) which is the most efficient and the recommended setting.\u00a0 Adding more process threads per mesh will increase the number of processor cores and reduce wall-time.\u00a0<em>See &#8220;Performance Considerations&#8221;\u00a0<\/em><\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<p style=\"padding-left: 5px;\"><img decoding=\"async\" src=\"wp-content\/uploads\/core_count.jpg\" alt=\"\" \/><\/p>\n<ul>\n<li>It is recommended to close and restart\u00a0the launcher if you need to load a different fds file.<\/li>\n<\/ul>\n<h3><strong>OpenMP (aka desktop PC)<\/strong><\/h3>\n<p>OpenMP utilizes all CPUs on a single node regardless of how many mesh are defined. It is the lest processor efficient method for most cases.\u00a0 This is often the default method used when running jobs through Pyrosim on a desktop PC or when using other cloud services. To run using only OpenMP (to utilize N CPU cores on a single node) follow these steps:<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\n<li>Select your fds file.<\/li>\n<li>Job Name:\u00a0A default name is entered automatically, or enter your own.<\/li>\n<li>Number of MPI Processes: <strong><span style=\"text-decoration: underline;\">manually set this value to &#8220;1&#8221;.<\/span><\/strong><\/li>\n<li>Select the version of FDS you&#8217;d like to use. It is best to match the version you have on your PC with.<\/li>\n<li>Enter an email address (or addresses) you&#8217;d like system information about this job to be emailed. Multiple comma separated email address can be entered.<\/li>\n<li>Choose which\u00a0<a title=\"2) Getting Information About Processors, Compute Nodes, and Your Jobs\" href=\"\/?p=156\">cluster\u00a0<\/a>you&#8217;d like to use. By default, all clusters are selected which means the system will run the job using\u00a0a node from the first available cluster. Uncheck the cluster(s) which you\u00a0<span style=\"text-decoration: underline;\">do not<\/span> want the job to run on.<\/li>\n<li>Threads\/process (required):\u00a0Increase this to the desired number of cores. The maximum number of cores that can be assigned correlates to the total cores of a single compute node.\u00a0\u00a0<em>See &#8220;Performance Considerations&#8221; for more details.\u00a0<\/em><\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<p style=\"padding-left: 5px;\"><img decoding=\"async\" src=\"wp-content\/uploads\/core_count.jpg\" alt=\"\" \/><\/p>\n<p>Now, select &#8220;Launch&#8221;. A copy of the pbs file is displayed for verification. It is possible to edit the pbs file in this window but is generally not necessary.<\/p>\n<p style=\"padding-left: 5px;\"><img decoding=\"async\" src=\"wp-content\/uploads\/fds_pbs.png\" alt=\"\" \/><\/p>\n<p>Finally, select &#8220;Submit Job&#8221; to submit the job now (or select &#8220;Cancel&#8221; to go back to the Launcher).<\/p>\n<p>Your job is assigned a job ID. The job&#8217;s State will change from &#8220;queued&#8221; to &#8220;Running&#8221;.<\/p>\n<p>&#8220;Kill&#8221; will kill the job<\/p>\n<ul>\n<li>It is recommended to close and restart\u00a0the launcher if you need to load a different fds file.<\/li>\n<\/ul>\n<h4>Monitor the running Job<\/h4>\n<p>By default, the job state log will open after the job starts. Or you can open the log using &#8220;Monitor&#8221; at the top left of the Launcher.<\/p>\n<p style=\"padding-left: 5px;\"><img decoding=\"async\" src=\"wp-content\/uploads\/fds_monitor2.png\" alt=\"\" \/><\/p>\n<p>The name of the cluster the job is running on is at the top of the window.<\/p>\n<p style=\"padding-left: 5px;\"><img decoding=\"async\" src=\"wp-content\/uploads\/fds_log.png\" alt=\"\" \/><\/p>\n<p>You can also access all the files from the file manager.\u00a0Open the file manager and navigate to the working folder to access the output files and smokeview file.<\/p>\n<h2><\/h2>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/sci_remote_desktop-fmanager.png\" alt=\"\" \/><\/p>\n<p>You may need to select &#8220;Reload&#8221; the file manager to refresh the file listing.<\/p>\n<h2><\/h2>\n<p>For additional help please contact your Sabalcore representative or Sabalcore Support. We&#8217;d be happy to schedule an interactive session where we share your screen and walk you through the processes.<\/p>\n<p>&nbsp;<\/p>\n<h2>Running Smokeview &#8211; Using the Launcher<\/h2>\n<p>At the bottom of the Remote Graphics screen select Smokeview from the menu.<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/sci_remote_desktop-smokeview.png\" alt=\"\" \/><\/p>\n<p>You will see the Smokeview launcher appear:<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/sci_remote_desktop-smokeview-launcher.png\" alt=\"\" \/><\/p>\n<p>The default Node Spec should be adequate for most situations. But for optimal visual performance select &#8220;Enable Accelerated 3D-Grpahics Support&#8221;. This will allow Smokeview to run on a graphics node using hardware acceleration (i.e. a graphics card).<\/p>\n<p>Browse to your smokeview file (located in the working directory) and click start. After a few moments Smokeview should appear.<\/p>\n<h2>Troubleshooting<\/h2>\n<h4>Smokeview fails to run<\/h4>\n<p>Occasionally an issue arises related to the window manager and Smokeview. You may see an error in the Smokeview.e.* or smokeview.o.* job log file related to VGL. It may look something like this:<\/p>\n<pre>[VGL] ERROR: Could not connect to VGL client. Make sure that vglclient is\r\n[VGL] running and that either the DISPLAY or VGL_CLIENT environment\r\n[VGL] variable points to the machine on which vglclient is running.\r\n[VGL] ERROR: in connect--\r\n[VGL] 282: Connection refused<\/pre>\n<p>The solution is to run the following command in a terminal in your Sabalcore desktop. Open a terminal or xterm and enter this command:<\/p>\n<pre>vglclient -detach -force<\/pre>\n<p>Then try running Smokeview again.<\/p>\n<h2>Other Topics and Tips<\/h2>\n<h4>File and Folder \u00a0Names<\/h4>\n<p>When copying files and folders from a Windows PC to your Sabalcore account, keep in mind Linux does not play well with names with blank spaces &#8221; &#8220;. Prior to copying, rename the files and folders without spaces.<\/p>\n<h4>Transferring\u00a0 your results<\/h4>\n<p>We highly recommend using GFT to transfer results. GFT is designed to transfer very large files. You will need to zip\u00a0the FDS directory into an archive and then transfer the archive using <a href=\"\/?p=1689\">GFT<\/a>. Complete details and instructions for GFT can be found<a href=\"\/?p=1689\"> here<\/a>. Other options for transferring files can be found <a title=\"6) Transferring and Compressing Files\" href=\"\/?p=353\">here.<\/a><\/p>\n<h4>Exporting from Pyrosim<\/h4>\n<p>Some items to consider when exporting from Pyrosim&#8230;<\/p>\n<ul>\n<li>FDS requires a .fds file. Be sure to export as .fds and not .psm<\/li>\n<li>When Pyrosim exports a .fds file it sometimes creates other files which contain surface textures and other visualization data. These files have to be in the same folder as the .smv file in order for those outputs to be visible in Smokeview.<\/li>\n<\/ul>\n<h5><\/h5>\n<h2>Performance Considerations<\/h2>\n<p>There are many factors that can affect how well a model performs. There are many factors to consider when optimizing model runs. The user should experiment with various configurations to find the optimal performance for their particular models. Official information can be found in the FDS\u00a0<a href=\"https:\/\/pages.nist.gov\/fds-smv\/manuals.html\" target=\"_blank\" rel=\"noopener\">user manuals.<\/a>\u00a0We summarized\u00a0some important points here as related to running FDS at Sabalcore:<\/p>\n<ul>\n<li>As of FDS 6.2.0 most of the parallelization effort has been focused on the divergence, velocity and radiation modules. It has also been limited to the default solvers and common settings. This means that your speedup will vary depending on your simulations settings and settings such as isosurfaces and DNS simulations will experience smaller speedups.<\/li>\n<li>The number of process threads and the degree in which a model can be parallelized is determined by the number of meshes and cell count in a model. So larger simulations will see a greater speedup relative to smaller ones.<\/li>\n<li>FDS supports\u00a03 &#8220;modes&#8221; of parallelization &#8211; MPI, OpenMP, and MPI_OpenMP.<\/li>\n<li>The default mode at Sabalcore is MPI.\u00a0 <span style=\"text-decoration: underline;\">MPI is the most efficient and provides the greatest performance benefit vs cost ($).<\/span>\u00a0 For example, a\u00a0model with 20 meshes and 1M cells will run faster using MPI process threads than the same model with 1 mesh and 1M cells using 20 OpenMP process threads.<\/li>\n<li>\u00a0MPI and MPI_OpenMP support 1 or more nodes.\u00a0OpenMP is restricted to one compute node.<\/li>\n<li>At Sabalcore, a single CPU core is allocated to one FDS process thread whether it be a MPI or OpenMP thread.<\/li>\n<li>Using one processes thread per mesh (MPI) is the most efficient use of the processor. Using two or more threads per mesh (MPI_OpenMP) will generally reduce wall-time of the simulation but at the expense of processor efficiency and will have a higher cost $. For example, you\u00a0can expect 4\u00a0MPI processes to speed up the computation time by a factor of about 0.9 times 4. The OpenMP can provide\u00a0an extra factor up to about 2, regardless of the number of cores used beyond about 4.<\/li>\n<li>Generally, up to 4 process threads per mesh will provide speed improvement (but not linear) when using MPI_OpenMP.\u00a0 Adding too many threads per mesh\u00a0\u00a0(overloading) may cause poor performance, particularly if the\u00a0number of cells per mesh is too small relative to the overall size of the model.<\/li>\n<li>If a model contains only one mesh, you must use OpenMP for parallelization. There is a limit to the benefit that OpenMP can provide.\u00a0 Between process loops there are lines of code that can not be multi-threaded and must run single thread. Before and after each loop with an OpenMP directive there is cost in starting and stopping threads for that loop. This impacts performance and efficiency. For example, a single mesh model running 4 OpenMP threads will cost ($) approximately 2-3 times as much as the same model\u00a0split into 4 meshes and using MPI.<\/li>\n<li>You must manually modify the FDS launcher settings if using OpenMP. See above paragraph &#8220;OpenMP&#8221; or contact Support if you need assistance.<\/li>\n<\/ul>\n<h2>Tools<\/h2>\n<p><strong>fdsreader<\/strong> &#8211; A fast and easy-to-use Python reader for FDS data. <a href=\"https:\/\/firedynamics.github.io\/fdsreader\/#\" target=\"_blank\" rel=\"noopener\">fdsreader documentation<\/a><\/p>\n<p>First, you&#8217;ll need to start an interactive (or batch) job to install fdsreader in your account. See the <a href=\"?p=1430\">python <\/a>article for more details. Here is a summary:<\/p>\n<p>First start an interactive job:<\/p>\n<pre>qsub -I -l nodes=1:ppn=2<\/pre>\n<p>Next, load the python module:<\/p>\n<pre>module load python<\/pre>\n<p>Use pip to install the setup tools first. Be sure to include &#8220;-U&#8221; option so it is installed in your account.<\/p>\n<pre>pip install -U --user setuptools<\/pre>\n<p>Lastly, install\u00a0the fdsreader package. You may want to use the \u2018\u2013no-deps\u2019 option.<\/p>\n<p>pip install -U &#8211;user fdsreader<\/p>\n<p>Now that it is installed, you\u00a0may invoke it for an interactive or batch job by first loading the python module, &#8220;module load python&#8221;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this Article&#8230; Setting up and Running FDS\u00a0&#8211; Quick start video Run the FDS demo program Running Smokeview &#8211; using the launcher Troubleshooting Other Topics and Tips &#8211; downloading results Performance\u00a0considerations Tools &#8211; fdsreader Setting up and Running Fire Dynamic Simulator (FDS) Before reading this section, you should already have an understanding of\u00a0 how to\u00a0transfer [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[85],"tags":[105,107,182,128,126,106,127],"class_list":["post-653","post","type-post","status-publish","format-standard","hentry","category-software-specific-guides","tag-fds","tag-fds-smv","tag-fdsreader","tag-psm","tag-pyrosim","tag-smokeview","tag-smv"],"_links":{"self":[{"href":"https:\/\/knowledgebasev.kinsta.cloud\/index.php?rest_route=\/wp\/v2\/posts\/653","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/knowledgebasev.kinsta.cloud\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/knowledgebasev.kinsta.cloud\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/knowledgebasev.kinsta.cloud\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/knowledgebasev.kinsta.cloud\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=653"}],"version-history":[{"count":126,"href":"https:\/\/knowledgebasev.kinsta.cloud\/index.php?rest_route=\/wp\/v2\/posts\/653\/revisions"}],"predecessor-version":[{"id":2098,"href":"https:\/\/knowledgebasev.kinsta.cloud\/index.php?rest_route=\/wp\/v2\/posts\/653\/revisions\/2098"}],"wp:attachment":[{"href":"https:\/\/knowledgebasev.kinsta.cloud\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=653"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/knowledgebasev.kinsta.cloud\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=653"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/knowledgebasev.kinsta.cloud\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=653"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}