Index of /~creutz/qcdoc

[ICO]NameLast modifiedSizeDescription

[PARENTDIR]Parent Directory   -  
[   ]Makefile.user.rules 2004-10-21 14:48 2.1K 
[DIR]fft/ 2004-07-08 14:08 -  
[DIR]hello0/ 2004-06-08 11:43 -  
[DIR]hello1/ 2004-06-08 11:44 -  
[DIR]hello2/ 2004-06-08 11:44 -  
[DIR]mpi/ 2004-06-16 11:46 -  
[DIR]qmemcpy/ 2004-08-18 10:14 -  
[   ] 2004-10-20 11:46 255K 
[DIR]sun/ 2004-07-29 14:47 -  
[TXT]using.txt 2004-10-20 11:52 5.8K 

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).