Menu

Runtimes202_211

Anonymous Bruno Santos

Table of Contents

  • Table of Contents
  • Introduction
  • Summary of results
  • Full list of tests and results
    • openSUSE 12.1 x86_64
    • Windows 7 x64 Ultimate
    • Ubuntu 10.04 i686 VM

Introduction

In order to compare blueCFD's 2.0-2 + 2.1-1 performance on Windows versus OpenFOAM 2.0.x + 2.1.x on Linux, a test case has been prepared and executed. It is the usual motorBike case we at blueCAPE have used in the past, but this time it's has been prepared to run with both snappyHexMesh and simpleFoam to be executed in parallel. The cases are provided on the following links and can be done automatically by running the script ./DoALap.

The machine that has been used for these tests has an Intel i7 950 CPU, with 4 cores and with Hyper-Threading (HT) turned on, with the following Operating System and OpenFOAM compilation characteristics:

  • Real machine with openSUSE 12.1 x86_64, with gcc 4.6.1 and Open-MPI 1.5.3 that come with OpenFOAM's ThirdParty package.
  • Real machine with Windows 7 x64 Ultimate, with gcc 4.5.3 and Open-MPI 1.5.3 which are used by default with blueCFD.
  • Virtual machine on the Windows host with Ubuntu 10.04 i686, with gcc 4.4.5 and Open-MPI 1.5.3 that come with OpenFOAM's ThirdParty package.
    • Only 4 cores are available to the virtual machine, therefore there is no HT inside it.

Details to taking into account about these results:

  • This results are only indicative of the performance differences. Only a single run has been done for each test, but for more accurate results, there should be done at least 10 results and statistical analysis should be performed.
  • File system access has not been optimized, i.e. we've used the default settings.
  • MPI performance has not been fully optimized, i.e. we've used the default settings.
  • The builds of OpenFOAM and blueCFD have not been fully optimized for the machine used. These builds have been done with the default settings, which means that the performance should be similar on other CPU architectures, such as the ones produced by AMD and Via.
  • The ratio of cells per core has not been optimized to fully take advantage of the available computation resources.

Summary of results

Analysis of results on Tables 1 to 4:

  • blueCFD on Windows isn't always a better performer than OpenFOAM in a Linux VM (Windows host), when VT is enabled.
  • blueCFD on Windows can be up to 45% slower than OpenFOAM on Linux, when comparing results on the same architectures.
  • With 4 cores, blueCFD's performance is only up to 30% slower than OpenFOAM.
  • blueCFD 64bit on Windows can catchup with OpenFOAM 32bit on Linux.
  • blueCFD file system operations on Windows are slower than OpenFOAM's on Linux.

Conclusion: blueCFD is clearly a good choice if the user has to use Windows, specially if post-processing is taken into account.

Table 1 - Sequential runs with OpenFOAM 2.0.x:

Solver timings | 2.0.x i686 | 2.0-2 32bit | 2.0.x i686 VM | 2.0.x x86_64 | 2.0-2 64bit
---- | ---- | ---- | ---- | ----
snappyHexMesh write times | 9.83, 14.99, 168 | 14.527, 20.883, 169 | 10.14, 15.51, 156 | 7.42, 12.22, 153 | 13.303, 19.435, 150
snappyHexMesh total run time | 254 | 289 | 247 | 219 | 254
simpleFoam total run time | 883 | 1065 | 1170 | 677 | 958

Table 2 - Sequential runs with OpenFOAM 2.1.x:

Solver timings | 2.1.x i686 | 2.1-1 32bit | 2.1.x i686 VM | 2.1.x x86_64 | 2.1-1 64bit
---- | ---- | ---- | ---- | ----
snappyHexMesh write times | 10.79, 15.81, 229 | 15.959, 21.855, 184 | 11.19, 17.86, 194 | 8.15, 11.9, 148 | 14.414, 19.407, 179
snappyHexMesh total run time | 318 | 296 | 291 | 217 | 277
simpleFoam total run time | 896 | 1066 | 1199 | 685 | 962

Table 3 - Parallel runs with 4 cores, single machine with OpenFOAM 2.0.x:

Solver timings | 2.0.x i686 | 2.0-2 32bit | 2.0.x i686 VM | 2.0.x x86_64 | 2.0-2 64bit
---- | ---- | ---- | ---- | ----
snappyHexMesh write times | 5.16, 5.29, 70 | 8.985, 8.642, 83.1 | 5.4, 5.56, 64.2 | 4.03, 4.46, 39.4 | 7.629, 5.944, 61.2
snappyHexMesh total run time | 118 | 155 | 116 | 75.7 | 123
simpleFoam total run time | 363 | 470 | 404 | 329 | 406,

