QCD API(*) level 3 ------------------------------------------------------------------------- | Dirac Operators, CG Routines etc. | | | | (Organized by MILC or SZIN or CPS etc.) | | | ========================================================================== level 2 -------------------------------------------------------------------------- | Data Parallel QCD Lattice Operations | | (overlapping Algebra and Messaging) | | | | A = SHIFT(B, mu) * C; Global sums, etc | | | -------------------------------------------------------------------------- | Lattice Wide Lin Alg || Lattice Wide Data Movement | | (No Communication) || (Pure Communiation, non-blocking) | | || | | e.g. A = B * C || e.g Atemp = SHIFT(A, mu-dir) | | || | ========================================================================== level 1 -------------------------------------------------------------------------- | Single Site Linear Algebra API || Message Passing API | | || | | SU(3), gamma algebra etc. || (Know about mapping of Lattice | | || into Network Geomentry) | -------------------------------------------------------------------------- (*)Ideally each level only calls the level directly below it. When this is not possible because of efficiency, this level structure should still be maintained in the SEMANTICS. Rich Brower: Tue Jul 31 14:37:39 EDT 2001