Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

addressing issue #17 : https://github.com/ocaml-multicore/parallel-programming-in-multicore-ocaml/issues/17 #19

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 13 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ following sections:
* [Task Distribution using Channels](#task-distribution-using-channels)
- [Profiling your code](#profiling-your-code)
* [Perf](#perf)
* [Eventlog](#eventlog)
* [Olly](#olly)

# Introduction

Expand Down Expand Up @@ -864,7 +864,7 @@ $ ocaml-eventlog-pausetimes caml-10599-0.eventlog caml-10599-2.eventlog caml-105

**Diagnose Imbalance in Task Distribution**

*Eventlog* can be useful to find imbalance in task distribution
*Eventlog*(for OCaml versions < 5.0) can be useful to find imbalance in task distribution
in a parallel program. Imbalance in task distribution essentially means that
not all domains are provided with equal amount of computation to perform, so some
domains take longer than others to finish their computations, while the idle domains
Expand All @@ -885,6 +885,17 @@ So far we've only found an imbalance in task distribution
in the code, so we'll need to change our code accordingly to make the task
distribution more balanced, which could increase the speedup.

If you're running OCaml version > 5.0, you can use Olly to summarize data from runtime events.

*Olly* Olly is part of the `runtime_events_tools` package. Install Olly on your switch using `opam install runtime_event_tools`.

Olly can be used in the following manner `olly trace program_trace.json 'program.exe [args]'`. The json file can then be viewed in your browser.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

olly has two modes now, json and fuchsia.


Olly also allows you to measure the GC latency and view a parseable histogram summary of pause durations. Latency can be measured using
`olly latency 'program.exe [args]'`.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

latency is deprecated; use gc-stats instead.


For more information on runtime instrumentation, please refer here : https://v2.ocaml.org/manual/runtime-tracing.html

---

Performace debugging can be quite tricky at times, so if you could use some help in
Expand Down