Pinning ports to workers is not good idea. When the consumer queue is full, other workers cannot steal busy worker's consumer queue data. In this case the queue has to wait pinned worker which is assigned to itself. Maybe in application level you can attemp to steal other worker's data but that approach will cost you more context-switch. Using one port let the workers to handle scheduling(in this test we let the golang to do that).
This test shows us the power of singleport against multiport.
make test