Version 4 (modified by 10 years ago) (diff) | ,
---|
Surface Distance Cache Tests
Overview and Benchmark Procedure
I have externalized the caching functionality in our various fault surface classes. There are a couple different implementation of the new SurfaceDistanceCache? interface:
- Traditional, single location cache: org.opensha.sha.faultSurface.cache.SingleLocDistanceCache?
- Google guava loading cache with variable size: org.opensha.sha.faultSurface.cache.MultiDistanceCache?
- Hybrid of both caches: org.opensha.sha.faultSurface.cache.HybridDistanceCache?
Caching style/parameters are configurable via the org.opensha.sha.faultSurface.cache.SurfaceCachingPolicy? class, which can be configured via java properties. It defaults to using some form of multiple/hybrid cache for all surfaces except for Compound Surfaces, which default to the single cache.
I then ran lots of tests at HPCC with many variations on these caching schemes. All tests were run on nodes with the exact same configuration:
2 quad core 2.5 GHz processors, 12 GB RAM.
I ran the following benchmarks for a UCERF3 ERF with the branch average solution:
Distance test: how long does it take to calculate each distance metric from 80 sites to every rupture in the ERF? Hazard test: how long does it take to calculate a hazard curve at 80 sites?
Sites are randomly distributed (tightly) around 35, -118. Tests were run with 1, 2, 4, and 8 threads (multiple runs of each configuration and times averaged).
Plot Legend
Each plot has a number of lines. Solid lines (force=false) mean that the surfaces used the given cache for all rupture surfaces except for CompoundSurfaces?, which used the single location cache. Dashed lines (force=true) use the given cache for compound surfaces as well. If size == 1 and force=false, the single location cache is used for all surfaces (this is the previous surface caching behavior).
The color is related to the cache size:
- black = 1 (the solid black line represents the previous caching behavior, and is the line to beat)
- blue = 2
- green = 4
- orange = 8
- magenta = 12
First Results and Sensitivity to Java Version
These are the initial results comparing the multi cache with the given size and a 1 hour access expiration with the single cache.
Distance Test | Hazard Test |
---|---|
![]() | ![]() |
distance test, Java 6, multi cache with expiration | hazard test, Java 6, multi cache with expiration |
Attachments (8)
-
direct_1_results.png (44.2 KB) - added by 10 years ago.
distance test, Java 6, multi cache with expiration
-
hazard_1_results.png (44.5 KB) - added by 10 years ago.
hazard test, Java 6, multi cache with expiration
-
direct_2_java7_results.png (41.0 KB) - added by 10 years ago.
distance test, Java 7, multi cache with expiration
-
hazard_2_java7_results.png (41.0 KB) - added by 10 years ago.
hazard test, Java 7, multi cache with expiration
-
direct_3_java7_no_exp_results.png (39.0 KB) - added by 10 years ago.
distance test, Java 7, multi cache without expiration
-
hazard_3_java7_no_exp_results.png (42.1 KB) - added by 10 years ago.
hazard test, Java 7, multi cache without expiration
-
direct_5_hybrid_no_exp_results.png (38.9 KB) - added by 10 years ago.
distance test, Java 7, hybrid cache without expiration
-
hazard_5_hybrid_no_exp_results.png (38.2 KB) - added by 10 years ago.
hazard test, Java 7, hybrid cache without expiration
Download all attachments as: .zip