# Further Low-Level Implementation Details {#openvino_docs_deployment_optimization_guide_internals} ## Throughput on the CPU: Internals As explained in the [throughput-related section](./dldt_deployment_optimization_tput.md), the OpenVINO streams are means of running multiple requests in parallel. In order to best serve multiple inference requests executed simultaneously, the inference threads are grouped/pinned to the particular CPU cores, constituting the "CPU" streams. This provides much better performance for the networks than batching, especially for the multiple-core systems: @sphinxdirective .. container:: row-two-col-content .. container:: column-two-col-content **Conventional Approach** | Every CNN op is internally parallelized over a full number of CPU cores and it is detrimental for non-scalable ops. | A lot of synchronization between many threads results in overhead. | An only option to improve efficiency is batching. .. container:: column-two-col-content **Streams** | CPU cores are evenly distributed between execution streams (each 1-4 threads). | Less threads per stream means less synchronization, better locality, and finer granularity. @endsphinxdirective @sphinxdirective .. raw:: html