我需要高性能合并并遇到:Jatin Chhugani 等人在多核 SIMD CPU 架构上进行排序的有效实现。
他们的目标是从 1 个 CPU 中获得最大的性能,他们的解决方案之一是在 SIMD 级别上使用双调排序网络。为了隐藏 min/max 和 shuffle 操作的延迟,他们同时执行 4 个排序网络(尽管我认为它们的意思是交错的。)。这使得性能提高了 3.25 倍。
我的问题有点放松,我有多对需要处理(独立读取)的数组,所以我可以简单地运行多个进程,从而轻松获得更高的吞吐量。
虽然如果我超额订阅可用内核的进程数量,这是否也隐藏了延迟?但在更高的水平上诱导?或者我们是在超线程领域涉足,我永远不会超过 2 个进程在 CPU 内核中共享相同功能单元的限制?
我当然可以尝试,但更改现有代码相当复杂,我想先听听理论。