Changes between Initial Version and Version 1 of IdeasForPerformance


Ignore:
Timestamp:
01/15/14 17:28:13 (12 years ago)
Author:
zmanchun
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • IdeasForPerformance

    v1 v1  
     1
     2== Performance ==
     3
     4Here are some ideas for improving performance.  But first we must profile.
     5
     6* Use persistent data structures to implement the state.  Requires modification to state module.  Right now States are immutable, but in a very inefficient way: every time some component changes, a whole new copy of the state is made. Persistent data structures are much more intelligent about this.  The symbolic expressions use persistent data structures under the hood.
     7* Improve Partial Order Reduction, especially regarding pointers and pointer scopes.
     8* Implement atomic.  Let the user specify what things are atomic, but also if you can find sections of code which you know can be made atomic without affecting some property of interest, do that automatically.
     9* Optimize SARL.  Try different implementations of persistent data structures.   Try updating clj-ds.  Consider not sorting the terms of a polynomial, the factors of a monomial, etc.
     10* Are we canonicalizing too often?
     11* Optimize simplify()
     12* What is a good heuristic for which states to save and which to discard?
     13* Investigate hashmap collisions.  Should we make them bigger to start in some cases?  Do we need to modify our hashes?