Difference between revisions of "Contrib equationReader/Efficiency"

From OpenFOAMWiki
(Migrated to github)
 
Line 1: Line 1:
== How fast is '''equationReader'''? ==
+
This project has migrated over to '''github'''.
  
The most recent version of '''equationReader''' (''Version 0.5.0'', released September 25th, 2011) handles fields roughly 10x faster than the previous version.  Overall, '''equationReader''' now takes approximately 5.87 times longer than a hard-coded solution when handling <tt>GeometricFields</tt>.  That's for a simple equation. For more complex equations, '''equationReader''''s performance improves.
+
'''''[http://github.com/Marupio/equationReader/wiki Click here for the new website.]'''''
  
Straight up <tt>scalars</tt> are still much slower. I haven't benchmarked the latest version, but previous versions were coming in at around 300 x slower.
+
http://github.com/Marupio/equationReader/wiki
 
+
== Will it get faster? ==
+
 
+
'''Yes!'''  The next plan is to have '''equationReader''' ''compile'' your equations at runtime.  In theory, they will execute as fast as a hard-coded solution, less a small amount of overhead with the function call.
+
 
+
== Parsing and evaluating ==
+
There is a difference between ''parsing'' and ''evaluating''.  When the equation is first read, it is a ''human-readable'' string expression.  '''equationReader''' translates the ''human-readable'' form into an ''operation list''.  This is ''parsing''.  To calculate the result, '''equationReader''' does a <tt>forAll(operations, i)</tt>.  This is ''evaluating''.
+
 
+
''Parsing'' happens only once, and is slow.  ''Evaluating'' happens at every cell index, at every timestep (or however you've used it), and it is fast.
+

Latest revision as of 21:41, 6 September 2013

This project has migrated over to github.

Click here for the new website.

http://github.com/Marupio/equationReader/wiki