归并排序的数据生成器

haojn 2008-04-10 11:20:39
Intel多核比赛专用

#include "tbb/cache_aligned_allocator.h"
#include "mkl_vsl.h"

using namespace tbb;

int n;
int *a;
cache_aligned_allocator<int> alloc_a;
VSLStreamStatePtr stream;

void gen(int _n,int seed)
{
int status;
n=_n;
a=alloc_a.allocate(_n);
status=vslNewStream(&stream,VSL_BRNG_MCG31,seed);
status=viRngUniform(VSL_METHOD_DUNIFORM_STD,stream,_n,&(a[0]),0,(1<<28)-1);
}

gen(元素个数N,初始种子值Seed)
可以用它来统一比较运行时间,省得从文件读入了

我目前的时间:
N=1^25,Seed=12345,单线程3.81秒
...全文
454 29 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
zm0011 2008-04-26
  • 打赏
  • 举报
回复
不能删。我要说CSDN的坏话了,这个CSDN论坛,发帖、格式编辑、上传、下载、个人空间......很多地方都做得糟糕
haojn 2008-04-26
  • 打赏
  • 举报
回复
是不是TBB版本的问题?
win32能编译么?


有什么办法能删除上传的资源?没想到上传了3个...
zm0011 2008-04-26
  • 打赏
  • 举报
回复
我在64bit虚拟机上始终无法编译出你的程序,郁闷
haojn 2008-04-25
  • 打赏
  • 举报
回复
上传了,请在这里下载

http://download.csdn.net/user/haojn

里面有文档,这里就不贴算法了
huanyun 2008-04-25
  • 打赏
  • 举报
回复
昏倒 发错地方了 :(
huanyun 2008-04-25
  • 打赏
  • 举报
回复
呵呵 谢谢关注 我的源码
http://download.csdn.net/user/huanyun/

希望能看到更多的人共享源码, 互相学习. :)
killgxlin 2008-04-25
  • 打赏
  • 举报
回复
vmware的效率很差劲的,你的执行时间可是大大地缩水了
zm0011 2008-04-25
  • 打赏
  • 举报
回复
等楼主上传代码
zm0011 2008-04-24
  • 打赏
  • 举报
回复
我现在才提交程序,是不是要扣分啊。
我的测试是在VMWARE上做的——
480MB,五千万随机整数,30秒。
244MB,2千五百万随机整数,11秒。
97MB,一千万随机整数,4秒。
killgxlin 2008-04-24
  • 打赏
  • 举报
回复
没有装mkl库,我用了

size_t *constructData(size_t size){
size_t *src = alloc_a.allocate(size);
for(int i=0; i<size; i++)
src[i]=i;
random_shuffle(src, src+size);
return src;
}

parallel_sort()单线程 7.x,两线程4.x
自己的归并 单线程 6.x,两线程3.x

killgxlin 2008-04-24
  • 打赏
  • 举报
回复
应该是像小崔一样有个性
denghui0815 2008-04-24
  • 打赏
  • 举报
回复
我倒 我没那么有个性吧!
killgxlin 2008-04-24
  • 打赏
  • 举报
回复
denghui0815的照片很像崔永元啊
haojn 2008-04-24
  • 打赏
  • 举报
回复
呵呵,是啊。我以为你早就知道了
denghui0815 2008-04-24
  • 打赏
  • 举报
回复
昏 原来haojn=just
jfguo 2008-04-23
  • 打赏
  • 举报
回复
读写文件的时间也要计算在内?
是的
haojn 2008-04-23
  • 打赏
  • 举报
回复
我还没交第4个

现在是:

总分 899
提交作品( 3 份作品) 300
加分 0
评委评分 599
denghui0815 2008-04-23
  • 打赏
  • 举报
回复
我得到了额外的50分 在提交第4个问题的时候
yangyun10 2008-04-23
  • 打赏
  • 举报
回复
读写文件的时间也要计算在内?
haojn 2008-04-23
  • 打赏
  • 举报
回复
为了加速I/O,我用了x64,结果单线程排序退化成4.7秒

多线程的效率极低,4个线程只能到2.15秒,似乎有明显的资源争用



这次基本上看测试的顺序了,如果排在前面的那个程序占了很大内存,那么文件缓存将被evict,I/O的时间就非常多了


对了,大家有得到额外的100分么(有效提交3个问题后)?我的好像没有
加载更多回复(9)

567

社区成员

发帖
与我相关
我的任务
社区描述
英特尔® 边缘计算,聚焦于边缘计算、AI、IoT等领域,为开发者提供丰富的开发资源、创新技术、解决方案与行业活动。
社区管理员
  • 英特尔技术社区
  • shere_lin
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