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 -  
[   ]qos-1.ps 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).

Mike