[英]Efficient way to sort large vectors in-memory
我需要根据一些用户定义的功能,一次又一次地对64GB RAM高性能计算(HPC)机器上的32GB用户定义数据类型的大型向量进行排序。 我使用std :: sort相同。 但是,事实证明std :: sort花费了大量的时间> 1小时。 我还可以使用其他一些比std :: sort排序更快的函数。
我在系统上使用以下gcc版本:gcc(Ubuntu / Linaro 4.6.4-6ubuntu2)4.6.4
您可能需要混合使用std :: sort()(使用quicksort算法)和mergesort并在此处应用多线程。
例如,在CPU中有一定数量的内核,可能需要拆分数据,同时在内核上按std :: sort对每个部分进行排序,然后将它们合并,就像mergesort合并已排序的数组一样。
问候
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.