IEEE Transactions on Parallel and Distributed Systems · 2016 · 22 citations · 19 references
ComputingComputer ScienceComputer SystemsParallel ComputingQueuing TheoryVirtualizationCpu SchedulingLatency OptimizationMulticore Processor DesignNetwork Function VirtualizationPipeline ParallelismThroughput OptimizationGreedy HeuristicsLatency ReductionPacket ProcessingParallelizationPipeline DesignPipeline Latency OptimizationPipeline SchedulingPipeline Throughput Optimization
Pipelines are widely used to increase throughput in multi-core chips by parallelizing packet processing while relying on virtualization. Typically, each packet type is served by a dedicated pipeline with several cores, each implementing a network service. However, with the increase in the number of packet types and their number of required services, there are not enough cores for pipelines. In this paper, we study pipeline sharing, such that a single pipeline can be used to serve several packet types. Pipeline sharing decreases the needed total number of cores, but typically increases pipeline lengths and therefore packet delays. We consider two novel optimization problems of allocating cores between different packet types such that the average or the worst-case delay is minimized. We study the two problems and suggest optimal algorithms that apply under different assumptions on the input. We also present greedy algorithms for the general case. Last, we examine our solutions on synthetic examples as well as on real-life applications and demonstrate that they often achieve close-to-optimal delays.
19
Compiling packet programs to reconfigurable switches
Lavanya Jose, Lisa Yan, George Varghese et al. · Networked Systems Design and Implementation · 2015 · 119 citations
Optimal latency-throughput tradeoffs for data parallel pipelines
Jaspar Subhlok, Gary Vondran · 1996 · 100 citations · Full text