The set-up:

The tests that were performed were a single run with each available version of OpenFOAM, all executed in computers with 4GiB of RAM and have Intel Core2Duo E8400 @3.00GHz.

The Linux versions are still the same versions used in the previous timings, namely OpenFOAM 1.6 used are the ones available here (32bit) and here (64bit); both versions were executed in OpenSUSE 10.3 x86_64.

The Windows versions of OpenFOAM 1.6.0 and 1.7.0 were cross-compiled with mingw-w64, available with blueCFD.

The MPI cases were run with dual-core single-machine, with the mesh split in two on the Y axis, thus splitting the bike symmetrically.

The mesh and results are compressed with gzip internally (default of the case).

The MinGW versions are executed in Windows 7 x64.

The mingw-w32 Double Precision version from blueCFD 1.6-2 is also executed in Windows 7 x64 for comparison.

Run times:

The times are in seconds and the results are in the following table:

Single Core

mingw-w32 DP 1.6

mingw-w32 SP

mingw-w32 DP

mingw-w64 DP

Linux 32 (OF 1.6)

Linux 64 (OF 1.6)

snappyHexMesh (write)

161

132

149

106

104

83

snappyHexMesh (total)

284

252

271

231

203

158

simpleFoam

1957

1289

1960

1864

1845

1492

Dual Core

snappyHexMesh (write)

161

132

149

106

105

83

snappyHexMesh (total)

284

251

271

231

204

158

simpleFoam

1534

947

1539

1471

1375

1280

simpleFoam Performance Ratio Single/Double

1.28

1.36

1.27

1.27

1.34

1.17

Legend:

the version mingw-w32 DP 1.6 is cross-compiled with gcc-4.4.2 mingw-w64;

the versions mingw-w32 and mingw-w64 are cross-compiled with gcc-4.4.4 mingw-w64;

SP means Single Precision;

DP means Double Precision.

Notes:

snappyHexMesh returns two timings: write mesh time and total execution time. These timings reflect the weight that writing the meshes has in the whole process of generating the mesh.

The meshes for each run with simpleFoam were generated by the respective version of snappyHexMesh, therefore the results are subjective to the generated mesh. In other words, the mesh for each run isn't the same.

These timings are of a single run for each version. Proper testing should have at least 5 runs to do an average.

The mingw-w32 SP 1.7-1 version of snappyHexMesh no longer seems to have problems.

Conclusions:

As referenced in the previous timings post, the cross-compiled versions suffer from the conversion layer of using the mingw run-time.

The version mingw-w32 DP 1.6 as seen a major improvement, when compared with the previous timings. The only difference between both run times is that the previous one was made with Windows XP x64 and this timing was made with Windows 7 x64! This is due to Windows Seven's improved buffering data mechanism, when compared to XP x64.

The improvements between mingw versions of blueCFD 1.6-2 and 1.7-1 are most likelly thanks to OpenFOAM's improvements from 1.6 to 1.7.0.

The mingw-w64DP version has only seen improvements when running simpleFoam, when compared to the previous timings. This improvement makes the mingw-w64 64bit version be closer to the 32bit Linux version of OpenFOAM, but keep in mind that the timings for the Linux version are still the ones made using OpenFOAM 1.6.

When dividing the timings between the mingw versions and the Linux versions, we can infer that the mingw versions running in Windows 7 x64 are 5 to 50% slower than the Linux versions. (NOTE: These values haven't been posted here but can easily be calculated.) This means that the mingw versions are useful for setting-up and development of cases to be executed with OpenFOAM, but for long run executions (weeks/months), it's best to use the Linux versions!