OverviewFilesCommitsIssuesDocsReleasesPeers

opencog-CompactHash commits / 2f7d6ab

Adding perfect hash openmp to headers
2f7d6ab2fb73b2d2c0ae283a084b4899059244f3
by Bob Robey <brobey@lanl.gov> · 2015-10-25T04:17:46.000Z

Changed files (4) +140 -0

HashFactory/HashFactory.h +105 -0
……@@ -354,6 +354,51 @@ int intintIdentityPerfectCLHash_BufferInsertNoOverwrite(intintHash_Table *
354354 size_t numEntries,
355355 cl_mem keysBuffer,
356356 cl_mem valuesBuffer);
357int intintIdentityPerfectOpenMPHash_CreateFactory(intintHash_Factory * factory,
358 int hashIndex);
359int intintIdentityPerfectOpenMPHash_DestroyFactory(intintHash_Factory * factory,
360 int hashIndex);
361intintHash_Table *intintIdentityPerfectOpenMPHash_CreateTable(intintHash_Factory
362 * factory,
363 int hashIndex,
364 size_t keyRange,
365 size_t numEntries,
366 float loadFactor);
367int intintIdentityPerfectOpenMPHash_InitTable(intintHash_Table * table,
368 va_list args);
369int intintIdentityPerfectOpenMPHash_DestroyTable(intintHash_Table * table);
370char *intintIdentityPerfectOpenMPHash_Report(intintHash_Table * table);
371int intintIdentityPerfectOpenMPHash_EmptyTable(intintHash_Table * table);
372int intintIdentityPerfectOpenMPHash_Query(intintHash_Table * table,
373 size_t numKeys, int *keys,
374 int *valuesOutput);
375int intintIdentityPerfectOpenMPHash_QuerySingle(intintHash_Table * table,
376 int key, int *valueOutput);
377int intintIdentityPerfectOpenMPHash_Insert(intintHash_Table * table,
378 size_t numEntries, int *keys,
379 int *values);
380int intintIdentityPerfectOpenMPHash_InsertSingle(intintHash_Table * table,
381 int key, int value);
382int intintIdentityPerfectOpenMPHash_InsertNoOverwrite(intintHash_Table * table,
383 size_t numEntries,
384 int *keys, int *values);
385int intintIdentityPerfectOpenMPHash_InsertSingleNoOverwrite(intintHash_Table *
386 table, int key,
387 int value);
388int intintIdentityPerfectOpenMPHash_BufferQuery(intintHash_Table * table,
389 size_t numKeys,
390 cl_mem keysBuffer,
391 cl_mem valuesOutputBuffer);
392int intintIdentityPerfectOpenMPHash_BufferInsert(intintHash_Table * table,
393 size_t numEntries,
394 cl_mem keysBuffer,
395 cl_mem valuesBuffer);
396int intintIdentityPerfectOpenMPHash_BufferInsertNoOverwrite(intintHash_Table *
397 table,
398 size_t numEntries,
399 cl_mem keysBuffer,
400 cl_mem
401 valuesBuffer);
357402int intintIdentitySentinelPerfectHash_CreateFactory(intintHash_Factory *
358403 factory, int hashIndex);
359404int intintIdentitySentinelPerfectHash_DestroyFactory(intintHash_Factory *
……@@ -436,6 +481,66 @@ int intintIdentitySentinelPerfectCLHash_BufferInsertNoOverwrite(intintHash_Table
436481 keysBuffer,
437482 cl_mem
438483 valuesBuffer);
484int intintIdentitySentinelPerfectOpenMPHash_CreateFactory(intintHash_Factory *
485 factory,
486 int hashIndex);
487int intintIdentitySentinelPerfectOpenMPHash_DestroyFactory(intintHash_Factory *
488 factory,
489 int hashIndex);
490intintHash_Table
491 *intintIdentitySentinelPerfectOpenMPHash_CreateTable(intintHash_Factory *
492 factory, int hashIndex,
493 size_t keyRange,
494 size_t numEntries,
495 float loadFactor);
496int intintIdentitySentinelPerfectOpenMPHash_InitTable(intintHash_Table * table,
497 va_list args);
498int intintIdentitySentinelPerfectOpenMPHash_DestroyTable(intintHash_Table *
499 table);
500char *intintIdentitySentinelPerfectOpenMPHash_Report(intintHash_Table * table);
501int intintIdentitySentinelPerfectOpenMPHash_EmptyTable(intintHash_Table *
502 table);
503int intintIdentitySentinelPerfectOpenMPHash_Query(intintHash_Table * table,
504 size_t numKeys, int *keys,
505 int *valuesOutput);
506int intintIdentitySentinelPerfectOpenMPHash_QuerySingle(intintHash_Table *
507 table, int key,
508 int *valueOutput);
509int intintIdentitySentinelPerfectOpenMPHash_Insert(intintHash_Table * table,
510 size_t numEntries, int *keys,
511 int *values);
512int intintIdentitySentinelPerfectOpenMPHash_InsertSingle(intintHash_Table *
513 table, int key,
514 int value);
515int intintIdentitySentinelPerfectOpenMPHash_InsertNoOverwrite(intintHash_Table *
516 table,
517 size_t numEntries,
518 int *keys,
519 int *values);
520int
521intintIdentitySentinelPerfectOpenMPHash_InsertSingleNoOverwrite(intintHash_Table
522 * table,
523 int key,
524 int value);
525int intintIdentitySentinelPerfectOpenMPHash_BufferQuery(intintHash_Table *
526 table, size_t numKeys,
527 cl_mem keysBuffer,
528 cl_mem
529 valuesOutputBuffer);
530int intintIdentitySentinelPerfectOpenMPHash_BufferInsert(intintHash_Table *
531 table,
532 size_t numEntries,
533 cl_mem keysBuffer,
534 cl_mem valuesBuffer);
535int
536intintIdentitySentinelPerfectOpenMPHash_BufferInsertNoOverwrite(intintHash_Table
537 * table,
538 size_t
539 numEntries,
540 cl_mem
541 keysBuffer,
542 cl_mem
543 valuesBuffer);
439544int intintLCGLinearOpenCompactHash_CreateFactory(intintHash_Factory * factory,
440545 int hashIndex);
441546int intintLCGLinearOpenCompactHash_DestroyFactory(intintHash_Factory * factory,
HashFactory/HashFactory.hm +4 -0
……@@ -101,10 +101,14 @@
101101 \
102102 IDENTITY_PERFECT_CL_HASH_DECLARE(NAME, KEY_TYPE, VALUE_TYPE)\
103103 \
104 IDENTITY_PERFECT_OPENMP_HASH_DECLARE(NAME, KEY_TYPE, VALUE_TYPE)\
105 \
104106 IDENTITY_SENTINEL_PERFECT_HASH_DECLARE(NAME, KEY_TYPE, VALUE_TYPE)\
105107 \
106108 IDENTITY_SENTINEL_PERFECT_CL_HASH_DECLARE(NAME, KEY_TYPE, VALUE_TYPE)\
107109 \
110 IDENTITY_SENTINEL_PERFECT_OPENMP_HASH_DECLARE(NAME, KEY_TYPE, VALUE_TYPE)\
111 \
108112 LCG_LINEAR_OPEN_COMPACT_HASH_DECLARE(NAME, KEY_TYPE, VALUE_TYPE)\
109113 \
110114 LCG_LINEAR_OPEN_COMPACT_CL_HASH_DECLARE(NAME, KEY_TYPE, VALUE_TYPE)\
HashFactory/baseHash.hm +11 -0
……@@ -80,3 +80,14 @@
8080 int NAME##MODIFIER##CLHash_BufferInsertNoOverwrite(NAME##Hash_Table *table, size_t numEntries, cl_mem keysBuffer, cl_mem valuesBuffer);\
8181\
8282
83#define OPENMP_HASH_DECLARE(NAME, MODIFIER, KEY_TYPE, VALUE_TYPE)\
84 \
85 BASE_HASH_DECLARE(NAME, MODIFIER##OpenMP, KEY_TYPE, VALUE_TYPE)\
86 \
87 int NAME##MODIFIER##OpenMPHash_BufferQuery(NAME##Hash_Table *table, size_t numKeys, cl_mem keysBuffer, cl_mem valuesOutputBuffer);\
88 \
89 int NAME##MODIFIER##OpenMPHash_BufferInsert(NAME##Hash_Table *table, size_t numEntries, cl_mem keysBuffer, cl_mem valuesBuffer);\
90 \
91 int NAME##MODIFIER##OpenMPHash_BufferInsertNoOverwrite(NAME##Hash_Table *table, size_t numEntries, cl_mem keysBuffer, cl_mem valuesBuffer);\
92\
93
HashFactory/perfectHash.hm +20 -0
……@@ -60,6 +60,16 @@
6060 PERFECT_CL_HASH_DECLARE(NAME, Identity, KEY_TYPE, VALUE_TYPE)\
6161\
6262
63#define PERFECT_OPENMP_HASH_DECLARE(NAME, MODIFIER, KEY_TYPE, VALUE_TYPE)\
64 \
65 OPENMP_HASH_DECLARE(NAME, MODIFIER##Perfect, KEY_TYPE, VALUE_TYPE)\
66\
67
68#define IDENTITY_PERFECT_OPENMP_HASH_DECLARE(NAME, KEY_TYPE, VALUE_TYPE)\
69 \
70 PERFECT_OPENMP_HASH_DECLARE(NAME, Identity, KEY_TYPE, VALUE_TYPE)\
71\
72
6373#define SENTINEL_PERFECT_HASH_DECLARE(NAME, MODIFIER, KEY_TYPE, VALUE_TYPE)\
6474 \
6575 BASE_HASH_DECLARE(NAME, MODIFIER##SentinelPerfect, KEY_TYPE, VALUE_TYPE)\
……@@ -80,3 +90,13 @@
8090 SENTINEL_PERFECT_CL_HASH_DECLARE(NAME, Identity, KEY_TYPE, VALUE_TYPE)\
8191\
8292
93#define SENTINEL_PERFECT_OPENMP_HASH_DECLARE(NAME, MODIFIER, KEY_TYPE, VALUE_TYPE)\
94 \
95 OPENMP_HASH_DECLARE(NAME, MODIFIER##SentinelPerfect, KEY_TYPE, VALUE_TYPE)\
96\
97
98#define IDENTITY_SENTINEL_PERFECT_OPENMP_HASH_DECLARE(NAME, KEY_TYPE, VALUE_TYPE)\
99 \
100 SENTINEL_PERFECT_OPENMP_HASH_DECLARE(NAME, Identity, KEY_TYPE, VALUE_TYPE)\
101\
102