| … | … | @@ -1776,6 +1776,7 @@ int intintIdentityPerfectOpenMPHash_SetupTable(intintHash_Table * table) { |
| 1776 | 1776 | (intintIdentityPerfectOpenMPHash_Bucket *) & table-> |
| 1777 | 1777 | tableData[sizeof(intintIdentityPerfectOpenMPHash_TableData)]; |
| 1778 | 1778 | if (intintHash_GetTableType(table) & ~HASH_SENTINEL_PERFECT_HASHES) { |
| 1779 | #pragma omp parallel for | |
| 1779 | 1780 | for (int index = 0; |
| 1780 | 1781 | index < |
| 1781 | 1782 | ((intintIdentityPerfectOpenMPHash_TableData *) table-> |
| … | … | @@ -1790,6 +1791,7 @@ int intintIdentityPerfectOpenMPHash_EmptyTable(intintHash_Table * table) { |
| 1790 | 1791 | intintIdentityPerfectOpenMPHash_Bucket *buckets = |
| 1791 | 1792 | (intintIdentityPerfectOpenMPHash_Bucket *) & table-> |
| 1792 | 1793 | tableData[sizeof(intintIdentityPerfectOpenMPHash_TableData)]; |
| 1794 | #pragma omp parallel for | |
| 1793 | 1795 | for (int index = 0; |
| 1794 | 1796 | index < |
| 1795 | 1797 | ((intintIdentityPerfectOpenMPHash_TableData *) table->tableData)-> |
| … | … | @@ -2932,6 +2934,7 @@ int intintIdentitySentinelPerfectOpenMPHash_SetupTable(intintHash_Table * table) |
| 2932 | 2934 | tableData[sizeof |
| 2933 | 2935 | (intintIdentitySentinelPerfectOpenMPHash_TableData)]; |
| 2934 | 2936 | if (intintHash_GetTableType(table) & ~HASH_SENTINEL_PERFECT_HASHES) { |
| 2937 | #pragma omp parallel for | |
| 2935 | 2938 | for (int index = 0; |
| 2936 | 2939 | index < |
| 2937 | 2940 | ((intintIdentitySentinelPerfectOpenMPHash_TableData *) |
| … | … | @@ -2949,6 +2952,7 @@ int intintIdentitySentinelPerfectOpenMPHash_EmptyTable(intintHash_Table * table) |
| 2949 | 2952 | (intintIdentitySentinelPerfectOpenMPHash_Bucket *) & table-> |
| 2950 | 2953 | tableData[sizeof |
| 2951 | 2954 | (intintIdentitySentinelPerfectOpenMPHash_TableData)]; |
| 2955 | #pragma omp parallel for | |
| 2952 | 2956 | for (int index = 0; |
| 2953 | 2957 | index < |
| 2954 | 2958 | ((intintIdentitySentinelPerfectOpenMPHash_TableData *) table-> |
| … | … | @@ -4194,6 +4198,7 @@ int intintLCGLinearOpenCompactOpenMPHash_SetupTable(intintHash_Table * table) { |
| 4194 | 4198 | (intintLCGLinearOpenCompactOpenMPHash_Bucket *) & table-> |
| 4195 | 4199 | tableData[sizeof(intintLCGLinearOpenCompactOpenMPHash_TableData)]; |
| 4196 | 4200 | if (intintHash_GetTableType(table) & ~HASH_SENTINEL_PERFECT_HASHES) { |
| 4201 | #pragma omp parallel for | |
| 4197 | 4202 | for (int index = 0; |
| 4198 | 4203 | index < |
| 4199 | 4204 | ((intintLCGLinearOpenCompactOpenMPHash_TableData *) table-> |
| … | … | @@ -4208,6 +4213,7 @@ int intintLCGLinearOpenCompactOpenMPHash_EmptyTable(intintHash_Table * table) { |
| 4208 | 4213 | intintLCGLinearOpenCompactOpenMPHash_Bucket *buckets = |
| 4209 | 4214 | (intintLCGLinearOpenCompactOpenMPHash_Bucket *) & table-> |
| 4210 | 4215 | tableData[sizeof(intintLCGLinearOpenCompactOpenMPHash_TableData)]; |
| 4216 | #pragma omp parallel for | |
| 4211 | 4217 | for (int index = 0; |
| 4212 | 4218 | index < |
| 4213 | 4219 | ((intintLCGLinearOpenCompactOpenMPHash_TableData *) table-> |
| … | … | @@ -5598,6 +5604,7 @@ int intintLCGQuadraticOpenCompactOpenMPHash_SetupTable(intintHash_Table * table) |
| 5598 | 5604 | tableData[sizeof |
| 5599 | 5605 | (intintLCGQuadraticOpenCompactOpenMPHash_TableData)]; |
| 5600 | 5606 | if (intintHash_GetTableType(table) & ~HASH_SENTINEL_PERFECT_HASHES) { |
| 5607 | #pragma omp parallel for | |
| 5601 | 5608 | for (int index = 0; |
| 5602 | 5609 | index < |
| 5603 | 5610 | ((intintLCGQuadraticOpenCompactOpenMPHash_TableData *) |
| … | … | @@ -5613,6 +5620,7 @@ int intintLCGQuadraticOpenCompactOpenMPHash_EmptyTable(intintHash_Table * table) |
| 5613 | 5620 | (intintLCGQuadraticOpenCompactOpenMPHash_Bucket *) & table-> |
| 5614 | 5621 | tableData[sizeof |
| 5615 | 5622 | (intintLCGQuadraticOpenCompactOpenMPHash_TableData)]; |
| 5623 | #pragma omp parallel for | |
| 5616 | 5624 | for (int index = 0; |
| 5617 | 5625 | index < |
| 5618 | 5626 | ((intintLCGQuadraticOpenCompactOpenMPHash_TableData *) table-> |
| … | … | @@ -24,7 +24,7 @@ HashFactory.h: HashFactory.hp HashFactory.hm perfectHash.hm compactHash.hm |
| 24 | 24 | ${CPREPROCESSOR} -CC -x c -imacros HashFactory.hm HashFactory.hp | ${INDENT} -linux -brf -o HashFactory.h |
| 25 | 25 | |
| 26 | 26 | HashFactory.c: HashFactory.cp HashFactory.cm HashFactory.cl perfectHash.cm compactHash.cm HashFactory.h |
| 27 | ${CPREPROCESSOR} -CC -x c -imacros HashFactory.cm HashFactory.cp | ${INDENT} -linux -brf -o HashFactory.c | |
| 27 | ${CPREPROCESSOR} -CC -x c -imacros HashFactory.cm HashFactory.cp | ${INDENT} -linux -brf | sed -e '/OMP_PRAGMA_PARALLEL_FOR/s/[[:space:]]*OMP_PRAGMA_PARALLEL_FOR;/#pragma omp parallel for/' > HashFactory.c | |
| 28 | 28 | ./embed_source.pl HashFactory.cl >> HashFactory.c |
| 29 | 29 | |
| 30 | 30 | HashFactory.cl: HashFactory.clp HashFactory.cm perfectHash.cm compactHash.cm |
| … | … | @@ -770,7 +770,7 @@ HashFactory.h: HashFactory.hp HashFactory.hm perfectHash.hm compactHash.hm |
| 770 | 770 | ${CPREPROCESSOR} -CC -x c -imacros HashFactory.hm HashFactory.hp | ${INDENT} -linux -brf -o HashFactory.h |
| 771 | 771 | |
| 772 | 772 | HashFactory.c: HashFactory.cp HashFactory.cm HashFactory.cl perfectHash.cm compactHash.cm HashFactory.h |
| 773 | ${CPREPROCESSOR} -CC -x c -imacros HashFactory.cm HashFactory.cp | ${INDENT} -linux -brf -o HashFactory.c | |
| 773 | ${CPREPROCESSOR} -CC -x c -imacros HashFactory.cm HashFactory.cp | ${INDENT} -linux -brf | sed -e '/OMP_PRAGMA_PARALLEL_FOR/s/[[:space:]]*OMP_PRAGMA_PARALLEL_FOR;/#pragma omp parallel for/' > HashFactory.c | |
| 774 | 774 | ./embed_source.pl HashFactory.cl >> HashFactory.c |
| 775 | 775 | |
| 776 | 776 | HashFactory.cl: HashFactory.clp HashFactory.cm perfectHash.cm compactHash.cm |
| … | … | @@ -72,7 +72,8 @@ |
| 72 | 72 | }NAME##MODIFIER##Hash_Bucket;\ |
| 73 | 73 | \ |
| 74 | 74 | |
| 75 | #define BASE_HASH_UTIL(NAME, MODIFIER, HASH_ID, KEY_TYPE, VALUE_TYPE, COMPRESS_FUNC, COMPRESS_FUNC_DATA, FACTORY_CREATE_EXP, FACTORY_DESTROY_EXP, CREATE_EXP, INIT_EXP, ALLOC_EXP, DESTROY_EXP)\ | |
| 75 | #define BASE_HASH_UTIL(NAME, MODIFIER, HASH_ID, KEY_TYPE, VALUE_TYPE, COMPRESS_FUNC, COMPRESS_FUNC_DATA, FACTORY_CREATE_EXP, FACTORY_DESTROY_EXP,\ | |
| 76 | CREATE_EXP, INIT_EXP, ALLOC_EXP, DESTROY_EXP, SETUP_EXP, EMPTY_EXP)\ | |
| 76 | 77 | \ |
| 77 | 78 | NAME##Hash_Table *NAME##MODIFIER##Hash_CreateTable(NAME##Hash_Factory* factory, int hashIndex, size_t keyRange, size_t numEntries, float loadFactor){\ |
| 78 | 79 | NAME##Hash_Table* table = (NAME##Hash_Table*)malloc(sizeof(NAME##Hash_Table));\ |
| … | … | @@ -116,9 +117,6 @@ |
| 116 | 117 | free(table);\ |
| 117 | 118 | return exitCode;\ |
| 118 | 119 | }\ |
| 119 | \ | |
| 120 | ||
| 121 | #define BASE_HASH_INIT(NAME, MODIFIER, SETUP_EXP, EMPTY_EXP)\ | |
| 122 | 120 | \ |
| 123 | 121 | int NAME##MODIFIER##Hash_SetupTable(NAME##Hash_Table *table){\ |
| 124 | 122 | int exitCode=0;\ |
| … | … | @@ -282,6 +280,8 @@ |
| 282 | 280 | #define OPENMP_HASH_SETUP_EXP(NAME, MODIFIER, INNER_EMPTY_EXP)\ |
| 283 | 281 | NAME##MODIFIER##Hash_Bucket *buckets = (NAME##MODIFIER##Hash_Bucket*)&table->tableData[sizeof(NAME##MODIFIER##Hash_TableData)];\ |
| 284 | 282 | if (intintHash_GetTableType(table) & ~HASH_SENTINEL_PERFECT_HASHES) {\ |
| 283 | OMP_PRAGMA_PARALLEL_FOR;\ | |
| 284 | \ | |
| 285 | 285 | for(int index = 0; index < ((NAME##MODIFIER##Hash_TableData*)table->tableData)->numBuckets; index++){\ |
| 286 | 286 | INNER_EMPTY_EXP\ |
| 287 | 287 | }\ |
| … | … | @@ -299,6 +299,7 @@ |
| 299 | 299 | |
| 300 | 300 | #define OPENMP_HASH_EMPTY_EXP(NAME, MODIFIER, INNER_EMPTY_EXP)\ |
| 301 | 301 | NAME##MODIFIER##Hash_Bucket *buckets = (NAME##MODIFIER##Hash_Bucket*)&table->tableData[sizeof(NAME##MODIFIER##Hash_TableData)];\ |
| 302 | OMP_PRAGMA_PARALLEL_FOR;\ | |
| 302 | 303 | for(int index = 0; index < ((NAME##MODIFIER##Hash_TableData*)table->tableData)->numBuckets; index++){\ |
| 303 | 304 | INNER_EMPTY_EXP\ |
| 304 | 305 | }\ |
| … | … | @@ -313,9 +314,8 @@ |
| 313 | 314 | \ |
| 314 | 315 | BASE_TYPES_DEFINE(NAME, MODIFIER, KEY_TYPE, VALUE_TYPE, COMPRESS_FUNC_DATA)\ |
| 315 | 316 | \ |
| 316 | BASE_HASH_UTIL(NAME, MODIFIER, HASH_ID, KEY_TYPE, VALUE_TYPE, COMPRESS_FUNC, COMPRESS_FUNC_DATA, FACTORY_CREATE_EXP, , CREATE_EXP, INIT_EXP, ,)\ | |
| 317 | \ | |
| 318 | BASE_HASH_INIT(NAME, MODIFIER, HASH_SETUP_EXP(NAME, MODIFIER, INNER_EMPTY_EXP), HASH_EMPTY_EXP(NAME, MODIFIER, INNER_EMPTY_EXP))\ | |
| 317 | BASE_HASH_UTIL(NAME, MODIFIER, HASH_ID, KEY_TYPE, VALUE_TYPE, COMPRESS_FUNC, COMPRESS_FUNC_DATA, FACTORY_CREATE_EXP, , CREATE_EXP, INIT_EXP, , ,\ | |
| 318 | HASH_SETUP_EXP(NAME, MODIFIER, INNER_EMPTY_EXP), HASH_EMPTY_EXP(NAME, MODIFIER, INNER_EMPTY_EXP))\ | |
| 319 | 319 | \ |
| 320 | 320 | BASE_HASH_METHODS(NAME, MODIFIER, KEY_TYPE, VALUE_TYPE, COMPRESS_FUNC, COMPRESS_FUNC_DATA, SEARCH_EXP, CMPXCHG_HASH_READ_KEY_EXP, ,##__VA_ARGS__)\ |
| 321 | 321 | \ |
| … | … | @@ -543,9 +543,9 @@ |
| 543 | 543 | \ |
| 544 | 544 | BASE_TYPES_DEFINE(NAME, MODIFIER##CL, KEY_TYPE, VALUE_TYPE, COMPRESS_FUNC_DATA)\ |
| 545 | 545 | \ |
| 546 | BASE_HASH_UTIL(NAME, MODIFIER##CL, HASH_ID, KEY_TYPE, VALUE_TYPE, COMPRESS_FUNC, COMPRESS_FUNC_DATA, CL_FACTORY_CREATE_EXP(NAME, MODIFIER, FACTORY_CREATE_EXP, STRINGIFY(CL_UTIL_PROGRAM(NAME, MODIFIER, KEY_TYPE, VALUE_TYPE, BASE_TYPES_DEFINE, COMPRESS_FUNC_DATA, INNER_EMPTY_EXP))), CL_FACTORY_DESTROY_EXP(NAME, MODIFIER, ), CL_CREATE_EXP(NAME, MODIFIER, CREATE_EXP), INIT_EXP, CL_ALLOC_EXP(NAME, MODIFIER), CL_DESTROY_EXP(NAME))\ | |
| 547 | \ | |
| 548 | BASE_HASH_INIT(NAME, MODIFIER##CL, CL_SETUP_EXP(NAME, MODIFIER, ), CL_EMPTY_EXP(NAME, MODIFIER, ))\ | |
| 546 | BASE_HASH_UTIL(NAME, MODIFIER##CL, HASH_ID, KEY_TYPE, VALUE_TYPE, COMPRESS_FUNC, COMPRESS_FUNC_DATA, CL_FACTORY_CREATE_EXP(NAME, MODIFIER, FACTORY_CREATE_EXP,\ | |
| 547 | STRINGIFY(CL_UTIL_PROGRAM(NAME, MODIFIER, KEY_TYPE, VALUE_TYPE, BASE_TYPES_DEFINE, COMPRESS_FUNC_DATA, INNER_EMPTY_EXP))), CL_FACTORY_DESTROY_EXP(NAME, MODIFIER, ),\ | |
| 548 | CL_CREATE_EXP(NAME, MODIFIER, CREATE_EXP), INIT_EXP, CL_ALLOC_EXP(NAME, MODIFIER), CL_DESTROY_EXP(NAME), CL_SETUP_EXP(NAME, MODIFIER, ), CL_EMPTY_EXP(NAME, MODIFIER, ))\ | |
| 549 | 549 | \ |
| 550 | 550 | int NAME##MODIFIER##CLHash_QuerySingle(NAME##Hash_Table *table, KEY_TYPE key, VALUE_TYPE *valueOutput){\ |
| 551 | 551 | return NAME##MODIFIER##CLHash_Query(table, 1, &key, valueOutput);\ |
| … | … | @@ -651,9 +651,8 @@ |
| 651 | 651 | \ |
| 652 | 652 | BASE_TYPES_DEFINE(NAME, MODIFIER, KEY_TYPE, VALUE_TYPE, COMPRESS_FUNC_DATA)\ |
| 653 | 653 | \ |
| 654 | BASE_HASH_UTIL(NAME, MODIFIER, HASH_ID, KEY_TYPE, VALUE_TYPE, COMPRESS_FUNC, COMPRESS_FUNC_DATA, FACTORY_CREATE_EXP, , CREATE_EXP, INIT_EXP, , )\ | |
| 655 | \ | |
| 656 | BASE_HASH_INIT(NAME, MODIFIER, OPENMP_HASH_SETUP_EXP(NAME, MODIFIER, INNER_EMPTY_EXP), OPENMP_HASH_EMPTY_EXP(NAME, MODIFIER, INNER_EMPTY_EXP))\ | |
| 654 | BASE_HASH_UTIL(NAME, MODIFIER, HASH_ID, KEY_TYPE, VALUE_TYPE, COMPRESS_FUNC, COMPRESS_FUNC_DATA, FACTORY_CREATE_EXP, , CREATE_EXP, INIT_EXP, , ,\ | |
| 655 | OPENMP_HASH_SETUP_EXP(NAME, MODIFIER, INNER_EMPTY_EXP), OPENMP_HASH_EMPTY_EXP(NAME, MODIFIER, INNER_EMPTY_EXP))\ | |
| 657 | 656 | \ |
| 658 | 657 | BASE_HASH_METHODS(NAME, MODIFIER, KEY_TYPE, VALUE_TYPE, COMPRESS_FUNC, COMPRESS_FUNC_DATA, SEARCH_EXP, CMPXCHG_HASH_READ_KEY_EXP, ,##__VA_ARGS__)\ |
| 659 | 658 | \ |
| … | … | @@ -57,7 +57,7 @@ |
| 57 | 57 | |
| 58 | 58 | #define COMPACT_OPENMP_HASH_DEFINE(NAME, MODIFIER, HASH_ID, KEY_TYPE, VALUE_TYPE, COMPRESS_FUNC, COMPRESS_FUNC_DATA, INIT_EXP, SEARCH_EXP, ...)\ |
| 59 | 59 | \ |
| 60 | BASE_HASH_DEFINE(NAME, MODIFIER##CompactOpenMP, HASH_ID, KEY_TYPE, VALUE_TYPE, KEY_VALUE_BASE_HASH_TYPES_DEFINE, COMPRESS_FUNC, COMPRESS_FUNC_DATA,,, INIT_EXP, SEARCH_EXP, KEY_VALUE_HASH_INNER_EMPTY_EXP, ##__VA_ARGS__)\ | |
| 60 | OPENMP_BASE_HASH_DEFINE(NAME, MODIFIER##CompactOpenMP, HASH_ID, KEY_TYPE, VALUE_TYPE, KEY_VALUE_BASE_HASH_TYPES_DEFINE, COMPRESS_FUNC, COMPRESS_FUNC_DATA,,, INIT_EXP, SEARCH_EXP, KEY_VALUE_HASH_INNER_EMPTY_EXP, ##__VA_ARGS__)\ | |
| 61 | 61 | \ |
| 62 | 62 | |
| 63 | 63 | #define OPEN_COMPACT_HASH_INIT_EXP(NAME, MODIFIER, INIT_EXP) \ |
| … | … | @@ -108,7 +108,7 @@ |
| 108 | 108 | |
| 109 | 109 | #define SENTINEL_PERFECT_OPENMP_HASH_DEFINE(NAME, MODIFIER, HASH_ID, KEY_TYPE, VALUE_TYPE, COMPRESS_FUNC, COMPRESS_FUNC_DATA, INIT_EXP)\ |
| 110 | 110 | \ |
| 111 | BASE_HASH_DEFINE(NAME, MODIFIER##SentinelPerfectOpenMP, HASH_ID, KEY_TYPE, VALUE_TYPE, SENTINEL_VALUE_BASE_HASH_TYPES_DEFINE, COMPRESS_FUNC, COMPRESS_FUNC_DATA,,, SENTINEL_PERFECT_HASH_INIT_EXP(NAME, MODIFIER##SentinelPerfectOpenMP, INIT_EXP, COMPRESS_FUNC, COMPRESS_FUNC_DATA, KEY_TYPE), SENTINEL_PERFECT_HASH_SEARCH_EXP, SENTINEL_VALUE_HASH_INNER_EMPTY_EXP(NAME, MODIFIER##SentinelPerfectOpenMP))\ | |
| 111 | OPENMP_BASE_HASH_DEFINE(NAME, MODIFIER##SentinelPerfectOpenMP, HASH_ID, KEY_TYPE, VALUE_TYPE, SENTINEL_VALUE_BASE_HASH_TYPES_DEFINE, COMPRESS_FUNC, COMPRESS_FUNC_DATA,,, SENTINEL_PERFECT_HASH_INIT_EXP(NAME, MODIFIER##SentinelPerfectOpenMP, INIT_EXP, COMPRESS_FUNC, COMPRESS_FUNC_DATA, KEY_TYPE), SENTINEL_PERFECT_HASH_SEARCH_EXP, SENTINEL_VALUE_HASH_INNER_EMPTY_EXP(NAME, MODIFIER##SentinelPerfectOpenMP))\ | |
| 112 | 112 | \ |
| 113 | 113 | |
| 114 | 114 | #define IDENTITY_PERFECT_CL_HASH_KERN_DEFINE(NAME, KEY_TYPE, VALUE_TYPE)\ |