I'm trying to pipe extremely high speed data from one application to another using 64-bit [CentOS](http://en.wikipedia.org/wiki/CentOS)6. I have done the following benchmarks using `dd` to discover that the pipes are holding me back and not the algorithm in my program. My goal is to achieve somewhere around 1.5 GB/s. 

First, without pipes: 

    dd if=/dev/zero of=/dev/null bs=8M count=1000
    1000+0 records in
    1000+0 records out
    8388608000 bytes (8.4 GB) copied, 0.41925 s, 20.0 GB/s

Next, a pipe between two dd processes: 

    dd if=/dev/zero bs=8M count=1000 | dd of=/dev/null bs=8M
    1000+0 records in
    1000+0 records out
    8388608000 bytes (8.4 GB) copied, 9.39205 s, 893 MB/s

Are there any tweaks I can make to the kernel or anything else that will improve performance of running data through a pipe? I have tried named pipes as well, and gotten similar results.