Creating real bool type for simulation in physics

Mathieu Prevot bsdhack at club-internet.fr
Mon Mar 13 16:16:23 UTC 2006


Hello,

I use freebsd/amd64 (RELENG_6) for simulation in physics.
I am working on the Ising model:
an assembly of spins (micromagnets) which interact and which are in one of
two states (up or down).
Until now I use char to define the state of each spin (-1 or 1),
however, I remarked that most time is spent on memory I/O.  Most of bits are
unused.

I think that if I can use just one bit per spin, I can have something
much faster. I need advices on how to use it. I guess I can't define a new
type with a 1/8 byte height (or one bit), yes ?
What variable (int, char...) do you recommend to use for a sempron 64 bits.
I think I'll need to define new operators (opaque operators, built with bit
operators) to switch my spins or use directly the following: & | ^ ~ ...

May I gain speed using MMX registers or something like this ? How can I do
this ?

Here is my basic and multithreaded program:
http://scienceclue.ath.cx/download/ising_lps_0.2.tar.bz2

Thanks
Mathieu P.


More information about the freebsd-hackers mailing list