Cloud-orbit =========== Orbit for the cloud in Cloud Haskell! This is a shameless translation from the original Orbit-int written in Erlang by Patrick Maier <P.Maier@hw.ac.uk>. Required Haskell packages ------------------------- - [hashable](https://hackage.haskell.org/package/hashable) - [dequeue](https://hackage.haskell.org/package/dequeue) - [distributed-process](https://hackage.haskell.org/package/distributed-process) - [network-transport-tcp](https://hackage.haskell.org/package/network-transport-tcp) - [distributed-process-simplelocalnet](https://hackage.haskell.org/package/distributed-process-simplelocalnet) Execution --------- - Sequential Orbit ```bash ./orbit seq short|intermediate|long host port # Example: executing the 'long' benchmark ./orbit seq long 127.0.0.1 1555 ``` - Parallel Orbit ```bash ./orbit par True|False short|intermediate|long nWorkers host port # Example: executing the 'long' benchmark with parallel image # computations using 4 workers on 4 cores ./orbit +RTS -N4 -RTS par True long 4 127.0.0.1 1555 ``` - Distributed Orbit First, start the worker nodes. ```bash # Run for every worker node ./orbit dist slave host port # Example: run a worker node on 4 cores ./orbit +RTS -N4 -RTS dist slave 127.0.0.1 1554 ``` Once all the workers nodes have been deployed on the local network, start the master node. ```bash ./orbit dist master True|False short|intermediate|long nWorkers host port # Example: executing the 'long' benchmark without parallel image # computations, using 4 workers on each node and the master node # running on 2 cores ./orbit +RTS -N2 -RTS dist master long 4 127.0.0.1 1555 ``` Memory Profiling ---------------- - Compile with enabled profiling ```bash make prof ``` - Run with the proper RTS options ```bash # Example: executing the 'long' benchmark ./orbit +RTS -hd -p -RTS seq long 127.0.0.1 1555 ``` - Prepare the report ```bash make prof-results ``` Profiling with Threadscope -------------------------- - Compile with enabled event logging ```bash make threadscope ``` - Run with the proper RTS options ```bash # Example: executing the 'long' benchmark ./orbit +RTS -ls -RTS seq long 127.0.0.1 1555 ``` - Open the report with threadscope ```bash threadscope orbit.eventlog ``` Credits ------- Written by: - Yiannis Tsiouris <gtsiour@softlab.ntua.gr> - Aggelos Giantsios <aggelgian@softlab.ntua.gr>