Matrix distributed processing: a set of C++ tools for implementing generic lattice computations on parallel systems. M. Di Pierro.

PROGRAM SUMMARY
Title of program: MDP, version 1.2
Catalogue identifier: ADPA
Ref. in CPC: 141(2001)98
Distribution format: tar gzip file
Operating system: Solaris, Linux
Number of lines in distributed program, including test data, etc: 43886
Keywords: Lattice, Parallel computing, Numerical software, Computers.
Programming language used: C++
Computer: SUN SparcSTATION , PCs , Cray T3E .

Nature of physical problem:
Any problem that can be described in terms of interacting fields discretized on a lattice of some arbitrary shape and topology.

Method of solution:
Parallel applications provided together with the library as examples: A program that solves electrostatic problems (application1.C). A program that computes total impedance in a net of resistors (application2.C). An Ising model simulation (application3.C). A parallel implementations of the Vegas multidimensional integration algorithm (MDP_PVegas.h not described here). A complete Lattice QCD package (FermiQCD, not described here). MPI (Message Passing Interface) is required to run MDP in parallel. MPI is not required to run MDP in single process mode. No previous knowledge of MPI is required in order to use them.