Thanks, Steven, for the information. John
On 12/17/14 2:44 PM, Enns, Steven wrote: > Hi John, > > Current version is great. I’ve attached the profiler output for r788, > emailed directly to [email protected] > > > > On 12/17/14, 1:05 PM, "K. John Wu" <[email protected]> wrote: > >> 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 > > _______________________________________________ > 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
