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
