Changeset: 9c273bde3d72 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=9c273bde3d72 Modified Files: monetdb5/extras/crackers/crackers_holistic.c monetdb5/extras/crackers/crackers_holistic.h monetdb5/extras/crackers/crackers_selectholpl_ops.mx monetdb5/extras/crackers/crackers_selectpl_ops.mx Branch: holindex Log Message:
Maintain both locking implementations for experimental analysis. diffs (truncated from 345 to 300 lines): diff --git a/monetdb5/extras/crackers/crackers_holistic.c b/monetdb5/extras/crackers/crackers_holistic.c --- a/monetdb5/extras/crackers/crackers_holistic.c +++ b/monetdb5/extras/crackers/crackers_holistic.c @@ -29,7 +29,8 @@ static FrequencyNode *_InternalFrequency static MT_Id *idletime_thread; static MT_Id *cpuload_thread; MT_Lock frequencylock; -MT_Lock CRKIndexLock[LOCKS]; +//MT_Lock CRKIndexLock[LOCKS]; +MT_Lock CRKIndexLock; pthread_rwlock_t CRKFirstPieceRWLock; IdleFuncPtr IdleFunc; @@ -38,7 +39,7 @@ CRKinitHolistic(int *ret) { char *p = getenv("MOTIVATION_EXPERIMENT"); int motivation_experiment=0; - int i=0; + //int i=0; if (p == NULL){ fprintf(stderr, "Error initHolistic: environment variable is missing.\n"); @@ -51,8 +52,9 @@ CRKinitHolistic(int *ret) idletime_thread = GDKzalloc(sizeof(*idletime_thread)); cpuload_thread = GDKzalloc(sizeof(*idletime_thread)); MT_lock_init(&frequencylock, "FrequencyStruct"); - for (i=0;i<LOCKS;i++) - MT_lock_init(&CRKIndexLock[i], "Cracker Index Lock"); + //for (i=0;i<LOCKS;i++) + // MT_lock_init(&CRKIndexLock[i], "Cracker Index Lock"); + MT_lock_init(&CRKIndexLock, "Cracker Index Lock"); MT_create_thread(idletime_thread,(void (*)(void *))HeartbeatCPUload, IdleFunc, MT_THR_JOINABLE); if (motivation_experiment != 0) MT_create_thread(cpuload_thread,(void (*)(void *))HeartbeatCPUload_total, NULL, MT_THR_JOINABLE); diff --git a/monetdb5/extras/crackers/crackers_holistic.h b/monetdb5/extras/crackers/crackers_holistic.h --- a/monetdb5/extras/crackers/crackers_holistic.h +++ b/monetdb5/extras/crackers/crackers_holistic.h @@ -39,7 +39,8 @@ typedef struct frequency{ typedef str (*IdleFuncPtr)(int *); crackers_export MT_Lock frequencylock; -crackers_export MT_Lock CRKIndexLock[LOCKS]; +//crackers_export MT_Lock CRKIndexLock[LOCKS]; +crackers_export MT_Lock CRKIndexLock; crackers_export pthread_rwlock_t CRKFirstPieceRWLock; crackers_export FrequencyNode *getFrequencyStruct(char which); diff --git a/monetdb5/extras/crackers/crackers_selectholpl_ops.mx b/monetdb5/extras/crackers/crackers_selectholpl_ops.mx --- a/monetdb5/extras/crackers/crackers_selectholpl_ops.mx +++ b/monetdb5/extras/crackers/crackers_selectholpl_ops.mx @@ -203,7 +203,7 @@ CRKrandomholpl_@1(int *bid, bit *inclusi double wt=0, ct=0; int countBatElements=0; int L1=0; /*Number of elements that can fit into L1 cache (size: 32KB)*/ - int mod_bid=0; + //int mod_bid=0; FILE *ofp; char *outputFilename1; FrequencyNode* FN; @@ -230,9 +230,10 @@ CRKrandomholpl_@1(int *bid, bit *inclusi exit(1); } - mod_bid=ABS(*bid)%LOCKS; + //mod_bid=ABS(*bid)%LOCKS; - MT_lock_set(&CRKIndexLock[mod_bid],"Cracker Index Lock"); + //MT_lock_set(&CRKIndexLock[mod_bid],"Cracker Index Lock"); + MT_lock_set(&CRKIndexLock,"Cracker Index Lock"); gettimeofday(&tv1,0); wt+=dt(tv0,tv1); tv0=tv1; @@ -253,7 +254,8 @@ CRKrandomholpl_@1(int *bid, bit *inclusi idxFirst = BUNfirst(c); - MT_lock_unset(&CRKIndexLock[mod_bid],"Cracker Index Lock"); + //MT_lock_unset(&CRKIndexLock[mod_bid],"Cracker Index Lock"); + MT_lock_unset(&CRKIndexLock,"Cracker Index Lock"); countBatElements=BATcount(b); @@ -481,7 +483,8 @@ createView: if (createIndex==1) { - MT_lock_unset(&CRKIndexLock[mod_bid],"Cracker Index Lock"); + //MT_lock_unset(&CRKIndexLock[mod_bid],"Cracker Index Lock"); + MT_lock_unset(&CRKIndexLock,"Cracker Index Lock"); createIndex=0; } @@ -517,7 +520,7 @@ createView: bit copy=TRUE; int countBatElements=0; int L1=0; /*Number of elements that can fit into L1 cache (size: 32KB)*/ - int mod_bid=0; + //int mod_bid=0; FILE *ofp; char *outputFilename1; FrequencyNode* FN; @@ -539,9 +542,10 @@ createView: exit(1); } - mod_bid=ABS(*bid)%LOCKS; + //mod_bid=ABS(*bid)%LOCKS; - MT_lock_set(&CRKIndexLock[mod_bid],"Cracker Index Lock"); + //MT_lock_set(&CRKIndexLock[mod_bid],"Cracker Index Lock"); + MT_lock_set(&CRKIndexLock,"Cracker Index Lock"); //gettimeofday(&tv1,0); wt+=dt(tv0,tv1); tv0=tv1; @@ -729,7 +733,8 @@ createView: } - MT_lock_unset(&CRKIndexLock[mod_bid],"Cracker Index Lock"); + //MT_lock_unset(&CRKIndexLock[mod_bid],"Cracker Index Lock"); + MT_lock_unset(&CRKIndexLock,"Cracker Index Lock"); //gettimeofday(&tv1,0); ct+=dt(tv0,tv1); tv0=tv1; @@ -924,7 +929,8 @@ createView: if (createIndex==1) { - MT_lock_unset(&CRKIndexLock[mod_bid],"Cracker Index Lock"); + //MT_lock_unset(&CRKIndexLock[mod_bid],"Cracker Index Lock"); + MT_lock_unset(&CRKIndexLock,"Cracker Index Lock"); createIndex=0; } @@ -1359,7 +1365,7 @@ CRKRangeLeftNilTree_@1(int *vid, int *bi struct timeval tv0, tv1; double wt=0, ct=0; int L1=0; - int mod_bid=0; + //int mod_bid=0; int countBatElements=0; FrequencyNode* FN; FrequencyNode *FrequencyStructA = getFrequencyStruct('A'); @@ -1382,9 +1388,10 @@ CRKRangeLeftNilTree_@1(int *vid, int *bi L1=32000/ATOMsize(TYPE_@1); - mod_bid=ABS(*bid)%LOCKS; + //mod_bid=ABS(*bid)%LOCKS; - MT_lock_set(&CRKIndexLock[mod_bid],"Cracker Index Lock"); + //MT_lock_set(&CRKIndexLock[mod_bid],"Cracker Index Lock"); + MT_lock_set(&CRKIndexLock,"Cracker Index Lock"); gettimeofday(&tv1,0); wt+=dt(tv0,tv1); tv0=tv1; if (*inclusiveHgh == TRUE) HBound = FALSE; @@ -1477,7 +1484,8 @@ CRKRangeLeftNilTree_@1(int *vid, int *bi idxFirst = BUNfirst(c); - MT_lock_unset(&CRKIndexLock[mod_bid],"Cracker Index Lock"); + //MT_lock_unset(&CRKIndexLock[mod_bid],"Cracker Index Lock"); + MT_lock_unset(&CRKIndexLock,"Cracker Index Lock"); gettimeofday(&tv1,0); ct+=dt(tv0,tv1); tv0=tv1; @@ -1564,7 +1572,8 @@ CRKRangeLeftNilTree_@1(int *vid, int *bi if (createIndex==1) { - MT_lock_unset(&CRKIndexLock[mod_bid],"Cracker Index Lock"); + //MT_lock_unset(&CRKIndexLock[mod_bid],"Cracker Index Lock"); + MT_lock_unset(&CRKIndexLock,"Cracker Index Lock"); createIndex=0; } @@ -1587,7 +1596,7 @@ CRKRangeRightNilTree_@1(int *vid, int *b BUN idxFirst = BUN_NONE; int incr_pieces=0; int L1=0; - int mod_bid=0; + //int mod_bid=0; int countBatElements; FrequencyNode* FN; FrequencyNode *FrequencyStructA = getFrequencyStruct('A'); @@ -1611,9 +1620,10 @@ CRKRangeRightNilTree_@1(int *vid, int *b L1=32000/ATOMsize(TYPE_@1); - mod_bid=ABS(*bid)%LOCKS; + //mod_bid=ABS(*bid)%LOCKS; - MT_lock_set(&CRKIndexLock[mod_bid],"Cracker Index Lock"); + //MT_lock_set(&CRKIndexLock[mod_bid],"Cracker Index Lock"); + MT_lock_set(&CRKIndexLock,"Cracker Index Lock"); m = existsCrackerIndex(*bid); @@ -1695,7 +1705,8 @@ CRKRangeRightNilTree_@1(int *vid, int *b idxFirst = BUNfirst(c); - MT_lock_unset(&CRKIndexLock[mod_bid],"Cracker Index Lock"); + //MT_lock_unset(&CRKIndexLock[mod_bid],"Cracker Index Lock"); + MT_lock_unset(&CRKIndexLock,"Cracker Index Lock"); vh = BUNlast(b)-(oid)1; @@ -1778,7 +1789,8 @@ CRKRangeRightNilTree_@1(int *vid, int *b if (createIndex==1) { - MT_lock_unset(&CRKIndexLock[mod_bid],"Cracker Index Lock"); + //MT_lock_unset(&CRKIndexLock[mod_bid],"Cracker Index Lock"); + MT_lock_unset(&CRKIndexLock,"Cracker Index Lock"); createIndex=0; } diff --git a/monetdb5/extras/crackers/crackers_selectpl_ops.mx b/monetdb5/extras/crackers/crackers_selectpl_ops.mx --- a/monetdb5/extras/crackers/crackers_selectpl_ops.mx +++ b/monetdb5/extras/crackers/crackers_selectpl_ops.mx @@ -272,7 +272,8 @@ createView: if (createIndex==1) { - MT_lock_unset(&CRKIndexLock[mod_bid],"Cracker Index Lock"); + //MT_lock_unset(&CRKIndexLock[mod_bid],"Cracker Index Lock"); + MT_lock_unset(&CRKIndexLock,"Cracker Index Lock"); createIndex=0; } @@ -307,7 +308,7 @@ createView: bit copy=TRUE; FILE *ofp; char *outputFilename1; - int mod_bid=0; + //int mod_bid=0; //gettimeofday(&tv0,0); @@ -323,9 +324,10 @@ createView: exit(1); } - mod_bid=ABS(*bid)%LOCKS; + //mod_bid=ABS(*bid)%LOCKS; - MT_lock_set(&CRKIndexLock[mod_bid],"Cracker Index Lock"); + //MT_lock_set(&CRKIndexLock[mod_bid],"Cracker Index Lock"); + MT_lock_set(&CRKIndexLock,"Cracker Index Lock"); //gettimeofday(&tv1,0); wt+=dt(tv0,tv1); tv0=tv1; @@ -500,7 +502,8 @@ createView: } - MT_lock_unset(&CRKIndexLock[mod_bid],"Cracker Index Lock"); + //MT_lock_unset(&CRKIndexLock[mod_bid],"Cracker Index Lock"); + MT_lock_unset(&CRKIndexLock,"Cracker Index Lock"); //gettimeofday(&tv1,0); ct+=dt(tv0,tv1); tv0=tv1; retry:; @@ -675,7 +678,8 @@ createView: if (createIndex==1) { - MT_lock_unset(&CRKIndexLock[mod_bid],"Cracker Index Lock"); + //MT_lock_unset(&CRKIndexLock[mod_bid],"Cracker Index Lock"); + MT_lock_unset(&CRKIndexLock,"Cracker Index Lock"); createIndex=0; } @@ -1104,11 +1108,12 @@ CRKRangeLeftNilTree_@1(int *vid, int *bi struct Node *lowNode=NULL; pthread_rwlock_t *plock=0; BUN idxFirst = BUN_NONE; - int mod_bid=0; + //int mod_bid=0; - mod_bid=ABS(*bid)%LOCKS; + //mod_bid=ABS(*bid)%LOCKS; - MT_lock_set(&CRKIndexLock[mod_bid],"Cracker Index Lock"); + //MT_lock_set(&CRKIndexLock[mod_bid],"Cracker Index Lock"); + MT_lock_set(&CRKIndexLock,"Cracker Index Lock"); if (*inclusiveHgh == TRUE) HBound = FALSE; else HBound = TRUE; @@ -1181,7 +1186,8 @@ CRKRangeLeftNilTree_@1(int *vid, int *bi idxFirst = BUNfirst(c); - MT_lock_unset(&CRKIndexLock[mod_bid],"Cracker Index Lock"); + //MT_lock_unset(&CRKIndexLock[mod_bid],"Cracker Index Lock"); + MT_lock_unset(&CRKIndexLock,"Cracker Index Lock"); vl = BUNfirst(b); @@ -1233,7 +1239,8 @@ CRKRangeLeftNilTree_@1(int *vid, int *bi _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list