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

Reply via email to