Difference between revisions of "HPC Introduction"

From Tuflow
Jump to navigation Jump to search
Line 3: Line 3:
 
Parallelisation modelling breaks up the model into a number of pieces (equal to the number of cores the model is split across). Each piece of the model is run on a different processor with information across each piece of the model shared between processors at each timestep. Consider the image below, where each quadrant of cells is a piece of the model being run on a different processor. Information in the cells along the boundaries of these quadrants (adjacent to the red lines) need to share information with each other at each timestep to be able to solve the shallow water equation. This is achievable because TUFLOW HPC is an explicit finite volume solution which differs to TUFLOW Classic which is an implicit finite difference equation.<br>
 
Parallelisation modelling breaks up the model into a number of pieces (equal to the number of cores the model is split across). Each piece of the model is run on a different processor with information across each piece of the model shared between processors at each timestep. Consider the image below, where each quadrant of cells is a piece of the model being run on a different processor. Information in the cells along the boundaries of these quadrants (adjacent to the red lines) need to share information with each other at each timestep to be able to solve the shallow water equation. This is achievable because TUFLOW HPC is an explicit finite volume solution which differs to TUFLOW Classic which is an implicit finite difference equation.<br>
  
[[File: 2D2D_Guidance_000.JPG |450px]]<br>
+
[[File: Mesh Core Split.png |540px]]<br>
  
 
The explicit finite volume solution scheme utilised in HPC is mass conserving and requires numerical convergence to a high precision. This differs to TUFLOW Classic, which can continue to simulate a model with high volume error due to it being an implicit finite difference scheme. For HPC to achieve numerical convergence and mass conservation it is not possible to run with a fixed timestep as TUFLOW Classic is able to. HPC must change and adapt the timestep to the conditions within a given cell at a given point in time. This is typically controlled by the water velocity, depth and/or turbulence. The need for adaptive timestepping in HPC and the equations that control the necessary timestep for numerical convergence are described further on our <font color="blue"><tt> HPC Adaptive Timestep </tt></font> Wiki page.<br>
 
The explicit finite volume solution scheme utilised in HPC is mass conserving and requires numerical convergence to a high precision. This differs to TUFLOW Classic, which can continue to simulate a model with high volume error due to it being an implicit finite difference scheme. For HPC to achieve numerical convergence and mass conservation it is not possible to run with a fixed timestep as TUFLOW Classic is able to. HPC must change and adapt the timestep to the conditions within a given cell at a given point in time. This is typically controlled by the water velocity, depth and/or turbulence. The need for adaptive timestepping in HPC and the equations that control the necessary timestep for numerical convergence are described further on our <font color="blue"><tt> HPC Adaptive Timestep </tt></font> Wiki page.<br>
Line 9: Line 9:
 
HPC cell discretisation is the same as TUFLOW Classic This has removed the “checkerboarding effect” observed at times in TUFLOW GPU result outputs. This means that the water levels (i.e. cell mass) is calculated at the cell centre, while velocity (i.e. momentum) is calculated at the cell mid-sides as shown in the figures below.<br>
 
HPC cell discretisation is the same as TUFLOW Classic This has removed the “checkerboarding effect” observed at times in TUFLOW GPU result outputs. This means that the water levels (i.e. cell mass) is calculated at the cell centre, while velocity (i.e. momentum) is calculated at the cell mid-sides as shown in the figures below.<br>
  
[[File: 2D2D_Guidance_000.JPG |450px]]<br>
+
[[File: HPC Cell Schematisation.png |480px]]<br>
  
 
In general most of the functionality and features of TUFLOW Classic are available in HPC, with more of these features becoming available to HPC in due time.<br>
 
In general most of the functionality and features of TUFLOW Classic are available in HPC, with more of these features becoming available to HPC in due time.<br>

Revision as of 14:19, 23 November 2017

As of TUFLOW build 2017-09-AA, TUFLOW offers HPC (Heavily Parallelised Compute) as an alternate 2D Shallow Water Equation (SWE) solver to TUFLOW Classic. TUFLOW Classic has only ever had the capacity to run a simulation on a single CPU core. HPC provides parallelisation of the TUFLOW model allowing modellers to run a single TUFLOW model across multiple CPU cores or GPU graphics cards which utilise thousands of smaller CUDA* cores. This is shown to provide significantly quicker model run times for TUFLOW users.

Parallelisation modelling breaks up the model into a number of pieces (equal to the number of cores the model is split across). Each piece of the model is run on a different processor with information across each piece of the model shared between processors at each timestep. Consider the image below, where each quadrant of cells is a piece of the model being run on a different processor. Information in the cells along the boundaries of these quadrants (adjacent to the red lines) need to share information with each other at each timestep to be able to solve the shallow water equation. This is achievable because TUFLOW HPC is an explicit finite volume solution which differs to TUFLOW Classic which is an implicit finite difference equation.

540px

The explicit finite volume solution scheme utilised in HPC is mass conserving and requires numerical convergence to a high precision. This differs to TUFLOW Classic, which can continue to simulate a model with high volume error due to it being an implicit finite difference scheme. For HPC to achieve numerical convergence and mass conservation it is not possible to run with a fixed timestep as TUFLOW Classic is able to. HPC must change and adapt the timestep to the conditions within a given cell at a given point in time. This is typically controlled by the water velocity, depth and/or turbulence. The need for adaptive timestepping in HPC and the equations that control the necessary timestep for numerical convergence are described further on our HPC Adaptive Timestep Wiki page.

HPC cell discretisation is the same as TUFLOW Classic This has removed the “checkerboarding effect” observed at times in TUFLOW GPU result outputs. This means that the water levels (i.e. cell mass) is calculated at the cell centre, while velocity (i.e. momentum) is calculated at the cell mid-sides as shown in the figures below.

480px

In general most of the functionality and features of TUFLOW Classic are available in HPC, with more of these features becoming available to HPC in due time.

So what does this mean for modellers? By providing the ability to run models on Graphics Cards or across multiple CPU cores, we can achieve significantly greater model run times, increasing our modelling capabilities to be able to run continuous hydraulic models, with increased cell resolution, across larger extents and more scenarios (Monte Carlo, rainfall ensembles). If you would like to learn more about HPC’s run speeds and modelling benefits then please refer to our Hardware Benchmarking wiki page.

∗ Cuda Cores are cores written to a specific language (CUDA) which is patented to Nvidia graphics cards. This means that TUFLOW is limited to running on CUDA enabled graphics cards only.