由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - c++ thread 求助 (转载)
相关主题
career cup 如何测context switch花费时间?看来TANGO 比 FLAGT 要求都高啊!
请教如何保证函数时thread safe的?[合集] 做完ReviewNet的题
问个multi threading code 题,同时请问高手mutil threading 编程有什么好书,网站和教程推荐?Bloomberg C# developer interview.
一道关于SMP and threading 题目Google on-site最恐怖的事
two functons and two threads攒人品,写面题
求教神码是 Unix/Posix programming[合集] OS interview questions
一道多线程的面试题Amazon电面 (05/02/09更新第二次,第三次电面)
请教三个多线程(multi-threading)题目[合集] bloomberg的电面
相关话题的讨论汇总
话题: thread话题: boost话题: pstart话题: batchsize话题: num
进入JobHunting版参与讨论
1 (共1页)
y****k
发帖数: 71
1
【 以下文字转载自 Programming 讨论区 】
发信人: ystdpk (ystdpk), 信区: Programming
标 题: c++ thread 求助
发信站: BBS 未名空间站 (Fri Jan 31 21:12:20 2014, 美东)
有一个50 million 行的文本。每行四列数字。
要求每行求一个特殊函数的值,把此值输出为第五列。次函数的求值所花的时间可能很
快,如果四个数比较小, 也可能要花到10几到100倍的时间如果数比较大。
想用36个boost thread。
有没有人能提供一个boost thread 的代码。谢谢了。
我写了一个下面的,但是cpu浪费比较严重,有的thread 结束早,有的结束慢。而且不
知道2000行一个thread是不是好的选择。
int batchSize = 2000;
int num_of_lines = 50100100;
bool end_of_file = false;
int pstart = 0;
boost::thread_group io;
while( ! end_of_file )
{
boost::thread_group g;
vector > out;
out.resize(num_of_threads);

for( int i = 0; i < num_of_threads; )
{
if(num_of_lines - pstart < BATCHMAX)
{
batchSize = num_of_lines - pstart;
boost::thread *tp = new boost::thread( worker, batchSize
, boost::ref(out[i]) );
g.add_thread(tp);
pstart = pstart + batchSize;
i++;
end_of_file = true;
break;
}
else
{
boost::thread *tp = new boost::thread( worker, batchSize
, boost::ref(out[i]) );
g.add_thread(tp);
pstart = pstart + batchSize;
i++;
}
}
g.join_all();

io.join_all();
boost::thread *tprint = new boost::thread( appendToFile, boost::ref(File
), out);
io.add_thread(tprint);
}
a**x
发帖数: 14
2
C++11好像有thread了
M********u
发帖数: 42
3
假定输入是50m,每行4个数字,sizeof(double) * 4 =~ 32 bytes, 如果全部cache在
内存里,大概需要50m * 32 =~ 2GB。有的thread finish的比较早,有的比较晚是因为
每个thread分配到一样多的count,但是有的输入可能需要算很久。这类科学计算的问
题一般使用openmp,非常容易写。
http://en.wikipedia.org/wiki/OpenMP
可以用scheduling clause里的dynamic
1 (共1页)
进入JobHunting版参与讨论
相关主题
[合集] bloomberg的电面two functons and two threads
why do we need to map user level threads to kernel threads?求教神码是 Unix/Posix programming
请问如果用C++实现Thread Safe Queue一道多线程的面试题
failed bloomberg phone interview请教三个多线程(multi-threading)题目
career cup 如何测context switch花费时间?看来TANGO 比 FLAGT 要求都高啊!
请教如何保证函数时thread safe的?[合集] 做完ReviewNet的题
问个multi threading code 题,同时请问高手mutil threading 编程有什么好书,网站和教程推荐?Bloomberg C# developer interview.
一道关于SMP and threading 题目Google on-site最恐怖的事
相关话题的讨论汇总
话题: thread话题: boost话题: pstart话题: batchsize话题: num