Hi, Steven, Thanks for the information. I presume that you are ok with the current version then?
By the way, what shows up as the more time-consuming function in your profiles? John On 12/17/14 11:12 AM, Enns, Steven wrote: > Thanks John! We see 13.5% improvement in total runtime using r. > According to oprofile the time spent in do_cnt is down from 20% to 4.3%. > Unfortunately I don¹t have call counts since I¹m not using an instrumented > profiler (just pc sampling). gprof was giving strange results because my > application is multi threaded. > > On 12/16/14, 9:29 PM, "K. John Wu" <[email protected]> wrote: > >> Hi, Steven, >> >> Based on guess that the problem was caused by a solution implemented >> to address a thread-safety issue raised earlier this year (Change made >> on 2014/08/06). I have implemented a change to hopefully resolve this >> in a slightly better way this way. The change is in SVN revision 788. >> Please give it a try when you get the chance. >> >> Thanks, >> >> John >> >> >> On 12/15/14 5:57 PM, Enns, Steven wrote: >>> Trying the mailing list >>> >>> From: <Enns>, "Enns, Steven" <[email protected] <mailto:[email protected]>> >>> Date: Tuesday, December 9, 2014 at 11:20 AM >>> To: "K. John Wu" <[email protected] <mailto:[email protected]>> >>> Subject: question about doEvaluate >>> >>> Hi John, >>> >>> I am profiling my application and noticed 20% of my time is spent in >>> ibis::query::doEvaluate() -> ibis::bitvector::cnt() -> >>> ibis::bitvector::do_cnt() >>> >>> case ibis::qExpr::LOGICAL_OR: { >>> ierr = doEvaluate(term->getLeft(), mask, ht); >>> if (ierr >= 0 && ht.cnt() < mask.cnt()) { >>> ibis::bitvector b1; >>> ierr = doEvaluate(term->getRight(), mask, b1); >>> if (ierr > 0) >>> ht |= b1; >>> if (ierr >= 0) >>> ierr = ht.sloppyCount(); >>> } >>> break; >>> } >>> >>> * Is this an optimization? >>> * What is the purpose of the bitvector called Œmask'? >>> * What does it mean to compare ht.cnt() to mask.cnt()? >>> * ibis::bitvector::cnt() caches the result in ibis::bitvector::nset >>> and ibis::bitvector::nbit. Should this call to ht.cnt() result in >>> a 'cache hit'? It seems ht changes at every node of the query so >>> 'cache miss' seems reasonable. >>> >>> >>> Thanks! >>> >>> >>> _______________________________________________ >>> FastBit-users mailing list >>> [email protected] >>> https://hpcrdm.lbl.gov/cgi-bin/mailman/listinfo/fastbit-users >>> >> _______________________________________________ >> FastBit-users mailing list >> [email protected] >> https://hpcrdm.lbl.gov/cgi-bin/mailman/listinfo/fastbit-users > > _______________________________________________ > FastBit-users mailing list > [email protected] > https://hpcrdm.lbl.gov/cgi-bin/mailman/listinfo/fastbit-users > _______________________________________________ FastBit-users mailing list [email protected] https://hpcrdm.lbl.gov/cgi-bin/mailman/listinfo/fastbit-users
