Skip to content

Commit

Permalink
multi-threading vs. multi-core
Browse files Browse the repository at this point in the history
  • Loading branch information
emmericp committed Oct 15, 2018
1 parent e451869 commit f89f46f
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ Effect of batch size with CPU clocked at 1.6 GHz

[TODO: measure cache misses for other languages, similar to the cache measurement for the C version in [the paper](https://www.net.in.tum.de/fileadmin/bibtex/publications/papers/ixy_paper_draft2.pdf)]

*Notes on multi-core:* Some languages implement multi-threading for ixy, but some can't by design (e.g. GIL in Python or OCaml). However, this isn't a real problem because multi-threading within one process isn't really necessary.
*Notes on multi-core:* Some languages implement multi-threading for ixy, but some can't or are limited by the language's design (e.g., the GIL in Python and OCaml). However, this isn't a real problem because multi-threading within one process isn't really necessary.
Network cards can split the traffic at the hardware level (via a feature called RSS), the traffic can be distributed to independent different processes.
For example, [Snabb](https://github.com/snabbco/snabb) works like this and many DPDK applications use multiple threads that do not communicate.

Expand All @@ -58,4 +58,4 @@ Average and median latency is the same irregardless of the programming language,
This yields somewhat interesting results depending on queue sizes and NUMA configuration, see the [ixy paper](https://www.net.in.tum.de/fileadmin/bibtex/publications/papers/ixy_paper_draft2.pdf) for an evaluation.

Latency spikes induced by languages feature a garbage collector and/or a JIT compiler might not be caught by the test setup above.
We are working on an additional latency measurement setup based on fiber taps with our [MoonSniff framework](https://github.com/AP-Frank/MoonGen/tree/moonsniff). This allows us to timestamp every single packet and detect JIT warmup phases and individual gc cycles.
We are working on an additional latency measurement setup based on fiber taps with our [MoonSniff framework](https://github.com/AP-Frank/MoonGen/tree/moonsniff). This allows us to timestamp every single packet and detect JIT warmup phases and individual gc cycles.

0 comments on commit f89f46f

Please sign in to comment.