Index of /~creutz/qcdoc
Here are the results of some of my efforts to learn
to use the qcdoc supercomputer. These are all evolving
and I would be happy to receive comments.
using.txt is a basic cheat sheet on how to compile and
run on the qcdoc.
The directories hello* are variations on hello world
for the qcdoc.
Makefile.user.rules is used by the various example programs.
*********************
The other directories contain things involving my general
communication scheme. At the bottom level is qmemcpy, which
generalizes memcpy to arbitrary interprocessor transfers.
The prototype is
qmemcpy(int destproc, void* dest, int srcproc, void* src, int size);
Contained in the directory sun is a generic SU(N) pure gauge
simulation for arbitrary N and dimensions.
The directory mpi contains the beginning of an MPI implementation
using qmemcpy.
A generic fft program is in the directory fft. The prototype for the
one public function is
qfft(int dim, int * shape, findfield src, findfield dest, int direction);
where findfield is a simple structure giving the lattice layout
typedef struct {
int (*node)(int * x);
void * (*address)(int * x);
} findfield;
Thus, the field phi at position {x[0],x[1]...x[dim-1]} is on processor
phi.node(x) at address phi.address(x). The argument "direction"
should be plus or minus one depending on whether one wants exp(ipx) or
exp(-ipx) in the fourier transform; these are inverses of each other
(up to a factor of the volume).
Mike