HPC Running and Converting Models: Difference between revisions

Content deleted Content added
 
(17 intermediate revisions by 6 users not shown)
Line 1:
= Introduction =
This page contains information about converting an existing TUFLOW Classic or GPU (pre 2017 HPC release) model to a format that can be run using the TUFLOW HPC engine. This page provides a quick summary for experienced TUFLOW users to use as a reference point for updating their models. It is recommended that less experienced TUFLOW users refer to our <u>[[Tutorial_ModelTutorial_Introduction |TUFLOW Tutorial Modules]]</u> for greater support and guidance on creating a HPC model.<br>
 
To convert an existing TUFLOW Classic or GPU Model to run on HPC, an update to the TUFLOW Control File (TCF) is needed. Some features from TUFLOW Classic that are not currently supported in HPC, may prevent the HPC model running successfully. To find out more about unsupported features in HPC, be surerefer to review the <u>[https://docs.tuflow.com/Downloadclassic-hpc/TUFLOWmanual/Releaseslatest/2017-09/TUFLOW%20Release%20Notes.2017-09.pdf TUFLOW 2017-09 Release NotesManual]</u>. or the <u>[[HPC Features | HPC Features Wiki Page]]</u>.<br>
 
= Converting TUFLOW Classic to HPC (TCF Updates) =
Line 11:
These two commands are all that's needed to run convert the TUFLOW Classic model to HPC and run using GPU hardware. There are however more commands provided below that give the modeller greater control over the Hardware that HPC uses.<br>
 
= Running HPC on Multiple CPU CoresThreads =
As mentioned in the <u>[[HPC_Introduction | HPC Introduction]]</u> page, HPC can be parallelised to run across multiple CPU processors when run on CPU (i.e. not GPU). The following command allows the modeller to dictate the number of core processors to run TUFLOW HPC across.<br>
<font color="blue"><tt>CPU Threads </tt></font> <font color="red"><tt>==</tt></font><tt> 48 </tt> <font color="green"><tt> !Default is 24. This instructs TUFLOW to search for and run the model across four different core processors. </tt></font><br>
If the number of processors or TUFLOW licences found by TUFLOW are less than the specified value, then TUFLOW will utilise the maximum number of core processors available within the licence and hardware limitations.<br>
Alternatively, the GPUnumber devicesof CPU threads can be specified in the batch file / command line by using the -punt<idnumber of threads> argument. NoteIf thatboth multiplecontrol argumentsfile and command line are requiredused to runspecify onnumber multipleof GPU cardsthreads, e.g.the -pu0command -pu1line andoption sowill onprevail.<br>
 
= Running HPC on Multiple GPU Devices =
Much like HPC can be run across multiple CPU processors, HPC can be run across multiple GPU cards. TheModels followingcan TCF command canalso be usedinstructed to setrun theon numbera ofspecific GPU devices and which devices to usecard.<br>
If a machine only has a single GPU card, the GPU Device ID should be 0, this is a default. If a second GPU card was added, the Device ID would be 1 and so on. The GPU Device IDIDs can be checked by reviewing the machines ''Device Manager''. Note that the order may not match the expectations, see <u>[[Configure CUDA device selection]]</u> for more information. <br>
The most common method is to specify the GPU card ID in the batch file / command line by using the -pu<id> argument.<br>
Example below will run single simulation across the first and second GPU card (ID 0 and 1).
<pre>"TUFLOW_iSP_w64.exe" -pu0 -pu1 "M01_5m_001.tcf"</pre>
Example below will run single simulation on the fourth GPU card (ID 3).
<pre>"TUFLOW_iSP_w64.exe" -pu3 "M01_5m_001.tcf"</pre>
 
Alternatively, the following TCF command can be used to set the number of GPU devices and which devices to use.<br>
<font color="blue"><tt>GPU Device IDs </tt></font> <font color="red"><tt>==</tt></font><tt> 0, 1 </tt> <font color="green"><tt> !This command instructs TUFLOW to run the model on GPU Device 0 and GPU Device 1.</tt></font><br>
If a machine only has a single GPU card, the GPU Device ID should be 0, this is a default. If a second GPU card was added, the Device ID would be 1 and so on. The GPU Device ID can be checked by reviewing the machines ''Device Manager''.<br>
Alternatively, the GPU devices can be specified in the batch file / command line by using the -pu<id> argument. Note that multiple arguments are required to run on multiple GPU cards, e.g. -pu0 -pu1 and so on.<br>
If both control file and command line are used to specify devices, the command line option will prevail.
 
Line 38 ⟶ 45:
 
<font color="blue"><tt>If Scenario </tt></font> <font color="red"><tt>==</tt></font> <tt> CPU </tt> <br>
:: <font color="blue"><tt>CPU Threads </tt></font> <font color="red"><tt>==</tt></font> <tt> 48 </tt> <br>
<font color="blue"><tt>Else If Scenario </tt></font> <font color="red"><tt>==</tt></font> <tt> GPU </tt> <br>
:: <font color="blue"><tt>GPU Device IDs</tt></font> <font color="red"><tt>==</tt></font> <tt> 0, 1 </tt> <br>
Line 45 ⟶ 52:
If using the above Scenario Logic, the modeller must include a scenario call in the batch file.<br>
<font color="blue"><tt>-s1 <Hardware Type> </tt></font><br>
If you are unfamiliar with using Scenario Logic, please refer to <u>[[Tutorial_Module05Tutorial_M08 |Tutorial Module 0508]]</u>.<br>
 
Other useful batch file switches include:<br>
<font color="blue"><tt>-nt <number_of_threads> </tt></font>: This switch is used to set the number of CPU threads used for CPU mode simulations.<br>
<font color="blue"><tt>-pu <GPU Device IDs> </tt></font>: This switch is used to selectset the number of GPU cardsdevices thatand TUFLOWwhich usesdevices to use.<br>
 
An example of how this would be implemented into a simple batch file for CPU and GPU are shown below.<br>
 
Line 61 ⟶ 67:
This example will run TUFLOW HPC on GPU using 2 GPU cards.<br>
<br>
<br>
{{Tips Navigation
|uplink=[[ HPC_Modelling_Guidance | Back to HPC Modelling Guidance]]
}}