A forum for Spin users

You are not logged in.

#1 2012-04-03 12:26:17

Registered: 2012-03-23
Posts: 2

How to provide more memory for hash than the limit -w27

Is there anyway, one could provide more memory for hash table than that given by pan -w27, I tried pan -w28, but I get the following

warning: using -w27 as max usable value

A lot of hash conflicts are resolved though I have more RAM for hash table:
State-vector 96 byte, depth reached 3737, errors: 0
35455397 states, stored
47190888 states, matched
82646285 transitions (= stored+matched)
  4397358 atomic steps
hash conflicts:   2234851 (resolved)

Stats on memory usage (in Megabytes):
3922.297    equivalent memory usage for states (stored*(State-vector + overhead))
1431.008    actual memory usage for states (compression: 36.48%)
             state-vector as stored = 22 byte + 20 byte overhead
  512.000    memory used for hash table (-w27)
    0.382    memory used for DFS stack (-m10000)
1943.143    total actual memory usage

And I have more RAM to spend for hash table


#2 2012-04-04 02:39:15

Registered: 2010-11-18
Posts: 691

Re: How to provide more memory for hash than the limit -w27

On a 32-bit system, 2^27 is the largest hashtable that can be set alas.
Note that a pointer is 4 bytes and the largest power of two that can be represented in an unsigned long is 2^31
31-4 = 27 -- giving 2^27 as the max value
solution: move to a 64-bit system, or use bitstate hashing (the max then becomes 2^34 on a 32-bit system)


Board footer

Powered by FluxBB