home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #20 / NN_1992_20.iso / spool / comp / sys / transput / 995 < prev    next >
Encoding:
Text File  |  1992-09-08  |  1.7 KB  |  34 lines

  1. Newsgroups: comp.sys.transputer
  2. Path: sparky!uunet!haven.umd.edu!darwin.sura.net!Sirius.dfn.de!rz.ruhr-uni-bochum.de!jan
  3. From: jan@pallas.neuroinformatik.ruhr-uni-bochum.de (Jan Vorbrueggen)
  4. Subject: Re: Protocol query
  5. Message-ID: <JAN.92Sep7142820@pallas.neuroinformatik.ruhr-uni-bochum.de>
  6. In-reply-to: MJP@starlink.roe.ac.uk's message of 4 Sep 92 12:51:00 GMT
  7. Organization: Inst. f. Neuroinformatik, Ruhr-Universitaet Bochum, FRG
  8. References: <7271.9209041250@prg.ox.ac.uk>
  9. Date: 7 Sep 92 14:28:20
  10. Lines: 22
  11.  
  12. What you're really trying to do is extracting a part of memory with
  13. nonunit stride. (Unit stride is of course handled just by using 
  14. assignment in occam and translated into the MOVE instruction.) The
  15. T800 and followon (T425, T400, T805, T801) have MOVE2D exactly for
  16. this purpose. Unfortunately, the compiler's builtin function has
  17. a braindamaged interface (IMHO) requiring massive RETYPES, as well
  18. as some code generation bugs (if certain arguments aren't constant
  19. or VALs, space is allocated for their computation, but the computation
  20. is never done :)). So I defined my own routine(s) for the purpose.
  21. It is very efficient: For instance, if you're doing, say, a 2D FFT,
  22. for the column part it is better to extract each column into a 1D array,
  23. perform the FFT on it, and reinsert it with MOVE2D. This works because
  24. you save massively on address computations, need only a 1D FFT that is
  25. unaware it is working on a 2D array, and you can PLACE the temporary
  26. array into the WORKSPACE.
  27.  
  28. So the solution is to extract your data from your 2D array into a buffer
  29. using MOVE2D, send that, and scatter it at the receiving end via MOVE2D,
  30. if required.
  31.  
  32.  Jan Vorbrueggen, Inst. f. Neuroinformatik, RuhrUniversitaet Bochum, FRG
  33.  jan@neuroinformatik.ruhrunibochum.de
  34.