Git Product home page Git Product logo

savina's People

Contributors

shamsimam avatar woelke avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

savina's Issues

The Unbalanced Cobwebbed Tree benchmark uses a busy loop that is likely to be removed by a compiler

The busy loop just increments the counter, and returns it. For some reason it also gets currentTimeMillis, but does not use it.
If a JIT compiler performance inlining and sees that the return value is never used, the loop is easily removed, which is probably not desirable, because, I guess this is part of the 'parallel work load' in tryGenerateChildren(), traverse(), and urgentTraverse().

https://github.com/shamsmahmood/savina/blob/master/src/main/java/edu/rice/habanero/benchmarks/uct/UctConfig.java#L64

AStar/GuidedSearch benchmark issues.

The allNodes field is for some reason a HashMap. However, it seems to be densely populated so, I would kind of assume it should be an array. Any specific reason why it is a HashMap?

The busyWait function uses Math.random() and thus, sequentializes all workers on the AtomicLong seed of the shared Random object.

Termination and Self-Verification in ForkJoin Actor Creation and Throughput.

These two benchmarks do currently not do self-verification beside checking the results of the computation, which is there to avoid dead-code elimination.

Furthermore these two benchmarks rely (like many others) on the availability of .awaitTermination() in most incarnations. I saw in the Habanero versions the use of finish() instead.

In my version I went with returning promises with the computation result or the number of messages processed.
However, that changes the benchmark quite a bit, so I wonder whether it is an acceptable solution.

See smarr/SOMns-corelib@e2cc695 and smarr/SOMns-corelib@6d0d97e

Why do the Akka benchmarks use context.system.actorOf?

Hi, I've been using the Savina benchmarks to evaluate an Akka feature I'm developing.

I noticed that the Akka benchmarks do not use the most efficient API for spawning actors. Namely, in FibonacciAkkaActorBenchmark, actors are spawned using context.system.actorOf instead of context.actorOf. The former API spawns actors at the top level of the supervision hierarchy, whereas the latter means that the parent supervises the child. I found that switching from the former to the latter led to a 2x performance improvement in Akka 2.6.3!

My theory is that you used the former API to simplify manual actor termination. In Akka, stopping the supervisor causes all its descendants to stop, which can sometimes mean that actors stop earlier than expected.

Is my theory correct? I'd love to hear your thoughts.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.