Throughput Benchmark
====================

Throughput measurements are provided for the following environment:

- `Xeon`_ -- End-to-snd latency measured with the  
  |rti_rtiperftest|_ tool on high-performance Xeon machines in 
  a dedicated network.

Xeon
----

The end-to-end throughput is measured between two identical machines, using the test
configuration below and running the |rti_rtiperftest|_ tool. 

The test environment consists of the following:

- x86_64 CentOS Linux release 7.1.1503 
- RTI Perftest 3.0
- Switch Configuration: D-Link DXS-3350 SR:

  - 176Gbps Switching Capacity
  - Dual 10-Gig stacking ports and optional 10-Gig uplinks
  - Stacks up to 8 units per stack
  - 4MB (Packet Buffer Size)
  - 48 x 10/100/1000BASE-T ports
  
- Machine:

  - Intel I350 Gigabit NIC
  - Intel Core i7 CPU:
  
    - 12MB cache
    - 6 Cores (12 threads)
    - 3.33 GHz CPU speed
    
  - 12GB memory

Throughput is measured by sending samples from a publisher as 
fast as possible. A subscriber measures the throughput results.

The following measurements are reported in the tables below:

- **Length** - The size of the DDS sample payload (UDP overhead is not included).
- **Total Samples** - The number of samples written.
- **Ave Samples/s** - The number of samples written per second.
- **Ave Mbps** - The bandwidth utilization for the payload based on **Length** and 
  **Ave Samples/s**.
- **Lost Samples** - On the subscriber side, the number of samples received is 
  counted against what is expected.
- **Lost Samples %** - Percentage of **Lost Samples** compared to the **Total Samples**.

C++ Best Effort Unkeyed 1 Gbps
``````````````````````````````

.. csv-table:: C++ Best Effort Unkeyed 1 Gbps
   :file: throughput/udpv4_cpp_be_unkeyed_1gb.csv
   :widths: 10, 10, 10, 10, 10, 10
   :header-rows: 1

C++ Best Effort Keyed 1 Gbps
````````````````````````````

.. csv-table:: C++ Best Effort Unkeyed 1 Gbps
   :file: throughput/udpv4_cpp_be_keyed_1gb.csv
   :widths: 10, 10, 10, 10, 10, 10
   :header-rows: 1


C++ Reliable Unkeyed 1 Gbps
```````````````````````````

.. csv-table:: C++ Best Effort Unkeyed 1 Gbps
   :file: throughput/udpv4_cpp_rel_unkeyed_1gb.csv
   :widths: 10, 10, 10, 10, 10, 10
   :header-rows: 1