- Added OpenMP code, it is enabled by defining PARALLEL=1 for the elbeem
authorNils Thuerey <nils@thuerey.de>
Wed, 21 Nov 2007 22:12:16 +0000 (22:12 +0000)
committerNils Thuerey <nils@thuerey.de>
Wed, 21 Nov 2007 22:12:16 +0000 (22:12 +0000)
commit818bfcca63a145f626e432c8217513610e8aff85
tree5e57efbe1432f13bdfb65f701966571cdeaa59e9
parent413c24c7467b13155941ea5dddd9a399d1ed912b
- Added OpenMP code, it is enabled by defining PARALLEL=1 for the elbeem
  compilation.  Currently, it is not yet active by default, but
  Genscher wanted to do some tests.
  It can be used to distribute the computation load onto multiple shared-
  memory CPUs by splitting the domain along the y-axis (assuming a
  gravity force along z). However, there is no load balancing: so
  if there's fluid only in one of the y-axis halves you will not get
  a speedup for 2 CPUs.

- Added a fix for the memory allocation bugs #7120 and #6775. In
  solver_init.cpp there are now several variables max___MemChunk
  (line 692+), that set upper limits for various systems. The same
  problem existed for mac & linux, but the limit is higher, so
  it probably went by undetected. The windows limit is currently 1GB,
  if the strange 700MB limit problems mentioned in the bug regports the
  bugs persist, this could be further reduced. For 64bit compilations
  this problem shouldn't exist anyway.
  What's still missing is a display of how much the resolution was
  reduced to fit into memory...

- And some minor solver code cleanup.
14 files changed:
intern/elbeem/extern/elbeem.h
intern/elbeem/intern/attributes.cpp
intern/elbeem/intern/loop_tools.h
intern/elbeem/intern/ntl_vector3dim.h
intern/elbeem/intern/particletracer.cpp
intern/elbeem/intern/simulation_object.cpp
intern/elbeem/intern/solver_class.h
intern/elbeem/intern/solver_init.cpp
intern/elbeem/intern/solver_interface.cpp
intern/elbeem/intern/solver_interface.h
intern/elbeem/intern/solver_main.cpp
intern/elbeem/intern/solver_util.cpp
intern/elbeem/intern/utilities.cpp
intern/elbeem/intern/utilities.h