Use of ParInt for Parallel Computation of Statistics Integrals Elise de Doncker, Ajay Gupta, P. Ealy, J. Liu and A. Sureka Department of Computer Science Western Michigan University Kalamazoo, MI 49008-5021 felise,
[email protected]
Abstract We present applications of ParInt, a package of Parallel and distributed multivariate Integration algorithms. The integrals arise in Bayesian statistical computation. The integrals are transformed according to the methods of Genz and Kass [10]. The parallel integration algorithms are based on subregion partitioning. An overview of ParInt and its graphical user interface is given and the parallel speedups are discussed for the problems under consideration.
1 Introduction An investigation of fast techniques for numerical integration is motivated by the need to compute computationally intensive multiple integrals arising in various areas of science and engineering, for example in statistics and in nite element applications. The work reported in this paper is part of a project (ParInt) involving the design, analysis and development of a set of coarse grain parallel and distributed algorithms for multivariate numerical integration. We discuss an automatic integration algorithm which uses a speci cation of the integrand function f (~x) and the integration region D, an absolute and a relative tolerance, "a and "r , respectively, and a limit on the number of integrand evaluations to be performed during the course of the computations. D is a hyper-rectangular region in RN . The algorithm calculates a numerical Research
supported in part by the National Science Foundation under grants CCR-9405377 and DMS-9211640 and by a Fellowship from the Faculty Research and Creative Activities Support Funds WMU-FRCASF 94-040
Alan Genz Department of Mathematics Washington State University Pullman, WA 99164-3113
[email protected] approximation Q to the integral
I=
Z
D
f (~x)d~x
(1)
and an error estimate Ea while it attempts to satisfy
jI ? Qj Ea " = Maxf"a ; "r jI jg:
(2)
The algorithm is global adaptive as it selects high priority subregions for subdivision and terminates when either the global estimated error falls below the (estimated) tolerance,
Ea Maxf"a; "r jQjg; or a problem situation is detected indicating that the requested accuracy cannot be reached. The results in this paper support one of the objectives of the ParInt project which is to demonstrate that loosely coupled systems can be used eectively for numerical integration. Selected algorithms will be packaged in a user-friendly way (ParInt), together with a graphics based user interface (GUI) for visualizing and manipulating the distributed computations and to further ease the utilization of the package by non-experts in an interdisciplinary setting. In Section 2 we describe the parallel adaptive quadrature/ cubature algorithm. Section 3 gives a brief outline of the structure and methods of ParInt and its GUI. Two Bayesian statistics applications are described in Section 4 together with the parallel performance of the ParInt algorithm used for the computation of the integrals.
2 Parallel Adaptive Integration We developed a prototype algorithm for N -dimensional integration over a hyper-rectangular region, which on a
high level conforms to the representation of Figures 1 and 2. Inputs to the algorithm are: the dimension N , the lower limits ai , the upper limits bi , i = 1; : : : ; N of the integral, the integrand speci ed as a function f (~x; N ), the requested absolute and relative accuracies "a and "r , and a limit on the number of integrand evaluations. Outputs are: an approximation Q of the integral I of the function f over the given rectangular region; an estimate Ea of the absolute error jI ? Qj which attempts to satisfy (2), and a FLAG which is 0 under normal circumstances, and 1 if the computations were terminated because the limit on the number of evaluations was reached. adaptive integration algorithm()
initialize; while(acceptance criterion is not satis ed) partition(); update globals();
Figure 1: Adaptive integration algorithm The algorithm is executed asynchronously by a number of processes designated as \workers" which are each supplied with a part of the integration region initially. A process designated as the controller maintains the globals Q and Ea , using updates sent to the controller by the worker processes. It is also responsible for checking the termination criteria. Furthermore it sends updates of Q or " to the workers periodically as well as a stop message at termination. These operations are performed asynchronously with the region partitioning by the workers. The controller could participate in the region partitioning but it does not in this implementation. partition() process msg queue();
for(i=0;i