Table 4 - Parallel runs with 4 cores, single machine with OpenFOAM 2.1.x:

Solver timings | 2.1.x i686 | 2.1-1 32bit | 2.1.x i686 VM | 2.1.x x86_64 | 2.1-1 64bit
---- | ---- | ---- | ---- | ----
snappyHexMesh write times | 6.1, 5.41, 51.2 | 9.672, 8.892, 84.3 | 5.63, 6.2, 64.4 | 4.5, 4.21, 39.5 | 9.126, 9.282, 84.4
snappyHexMesh total run time | 102 | 161 | 120 | 80 | 161
simpleFoam total run time | 379 | 480 | 405 | 328 | 413

Full list of tests and results

openSUSE 12.1 x86_64

2.0.x x86_64:

Solver timings 1 core(s) 2 core(s) 4 core(s) 8 core(s)
snappyHexMesh write times 7.42 12.22 153 6.56 7.83 98.6 4.03 4.46 39.4 4.5 3.88 40.2
snappyHexMesh total run time 219 147 75.7 82.4
simpleFoam total run time 677 411 329 339

2.1.x x86_64:

Solver timings 1 core(s) 2 core(s) 4 core(s) 8 core(s)
snappyHexMesh write times 8.15 11.9 148 7.57 7.39 92.8 4.5 4.21 39.5 4.59 3.24 31.9
snappyHexMesh total run time 217 146 80 77.4
simpleFoam total run time 685 423 328 341

2.0.x i686:

Solver timings 1 core(s) 2 core(s) 4 core(s) 8 core(s)
snappyHexMesh write times 9.83 14.99 168 8.42 9.25 103 5.16 5.29 70 5.3 4.39 39.9
snappyHexMesh total run time 254 167 118 93.1
simpleFoam total run time 883 532 363 351

2.1.x i686:

Solver timings 1 core(s) 2 core(s) 4 core(s) 8 core(s)
snappyHexMesh write times 10.79 15.81 229 8.65 9.74 139 6.1 5.41 51.2 5.76 4.63 39.1
snappyHexMesh total run time 318 205 102 96.1
simpleFoam total run time 896 525 379 350

Windows 7 x64 Ultimate

2.0-2 64bit:

Solver timings 1 core(s) 2 core(s) 4 core(s) 8 core(s)
snappyHexMesh write times 13.303 19.435 150 10.764 12.214 92.1 7.629 5.944 61.2 7.753 5.991 50.6
snappyHexMesh total run time 254 160 123 113
simpleFoam total run time 958 553 406 391

2.1-1 64bit:

Solver timings 1 core(s) 2 core(s) 4 core(s) 8 core(s)
snappyHexMesh write times 14.414 19.407 179 11.107 11.794 110 9.126 9.282 84.4 8.704 6.396 47
snappyHexMesh total run time 277 180 161 115
simpleFoam total run time 962 558 413 391

2.0-2 32bit:

Solver timings 1 core(s) 2 core(s) 4 core(s) 8 core(s)
snappyHexMesh write times 14.527 20.883 169 12.371 12.652 105 8.985 8.642 83.1 9.282 7.161 75.8
snappyHexMesh total run time 289 186 155 148
simpleFoam total run time 1065 596 470 406

2.1-1 32bit:

Solver timings 1 core(s) 2 core(s) 4 core(s) 8 core(s)
snappyHexMesh write times 15.959 21.855 184 12.714 13.494 116 9.672 8.892 84.3 9.922 7.223 53.1
snappyHexMesh total run time 296 200 161 129
simpleFoam total run time 1066 588 480 410

Ubuntu 10.04 i686 VM

2.0.x i686:

Solver timings 1 core(s) 2 core(s) 4 core(s) 8 core(s)
snappyHexMesh write times 10.14 15.51 156 8.6 9.45 96.5 5.4 5.56 64.2 3.8 3.18 28.1
snappyHexMesh total run time 247 159 116 67.3
simpleFoam total run time 1170 626 404 478

2.1.x i686:

Solver timings 1 core(s) 2 core(s) 4 core(s) 8 core(s)
snappyHexMesh write times 11.19 17.86 194 8.72 11 116 5.63 6.2 64.4 4.01 3.37 27.1
snappyHexMesh total run time 291 181 120 68.5
simpleFoam total run time 1199 629 405 489

Related

Wiki: Runtimes
Wiki: WikiLobby

MongoDB Logo MongoDB