Hi, Srikanth, Just checked in some temporary fixes to the bitwise logical operations as SVN Revision 628. You can download it with
svn checkout https://codeforge.lbl.gov/anonscm/fastbit I'd still like to have your test program if you are able to share it with us. Thanks. John On 5/6/13 11:48 PM, Srikanth Sundarrajan wrote: > Thanks much for looking into this so quickly. > > This is part of a unit test to verify the thread safety of the > bitvector class in java. The unit test essentially creates a fixed > number of bitvector 64 objects each of size 4096 bits through the > function below. > > JNIEXPORT jlong JNICALL > Java_com_inmobi_shadowfax_FastbitWrapper_IcreateBitset > (JNIEnv *env, jobject obj, jlong numbits) { > > ibis::bitvector64* bitsetptr = new ibis::bitvector64(); > bitsetptr->setBit((long)numbits, 0); > > return (long)bitsetptr; > } > > and 3 random bits are set using the following set method > > JNIEXPORT void JNICALL Java_com_inmobi_shadowfax_FastbitWrapper_IsetBit > (JNIEnv *env, jobject obj, jlong bitsetptr, jlong pos) { > > ((ibis::bitvector64*)bitsetptr)->setBit(pos, 1); > > } > > on this bit map a series of bit operations are performed from parallel > threads in java > > Implementations of and/or/xor are given below > > JNIEXPORT void JNICALL Java_com_inmobi_shadowfax_FastbitWrapper_Iand > (JNIEnv *env, jobject obj, jlong targetbitsetptr, jlong sourcebitsetptr) { > ((ibis::bitvector64*)targetbitsetptr)->operator&=(*(ibis::bitvector64*)sourcebitsetptr); > } > > JNIEXPORT void JNICALL Java_com_inmobi_shadowfax_FastbitWrapper_Ior > (JNIEnv *env, jobject obj, jlong targetbitsetptr, jlong sourcebitsetptr) { > ((ibis::bitvector64*)targetbitsetptr)->operator|=(*(ibis::bitvector64*)sourcebitsetptr); > } > > > JNIEXPORT void JNICALL Java_com_inmobi_shadowfax_FastbitWrapper_Ixor > (JNIEnv *env, jobject obj, jlong targetbitsetptr, jlong sourcebitsetptr) { > ((ibis::bitvector64*)targetbitsetptr)->operator^=(*(ibis::bitvector64*)sourcebitsetptr); > } > > > Regards > Srikanth Sundarrajan > > > On Tue, May 7, 2013 at 12:13 PM, K. John Wu <[email protected] > <mailto:[email protected]>> wrote: > > Hi, Srikanth, > > I can verify that the problem was caused by those two unexpected > words. This appears to be a flaw in the design of the compression > scheme that left some special cases unhandled. Since it would > introduce extra cost to handle this special case, it might be > worthwhile to figure out how to prevent it being generated in the > first place. Would you be willing to explain how you generate those > bitvector64 objects? > > Thanks. > > John > > > > On 5/6/13 10:22 PM, Srikanth Sundarrajan wrote: > > Hi, > > I am fairly new to fasbit and have been using it for around a > > month. Have been running into an issue with or_c2 & xor_c2 when run > > at scale from parallel threads (am using fastbit lib via jni > from java). > > > > The error looks something like > > > > ERROR bitvector64::or_c2 -- serious problem here ... > > terminate called throwing an exception > > Error -- bitvector64::or_c2 expects to exhaust i0 but there are -159 > > word(s) left > > > > I tried adding print statement to print the copy (deep) of the > > original lhs & rhs value of the bitmaps and looks like the bitmaps > > weren't mutated while the function was running. > > > > lhs - copy of original > > > > This bitvector64 stores 4095 bits of a 4097-bit (25 set) > sequence in a > > 36-word array and 2 bits in the active word > > 0 0 1 1 2 2 3 3 4 4 5 5 6 > > 012345678901234567890123456789012345678901234567890123456789012 > > --------------------------------------------------------------- > > > > 00000000000000000000000000000000000000000000000000000000000000000000000000000000 > > > > 14000000000000000100000000000000000000000000000000000000000000000000000000000000 > > 28000000000000002126*0 > > > > 30000000000000040000000000000000000000000000000000000000000000000000000001000000 > > 4800000000000000163*0 > > > > 50020000000000000000000000100000000000000000000000000000000000000000000000000000 > > > > 60004000000000000000000000000100000000000000000000000000000000000000000000000000 > > > > 70000001000000000000000000000000000000000001000000000000000000000000000000000000 > > > > 80000002000000044000000000000000000000000010000000000000000000000000000001000100 > > 980000000000000000*0 > > > > 100000001000000000000000000000000000000000001000000000000000000000000000000000000 > > 118000000000000004252*0 > > > > 120000400000000000000000000000000010000000000000000000000000000000000000000000000 > > 138000000000000002126*0 > > > > 140000008000000000000000000000000000000001000000000000000000000000000000000000000 > > > > 150040000000000020000000001000000000000000000000000000000000000000000000000100000 > > 1680000000000000000*0 > > > > 170000000000080000000000000000000000000000000000000000000000010000000000000000000 > > 18800000000000000163*0 > > > > 190000000000102000000000000000000000000000000000000000000000100000010000000000000 > > > > 200000000000000000000000000000000000000000000000000000000000000000000000000000000 > > > > 210000000000800000000000000000000000000000000000000000000100000000000000000000000 > > 228000000000000002126*0 > > > > 230000000002000000000000000000000000000000000000000000010000000000000000000000000 > > 248000000000000004252*0 > > > > 250000000100000000000000000000000000000000000000100000000000000000000000000000000 > > 268000000000000002126*0 > > > > 270000000000020000000000000000000000000000000000000000000000000100000000000000000 > > 28800000000000000163*0 > > > > 290000000000001800000000000000000000000000000000000000000000000000001100000000000 > > > > 300000000004000000000000000000000000000000000000000000100000000000000000000000000 > > 31800000000000000163*0 > > > > 320000000080000000000000000000000000000000000000010000000000000000000000000000000 > > 338000000000000006378*0 > > > > 340000010000000000000000000000000000000010000000000000000000000000000000000000000 > > 3580000000000000111071*0 > > 000000000000000000 > > > > lhs - original > > > > This bitvector64 stores 4095 bits of a 4097-bit (25 set) > sequence in a > > 36-word array and 2 bits in the active word > > 0 0 1 1 2 2 3 3 4 4 5 5 6 > > 012345678901234567890123456789012345678901234567890123456789012 > > --------------------------------------------------------------- > > > > 00000000000000000000000000000000000000000000000000000000000000000000000000000000 > > > > 14000000000000000100000000000000000000000000000000000000000000000000000000000000 > > 28000000000000002126*0 > > > > 30000000000000040000000000000000000000000000000000000000000000000000000001000000 > > 4800000000000000163*0 > > > > 50020000000000000000000000100000000000000000000000000000000000000000000000000000 > > > > 60004000000000000000000000000100000000000000000000000000000000000000000000000000 > > > > 70000001000000000000000000000000000000000001000000000000000000000000000000000000 > > > > 80000002000000044000000000000000000000000010000000000000000000000000000001000100 > > 980000000000000000*0 > > > > 100000001000000000000000000000000000000000001000000000000000000000000000000000000 > > 118000000000000004252*0 > > > > 120000400000000000000000000000000010000000000000000000000000000000000000000000000 > > 138000000000000002126*0 > > > > 140000008000000000000000000000000000000001000000000000000000000000000000000000000 > > > > 150040000000000020000000001000000000000000000000000000000000000000000000000100000 > > 1680000000000000000*0 > > > > 170000000000080000000000000000000000000000000000000000000000010000000000000000000 > > 18800000000000000163*0 > > > > 190000000000102000000000000000000000000000000000000000000000100000010000000000000 > > > > 200000000000000000000000000000000000000000000000000000000000000000000000000000000 > > > > 210000000000800000000000000000000000000000000000000000000100000000000000000000000 > > 228000000000000002126*0 > > > > 230000000002000000000000000000000000000000000000000000010000000000000000000000000 > > 248000000000000004252*0 > > > > 250000000100000000000000000000000000000000000000100000000000000000000000000000000 > > 268000000000000002126*0 > > > > 270000000000020000000000000000000000000000000000000000000000000100000000000000000 > > 28800000000000000163*0 > > > > 290000000000001800000000000000000000000000000000000000000000000000001100000000000 > > > > 300000000004000000000000000000000000000000000000000000100000000000000000000000000 > > 31800000000000000163*0 > > > > 320000000080000000000000000000000000000000000000010000000000000000000000000000000 > > 338000000000000006378*0 > > > > 340000010000000000000000000000000000000010000000000000000000000000000000000000000 > > 3580000000000000111071*0 > > 000000000000000000 > > > > rhs - copy of original > > > > This bitvector64 stores 4095 bits of a 4097-bit (3 set) sequence > in a > > 7-word array and 2 bits in the active word > > 0 0 1 1 2 2 3 3 4 4 5 5 6 > > 012345678901234567890123456789012345678901234567890123456789012 > > --------------------------------------------------------------- > > 0800000000000000e882*0 > > > > 10000000000040000000000000000000000000000000000000000000000001000000000000000000 > > 28000000000000005315*0 > > > > 30000010000000000000000000000000000000010000000000000000000000000000000000000000 > > 4800000000000001a1638*0 > > > > 50000080000000000000000000000000000010000000000000000000000000000000000000000000 > > 680000000000000111071*0 > > 000000000000000000 > > > > rhs - original > > > > This bitvector64 stores 4095 bits of a 4097-bit (3 set) sequence > in a > > 7-word array and 2 bits in the active word > > 0 0 1 1 2 2 3 3 4 4 5 5 6 > > 012345678901234567890123456789012345678901234567890123456789012 > > --------------------------------------------------------------- > > 0800000000000000e882*0 > > > > 10000000000040000000000000000000000000000000000000000000000001000000000000000000 > > 28000000000000005315*0 > > > > 30000010000000000000000000000000000000010000000000000000000000000000000000000000 > > 4800000000000001a1638*0 > > > > 50000080000000000000000000000000000010000000000000000000000000000000000000000000 > > 680000000000000111071*0 > > 000000000000000000 > > > > Any guiding pointers are appreciated. > > > > Regards > > Srikanth Sundarrajan > > > > > > > > _____________________________________________________________ > > The information contained in this communication is intended > solely for > > the use of the individual or entity to whom it is addressed and > others > > authorized to receive it. It may contain confidential or legally > > privileged information. If you are not the intended recipient > you are > > hereby notified that any disclosure, copying, distribution or taking > > any action in reliance on the contents of this information is > strictly > > prohibited and may be unlawful. If you have received this > > communication in error, please notify us immediately by > responding to > > this email and then delete it from your system. The firm is neither > > liable for the proper and complete transmission of the information > > contained in this communication nor for any delay in its receipt. > > > > > > _______________________________________________ > > FastBit-users mailing list > > [email protected] <mailto:[email protected]> > > https://hpcrdm.lbl.gov/cgi-bin/mailman/listinfo/fastbit-users > > > > > > _____________________________________________________________ > The information contained in this communication is intended solely for > the use of the individual or entity to whom it is addressed and others > authorized to receive it. It may contain confidential or legally > privileged information. If you are not the intended recipient you are > hereby notified that any disclosure, copying, distribution or taking > any action in reliance on the contents of this information is strictly > prohibited and may be unlawful. If you have received this > communication in error, please notify us immediately by responding to > this email and then delete it from your system. The firm is neither > liable for the proper and complete transmission of the information > contained in this communication nor for any delay in its receipt. _______________________________________________ FastBit-users mailing list [email protected] https://hpcrdm.lbl.gov/cgi-bin/mailman/listinfo/fastbit-users
