繁体   English   中英

在内存中对大型向量进行排序的有效方法

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM