diff --git a/README.md b/README.md index c54d624..de9c497 100644 --- a/README.md +++ b/README.md @@ -54,13 +54,14 @@ compiler: * [**Domainslib**](https://github.com/ocaml-multicore/domainslib): data and control structures for parallel programming * [**Eio**](https://github.com/ocaml-multicore/eio): effects-based direct-style IO for multicore OCaml -* [**Lockfree**](https://github.com/ocaml-multicore/lockfree): [lock-free](https://en.wikipedia.org/wiki/Non-blocking_algorithm#Lock-freedom) data +* [**Saturn**](https://github.com/ocaml-multicore/saturn): [lock-free](https://en.wikipedia.org/wiki/Non-blocking_algorithm#Lock-freedom) data structures (list, hash, bag and queue) * [**Reagents**](https://github.com/ocaml-multicore/reagents): composable lock-free concurrency library for expressing fine grained parallel programs on Multicore OCaml -* [**Kcas**](https://github.com/ocaml-multicore/kcas): multi-word compare and -swap library +* [**Kcas**](https://github.com/ocaml-multicore/kcas): software + transactional memory (STM) implementation based on an atomic + lock-free multi-word compare-and-set (MCAS) algorithm Find ways to profitably write parallel programs in Multicore OCaml. The reader is assumed to be familiar with OCaml. If not, they are encouraged to read [Real @@ -836,7 +837,7 @@ eliminated them to achieve better speedups. For more details on profiling with ## Eventlog The Multicore runtime supports [OCaml instrumented -runtime](https://ocaml.org/manual/instrumented-runtime.html#:~:text=This%20chapter%20describes%20the%20OCaml,parts%20of%20the%20garbage%20collection.). +runtime](https://ocaml.org/manual/runtime-tracing.html). The instrumented runtime enables capturing metrics about various GC activities. [Eventlog-tools](https://github.com/ocaml-multicore/eventlog-tools/tree/multicore) is a library that provides tools to parse the instrumentation logs generated by @@ -847,7 +848,7 @@ Eventlog tools can be useful for optimizing Multicore programs. **Identify Large Pausetimes** -Identifying and fixing events that cause maximun latency can improve the overall +Identifying and fixing events that cause maximum latency can improve the overall throughput of the program. `ocaml-eventlog-pausetimes` displays statistics from the generated trace files. For Multicore programs, every domain has its own trace file, and all of them need to be fed into the input. @@ -887,6 +888,6 @@ distribution more balanced, which could increase the speedup. --- -Performace debugging can be quite tricky at times, so if you could use some help in +Performance debugging can be quite tricky at times, so if you could use some help in debugging your Multicore OCaml code, feel free to create an Issue in the Multicore OCaml [issue tracker](https://github.com/ocaml-multicore/ocaml-multicore/issues) along with a minimal code example.