Skip to content

usqcd-software/qmp

Repository files navigation

		  QMP implementation over MPICH and single node

				June 9, 2004

QMP over MPICH and single node are implemented according to the
documents of LQCD Message Passing API version 2.0 (Jun, 2004). The
implementations supports most of APIs specified in the document. Those
unsupported routines will be implemented in future releases.

QMP over MPICH:

	This release of QMP allows developers to develop applications on 
	platforms where MPICH are available. Current QMP implementation has
	been tested on MPICH-chp4, MPICH-shmem and MPICH-gm.

QMP for single node:

	This is a version which does not perform and communications and
	can be compiled without MPI to run on a single node.

1) Source distribution:

	*** very old and outdated ***
	*** maybe we should just remove this ***

	Source code of QMP is released as QMP_src.tar.gz containing the 
	following files:

	AUTHORS			------- Authors and people responsible for QMP
	COPYING			------- Copyright notice file
	ChangeLog		------- Recent change log file
	INSTALL			------- How to install QMP
	README          	------- This file
	acinclude.m4		------- autoconf related
	aclocal.m4		------- autoconf related
	configure		------- autoconf generated configuration script
	configure.ac		------- autoconf configuration
	doc/Makefile.am		------- automake configuration for doc
	doc/Makefile.in		------- automake generated Makefile template
	doc/MessageAPI.htm	------- html file for QMP API spec
	doc/QMP-1-0.doc		------- QMP API spec in MS word
	doc/QMP_API.html	------- html API description for QMP/GM
	doc/QMPdoxyfile.in	------- doxygen template file
	src/Makefile.am		------- automake configuration for src
	src/Makefile.in		------- automake generated makefile template
	src/qmp.h    		------- public header file to applications
	src/QMP_P_GM.h 		------- private header file for QMP over GM
					implementation
	src/QMP_P_MPI.h		------- private header file for QMP over mpich
					implementation
	src/QMP_init_gm.c	------- QMP initialization part
	src/QMP_init_mpi.c	------- QMP initialization part for mpi
	src/QMP_topology_gm.c	------- QMP topology routines
	src/QMP_comm_gm.c	------- QMP communication routines
	src/QMP_comm_mpi.c	------- QMP communication routines
	src/QMP_util_gm.c	------- QMP implementation utilities
	src/QMP_util_mpi.c	------- QMP implementation utilities
	src/QMP_run		------- perl script to launch QMP gm jobs.
					behaves similarly to the mpirun.
	examples/Makefile.am	------- automake configuration file
	examples/Makefile.in	------- automake generated makefile template
	examples/QMP_perf.c	------- Simple QMP performance test between
					two nodes.
	examples/QMP_gcomm_perf.c ----- Simple QMP global communication
	examples/QMP_qcd_test.c	------- Emulate a typical QCD communication
					pattern
	examples/gm_loop.c	------- Find out how a gm_receive loop 
					performs.
	examples/QMP_MILS_test.c ------ Emulate very fast channel setup
					and channel tear down.


2) Installation:

	Read INSTALL file.


3) Using QMP:

	a) QMP over mpich:

	Users can use appropriate mpirun script to launch QMP jobs when 
	the applications using a QMP implementation over one of the mpich.

	b) QMP for single node:

	Just run it.

4) Bugs fix and changes:
	
	*** This belongs in Changelog ***

	Nov. 10, 2002 on GM implementation
	
	Fix a bug reported from Carleton DeTar about setting up and tearing 
	down communication channels rapidly. Now user can create and destroy
	channels as fast as they want, code will perform correctly but poorly.

	Jan. 13, 2003 on GM implementation
	
	Use a single port to transfer message as an implementation option.

	Feb. 13, 2003

	QMP.h is changed to qmp.h. User binary reduction function is redefined.
	C++ header file is included in qmp.h.

	Feb. 13, 2003 on MPI implentation
	
	binaray reduction is implemented.




5) To do list:

	*** I think this is fixed ***

	QMP_declare_recv and QMP_declare_send may not work before a topology
	is declared. But global communication works before the topology.

Please send bugs and comments to us ([email protected], [email protected],
 [email protected]), and check out accompanying html documents for detailed
API descriptions.