# A Parallel Wavelet-Based Algebraic Multigrid Black-Box Solver and Preconditioner

Authors: Fabio Henrique Pereira; Sílvio Ikuyo Nabeta
Journal: Journal of Applied Mathematics
 (2012)

---

## Abstract

This work introduces a new parallel wavelet-based algorithm for algebraic multigrid method (PWAMG) using a variation of the standard parallel implementation of discrete wavelet transforms. This new approach eliminates the grid coarsening process in traditional algebraic multigrid setup phase simplifying its implementation on distributed memory machines. The PWAMG method is used as a parallel black-box solver and as a preconditioner in some linear equations systems resulting from circuit simulations and 3D finite elements electromagnetic problems. The numerical results evaluate the efficiency of the new approach as a standalone solver and as preconditioner for the biconjugate gradient stabilized iterative method.


---

## Body

## 1. Introduction

The algebraic multigrid (AMG) method is one of the most efficient algorithms for solving large sparse linear systems. Especially in the context of large-scale problems and massively parallel computing, the most desirable property of AMG is its potential for algorithmic scalability: in the ideal case, for a matrix problem withn unknowns, the number of iterative V-cycles required for convergence is independent of the problem size n and the work in the setup phase and in each V-cycle is linearly proportional to the problem size n [1, 2]. For all this, the need to solve linear systems arising from problems posed on extremely large, unstructured grids has been generating great interest in parallelizing AMG.However, there are two major problems: first, the core of the AMG setup phase includes the grid coarsening process, which is inherently sequential in nature [1–3]. This coarsening scheme, for traditional AMG, can lead to computational complexity growth as the problem size increases, resulting in an elevated memory use and execution time and in a reduced scalability [4, 5]. Second, most parallel AMG algorithms are based on domain decomposition ideas, which have been proved to be very efficient but require a hierarchy of meshes that eliminates the algebraic characteristic of AMG and precludes its use as a black-box method.Due to those difficulties and the importance of the development of efficient parallel preconditioners for large, sparse systems of linear equations, the investigation of new parallel approaches has been the main subject of many researchers [6–12]. In this context, a great amount of work has been aimed to extract some parallelism from serial preconditioners such as factorization-based methods, which provide effective preconditioning on sequential architectures [8–10]. However, scalable parallel implementation of incomplete factorization preconditioners presents many limitations and challenges, and although some interesting approaches have presented good performance for certain classes of problems, quite scalable parallel algorithms for this kind of preconditioners seem to have not been available [8].Also has received much attention in the last years the development of preconditioning approaches that have inherently parallel characteristics. In particular, approximate inverse preconditioners have proven extremely promising and effective for the solution of general sparse linear systems of equations [6, 7, 10–12]. Unfortunately, this kind of preconditioner also has some drawbacks: in general, as the discretization is refined the amount of work per grid point grows with problem size, and it is inherently difficult to approximate the inverse of very ill-conditioned linear systems with a sparse matrix [13].In this work we introduce a new parallel algorithm for wavelet-based AMG (PWAMG) using a variation of the parallel implementation of discrete wavelet transforms. This new approach eliminates the grid coarsening process present at standard AMG setup phase, simplifying significantly the implementation on distributed memory machines and allowing the use of PWAMG as a parallel black-box solver and preconditioner. The parallel algorithm uses the message passing interface (MPI) that provides a standard for message passing for parallel computers and workstation clusters.A sequential version of WAMG was introduced recently [14], and it has revealed to be a very efficient and promising method for several problems related to the computation of electromagnetic fields [15, 16]. Here, the method is used as a parallel black-box solver and as a preconditioner in some linear equations systems resulting from circuit simulations and 3D finite elements electromagnetic problems. The numerical results evaluate the efficiency of the new approach as a standalone solver and as preconditioner for the biconjugate gradient stabilized iterative method.


## 2. The Discrete Wavelet Transform

The discrete wavelet transform (DWT) corresponds to the application of low-pass and high-pass filters, followed by the elimination of one out of two samples (decimation or subsampling). The discrete signal, which in one dimension is represented by a vector of values, is filtered by a set of digital filters that are associated to the wavelet adopted in the analysis.Starting from a vectory(N) at level 0, two sets of coefficients are generated in each level l of the process: a set dl of wavelets coefficients (detail coefficients) and a set cl of approximation coefficients. This procedure can be applied again, now using cl as an input vector to create new coefficients cl+1 and dl+1, successively.Very important classes of filters are those of finite impulse response (FIR). The main characteristic of these filters is the convenient time-localization properties. These filters are originated from compact support wavelets, and they are calculated analytically. An example of FIR filters is the length-2 scaling filter with Haar or Daubechies-2 coefficients, which are given by (2.1):(2.1)hD2=[h0,h1]=[12,12].
For more details about compact FIR filters see [17].For a given vectory=(y1,y2,…,yN), the Haar wavelet transform creates an approximation vector c and a detail vector d according to (2.2) and (2.3), respectively:(2.2)c=(c1,c2,…,cN/2),withci=(y2i-1+y2i)2,(2.3)d=(d1,d2,…,dN/2),withdi=(y2i-1-y2i)2.It is not difficult to see that this procedure will work only ifN is even.In the 2D case, in which the discrete signal is represented by a matrix, the DWT is obtained through the application of successive steps of 1D transform into the rows and columns of the matrix. This process generates a matrix formed by four types of coefficients: the approximation coefficients and the detail coefficients (horizontal, vertical, and diagonal), as illustrated in Figure1. Blocks H and G represent, respectively, the low-pass and high-pass filters.Figure 1
The two-dimensional DWT: one-dimensional transform in the rows and columns of the matrix.In both cases, the approximation coefficients keep the most important information of the discrete signal, whereas the detail coefficients possess very small values, next to zero. These approximation coefficients will contain low-pass information, which is essentially a low-resolution version of the signal and represent a coarse version of the original data.


## 3. A Wavelet-Based Algebraic Multigrid

The approximation property of wavelet is explored by wavelet-based algebraic multigrid for creating the hierarchy of matrices. The method considers the use of a modified discrete wavelet transform in the construction of the transfer operators and the hierarchy of matrices in the multigrid approach.A two-dimensional modified DWT is applied to produce an approximation of the matrix in each level of the wavelets multiresolution decomposition process. An operator formed only by low-pass filters is created, which is applied to the rows  and columns of the matrix. This same operator is used for the intergrid transfer in the AMG. If a length-2 (first order) scaling filter is used, for example, which means the application of the operation defined in (2.2) in the rows and columns of the matrix, the operation is matricially defined as  (3.1):(3.1)Pkk+1=(h1h0000⋯⋯⋯000h1h0000⋯0⋮⋮⋮000⋯⋯⋯0h1h0)(N/2)×N.
The prolongation operator is defined in the usual form,(3.2)Pk+1k=(Pkk+1)T,
and the matrix in the corresponding level k with the Galerkin condition:(3.3)Ak+1=Pkk+1AkPk+1k,
reminding that A0=A is the matrix of the original system.Once the intergrid transfer operators and the hierarchy of matrices are created, the multigrid method (V-cycle) can be defined as usual, using a recursive call of the following two-level algorithm.Algorithm 3.1 (Two-level multigrid).
The following holds.
Input: the right hand side vectorb, the original matrix Aand the coarse grid matrix PAPTOutput: approximationx̃
(1)
Choose an initial guessx and apply ν1 smoothing steps in Ax=b(2)
Computer=b-Ax(3)
e=(PAPT)-1Pr(4)
x̃=x+PTe(5)
Applyν2 smoothing steps in Ax̃=b(6)
Returnx̃.In this paper, a V-cycle multigrid withν1=ν2=1 is applied iteratively as a solver and also as a preconditioner inside the biconjugate gradient stabilized (BiCGStab) iterations.


### 3.1. The Choice of the Wavelet Filters

A common problem on the choice of the filters is to decide between the fill-in control and the wavelet properties. As the WAMG often deals with sparse matrices, the control of the nonzero number is a very important task. In this case, if the matrixAk is sparse, then the number of nonzero elements in the next level matrix Ak+1=Pkk+1AkPk+1k will depend on the order of the filter used in the restriction and prolongation operators. In fact, the longer the filter used the larger the number of nonzero entries in the next computed matrix. Consequently, most of the wavelet-based multigrid methods use shorter filters such as Haar or Daubechies-2 coefficients in its approaches [18–23]. This is also the case in this paper.


## 3.1. The Choice of the Wavelet Filters

A common problem on the choice of the filters is to decide between the fill-in control and the wavelet properties. As the WAMG often deals with sparse matrices, the control of the nonzero number is a very important task. In this case, if the matrixAk is sparse, then the number of nonzero elements in the next level matrix Ak+1=Pkk+1AkPk+1k will depend on the order of the filter used in the restriction and prolongation operators. In fact, the longer the filter used the larger the number of nonzero entries in the next computed matrix. Consequently, most of the wavelet-based multigrid methods use shorter filters such as Haar or Daubechies-2 coefficients in its approaches [18–23]. This is also the case in this paper.


## 4. A Parallel Wavelet-Based Algebraic Multigrid

One advantage of the proposed approach is the elimination of the coarsening scheme from the setup phase. The application of the operations defined in (2.3) in the rows and columns of a matrix allows creating an approximation without any information about meshes or the adjacency graph of the matrix. Thus the implementation on distributed memory machines becomes simpler allowing the use of the method as a parallel black-box solver and preconditioner. Our approach, based on the parallel implementation of discrete wavelet transform presented in [24], avoids any communication among processors in the setup phase if first-order filters are used.The parallelization strategy starts dividing equally the numberN of rows of the matrix between the processors, in such a way that the 1-D transform defined in (2.3) could be applied entirely locally in the rows. As each matrix column is equally divided, the transformation in this direction is accomplished partially in each processing unit, considering the size of the column in its local memory. For np processors, for example, each processor will apply the wavelet transform in the ⌈N/np⌉ elements of the column in its memory, where ⌈x⌉ means the largest integer even less than x. If the largest integer less than N/np is odd, then the last element of the column in the local memory is unchanged, as illustrated in Figure 2 for N=10 and np=2. In the figure, ci,jl means the ith local element of the level l vector c in the processor j.Figure 2
Illustration of the 1D parallel wavelet transform with 2 processors.Thus the resulting coarse level matrix is calculated entirely locally.In the solver phase the interprocessors communication is necessary only for operations involving matrices. More specifically, it is necessary to update the vector always after the smoothing step and after the matrix-vector product in the residual calculation (lines 1, 2, and 5 of the algorithm). In a matrix-vector productA*b=c, for example, the matrix A is distributed in rows, the vector b is shared by all processors, and vector c is calculated in parallel as illustrated in Figure 3, for 4 processors. Then the resulting vector c is updated by the processors through the message passing interface library (MPI). This task is accomplished by using the MPI collective communication function MPI_Allgather [25]. The MPI_Allgather function effect is shown in Figure 4. It is important to highlight that only the resulting vector should be updated. It means each processor communicates to the other only a few elements that it stores. However, in order for the process to continue, the whole vector must be updated on each processor and some kind of collective communication should take place.Figure 3
Matrix-vector product of a matrix distributed by rows.Figure 4
MPI collective communication function.The PWAMG method in this work uses a hybrid Jacobi-Gauss method as smoother and the V-cycle for the resolution scheme. The Gauss-Seidel smoothing is applied inside each processor and the Jacobi method applied interprocessors.


## 5. The Numerical Test Problems

The parallel algorithm uses the version one of the MPI that provides a standard for message passing for parallel computers and workstation clusters. The method has been implemented using C++ and tested in a homogeneous Beowulf cluster with 6 machine nodes (Core 2 Duo, 1 GB RAM) connected to a switched fast Ethernet network, as illustrated in Figure5.Figure 5
The Beowulf Linux cluster architecture.The multigrid V-cycle approach was applied as a resolution scheme to solve some linear equations systems resulting from circuit simulations and finite elements electromagnetic problems. The parallel method was also applied as a preconditioner for the iterative biconjugate gradient stabilized (BiCGStab) method, which has been implemented using the same vector updating approach.The three first matrices are related to 3D finite element electromagnetic analysis. The matrices2cubes_sphere and offshore are from a study of edge-based finite-element time domain solvers for 3D electromagnetic diffusion equations. The dielFilterV2real is a real symmetric matrix, which comes from a high-order vector finite element analysis of a 4th-pole dielectric resonator [26]. The last real unsymmetric matrix is from circuit simulation problems from Tim Davis sparse matrix collection [27]. The matrices properties are presented in Table 1.Table 1
Electromagnetic matrices properties.
Matrix properties2cubes_sphereOffshoredielFilterV2realCircuit5M_dcNumber of rows101,492259,7891,157,4563,523,317Number of columns101,492259,7891,157,4563,523,317Nonzeros1,647,2644,242,67348,538,95214,865,409Explicit zero entries0004,328,784TypeRealRealRealRealStructureSymmetricSymmetricSymmetricUnsymmetricPositive definite?YesYesNoNo


## 6. Results

The problems were solved firstly using the sequential version of the proposed method. For comparison, the BiCGStab method preconditioned by the incomplete LU was used.The results are presented in Table2. In all cases, the convergence is defined by ∥rn∥/∥b∥<10-6, where rn is the residual vector at the nth iteration and the right hand side vector b is chosen so that the solution is a unitary vector. The setup and solver times are in seconds, and n is the number of iterations.Table 2
Results for sequential tests (not enough memory).
MatrixILU + BiCGStabWAMGWAMG + BiCGStabSetupSolvernSetupSolvernSetupSolvernCircuit5M_dc6.9629.98347.414.37361.3045.4922cubes_sphere1.982.1535.292.0235.301.554Offshore5.3621.551016.6718.42616.6921.1710dielFilter-V2real—————————The parallel results for the circuit simulation and electromagnetics problems are presented in Tables3, 4, 5, and 6 for the PWAMG solver and preconditioner. The setup and solver times are in seconds and have been presented in the form t1(t2), where t1 is the processing time returned by the C clock() function and t2 is the total time spent in the corresponding phase, which includes the MPI communication time and is measured using the MPI function MPI_Wtime().Table 3
Parallel results for2cubes_sphere matrix.
npNrowsNonzerosPWAMG solverPWAMG BiCGStabSetup time CPU (Wtime)Solver time CPU (Wtime)nSetup time CPU (Wtime)Solver time CPU (Wtime)n2cubes_sphere110149216472645.292.0235.301.5542507468283322.43 (2.43)1.84 (2.99)32.40 (2.40)6.81 (9.83)7507468189322.20 (2.20)2.22 (2.99)2.17 (2.17)5.74 (9.83)338305522601.61 (1.62)1.41 (3.46)1.62 (1.62)5.50 (12.09)3338305502061.50 (1.50)1.15 (3.47)31.49 (1.49)3.63 (12.09)7338325447981.42 (1.42)1.74 (3.47)1.41 (1.41)4.36 (12.08)253734151501.19 (1.20)1.12 (3.26)1.19 (1.19)4.18 (11.48)4253734124161.12 (1.12)0.96 (3.22)31.12 (1.12)3.83 (11.48)7253734065161.07 (1.07)1.01 (3.23)1.06 (1.06)3.27 (11.46)253734131821.06 (1.06)1.18 (3.26)1.06 (1.06)3.22 (11.46)202983332050.95 (0.95)1.00 (3.29)0.96 (0.94)4.27 (11.87)203003303830.88 (0.88)0.77 (3.29)0.88 (0.88)3.35 (11.85)5202983308680.88 (0.88)0.78 (3.30)30.87 (0.87)2.70 (11.85)7202983289760.84 (0.83)0.75 (3.31)0.85 (0.84)2.68 (11.87)202983238320.85 (0.85)1.08 (3.32)0.84 (0.84)2.59 (11.85)169152774720.81 (0.82)0.87 (3.27)0.81 (0.81)4.28 (11.95)169152760590.74 (0.74)0.69 (3.24)0.74 (0.74)3.15 (11.94)6169152741470.73 (0.74)0.71 (3.24)30.74 (0.74)2.40 (11.93)7169152698960.73 (0.73)0.72 (3.24)0.74 (0.74)2.32 (11.94)169152747880.69 (0.68)0.68 (3.24)0.72 (0.72)2.32 (11.94)169172749020.72 (0.72)1.03 (3.26)0.68 (0.68)2.32 (11.93)Table 4
Parallel results foroffshore matrix.
npNrowsNonzerosPWAMG solverPWAMG BiCGStabSetup time CPU (Wtime)Solver time CPU (Wtime)nSetup time CPU (Wtime)Solver time CPU (Wtime)nOffshore1259789424267316.6718.42616.6921.1710212989421201638.13 (8.12)4.65 (7.71)38.08 (8.08)31.94 (46.27)1212989521225107.38 (7.38)5.80 (7.71)7.37 (7.37)26.93 (46.28)8659614247475.13 (5.15)3.46 (9.45)5.07 (5.07)31.0 (64.24)38659614106444.93 (4.93)3.25 (9.50)34.97 (4.97)22.6 (64.19)148659714072825.01 (5.00)4.97 (9.50)4.90 (4.90)20.6 (64.24)6494710659713.60 (3.61)2.96 (8.74)4.13 (4.12)19.47 (60.21)46494710609944.15 (4.14)2.67 (8.64)33.74 (3.73)19.31 (60.18)146494710591693.42 (3.42)2.73 (8.68)3.54 (3.55)16.98 (60.09)6494810565393.80 (3.80)3.19 (8.74)3.39 (3.38)16.53 (60.13)519578581752.77 (2.76)2.50 (8.76)3.28 (3.28)21.64 (60.97)519578474353.31 (3.30)2.31 (8.74)2.94 (2.94)16.83 (60.94)5519578467472.96 (2.95)2.23 (8.77)32.88 (2.87)14.76 (60.90)14519578454662.87 (2.87)1.99 (8.80)2.86 (2.85)14.28 (60.94)519618448502.93 (2.93)3.13 (8.81)2.75 (2.75)13.83 (60.97)432987152282.22 (2.21)2.21 (8.87)2.61 (2.61)22.69 (61.66)432987095192.62 (2.61)2.07 (8.90)2.60 (2.60)14.01 (61.60)6432987070232.62 (2.61)2.09 (8.90)32.52 (2.52)13.63 (61.65)13432987059982.20 (2.20)1.87 (8.89)2.51 (2.51)13.59 (61.63)432987036212.54 (2.53)1.98 (8.90)2.20 (2.20)12.52 (61.66)432997012842.29 (2.29)3.09 (8.87)2.18 (2.19)12.29 (61.63)Table 5
Parallel results forcircuit5M_dc matrix.
npNrowsNonzerosPWAMG solverPWAMG BiCGStabSetup time CPU (Wtime)Solver time CPU (Wtime)nSetup time CPU (Wtime)Solver time CPU (Wtime)ncircuit5M_dc135233171486540947.414.37361.3045.49221761659827990827.73 (27.89)5.86 (21.51)327.76 (27.90)14.37 (37.37)21761658658550111.94 (11.94)10.56 (21.24)11.96 (11.94)6.63 (40.58)1174439553162719.83 (19.84)4.88 (27.07)19.83 (19.82)5.24 (27.43)31174439495607410.95 (10.95)3.79 (27.05)310.96 (10.95)4.8 (26.59)2117443943777088.03 (  8.03)4.07 (26.25)8.03 (8.02)4.1 (27.39)880829424996415.27 (15.27)4.38 (26.34)15.24 (15.31)6.31 (28.30)4880829402994411.09 (11.09)3.61 (26.90)310.99 (10.99)4.66 (27.14)288082933020466.09 (6.09)3.20 (26.90)6.23 (6.22)3.99 (27.70)88083032834556.27 (6.27)6.08 (26.29)6.09 (6.09)3.67 (28.30)704663313658312.24 (12.25)4.04 (26.60)12.24 (12.24)10.08 (27.01)70466329075829.88 (9.88)3.48 (26.59)9.87 (9.87)4.40 (26.95)570466326071456.22 (6.21)3.15 (26.22)26.14 (6.14)3.83 (26.89)270466335779974.97 (4.96)3.05 (26.69)4.94 (4.94)3.51 (26.54)70466526361024.92 (9.92)9.67 (26.69)4.94 (4.94)3.31 (27.02)587219300289510.11 (10.12)3.81 (27.08)10.07 (10.08)9.23 (30.16)58721927482838.40 (8.39)3.26 (27.04)8.39 (8.39)4.20 (30.26)658721925287266.81 (  6.80)3.18 (27.44)26.77 (6.77)3.79 (30.19)258721922077894.23 (4.24)2.95 (27.83)4.26 (4.25)3.35 (30.19)58721921826904.14 (4.15)2.89 (28.23)4.26 (4.25)3.50 (28.99)58722221950264.26 (4.26)5.57 (28.23)4.14 (4.14)3.27 (29.39)Table 6
Parallel results fordielFilterV2real matrix (not enough memory).
npNrowsNonzerosPWAMG solverSetup time CPU (Wtime)Solver time CPU (Wtime)ndielFilterV2real1115745648538952———25787282671040660.00 (182.0)176.21 (1763.4)45787282182854634.46 (39.34)86.20 (1759.74)3858181947638836.92 (78.71)98.12 (192.62)33858181452920422.49 (22.54)43.69 (192.13)43858201453336022.18 (22.19)54.49 (192.14)2893641580764628.18 (28.39)75.34 (108.75)42893641090296216.61 (16.59)32.17 (108.35)42893641090276016.79 (16.79)33.26 (108.55)2893641092558416.56 (16.58)34.80 (108.75)2314911364400024.42 (24.47)64.90 (101.42)231491875132213.28 (13.28)27.28 (101.41)5231491872769613.30 (13.29)28.07 (101.57)4231491871058013.35 (13.34)26.93 (101.72)231492870535413.25 (13.25)35.10 (101.72)1929091185818222.81 (38.14)107.36 (176.56)192909761820611.76 (11.76)47.08 (176.63)6192909729521810.99 (10.99)42.92 (176.76)7192909725541011.18 (11.18)42.60 (176.76)192909723398611.07 (11.07)42.53 (176.50)192911727795011.01 (11.01)58.37 (176.50)In some cases the CPU and wall-clock times are nearly equal, which means that the processes that are waiting for synchronization are still consuming full CPU time. Moreover, the CPU time and the wall-clock time are practically the same in setup phase indicating that there are no interprocessor communications during the setup. It is a great advantage of the proposed approach since this phase is the most time-consuming task in multilevel approaches, as can be seen in Table2. For single processor algorithms the times t1 and t2 are the same.Three important aspects related to the parallel results should be highlighted.(1)
The proposed method uses a hybrid Jacobi Gauss-Seidel method as a smoother and a coarse system solver. This method applies the Gauss-Seidel method inside each processor and the Jacobi method between processors. So, as the number of processors increases, both smoother and coarse solvers become different. Also in the sequential version of the method this approach has not been reproduced. This can help us to explain the difference in the number of iterations in the parallel and sequential versions.(2)
The way in which the matrices are split between the processors (the same number of rows) may cause load unbalance in some cases that can affect the overall performance of the method. For the matrixcircuit5M_dc, for example, the number of nonzero elements in the processor one is 25% larger than in the processor two, when 2 processors are used. A new way to divide the matrix among the processors should be investigated.(3)
Despite the use of a homogeneous Beowulf cluster, the type of network connection based on a switched fast Ethernet network shows to be an important bottleneck. So, the effects of the fast Ethernet connection on the results should be evaluated separately. In order to do so, thetime(p) required by the solver phase execution on p processors, in which there is interprocessors communication, was evaluated considering a relative time in relation to the MPI π calculation example [25]. It means the time(p) is defined as(6.1)(6.1)time(p)=wtime(p)π-time(p),in whichwtime(p) is the total time spent in the setup phase, which includes the MPI communication time and is measured using the MPI function MPI_Wtime(), and π-time(p) is the time spent by the MPI π example, both with p processors. As an example, Table 7 presents the values of π-time(p),wtime(p),time(p) and speedup(p),p=1,…,6, for the matrix 2cubes_sphere, which were used to create the illustration in Figure 6(a). The values of π-time(p) were obtained as the mean of 5 runs. All the other results in Figure 6 were derived in a similar way.Table 7
Solver phase speedup using a relativetime(p): example for matrix 2cubes_sphere.
p=1p=2p=3p=4p=5p=6(A)wtime(p)2.022.993.473.263.323.27(B)π-time(p)0.00008850.00029260.00032220.0009970.0010110.0009938(C)time(p) = A/B22824.8610218.7310769.713269.813283.883290.40(D)speedup(p)1.002.232.126.986.956.94Speedup for2cubes_sphere solver (a) and preconditioner (b), offshore solver (c) and preconditioner (d), and circuit5M_dc solver (e) and preconditioner (f).
(a)(b)(c)(d)(e)(f)As usual, the absolute speedupSp is used for analyzing the parallel performance, and it is defined as  (6.2)(6.2)Sp=speedup(p)=time(1)time(p),
in which time(1) is the time spent by the best sequential algorithm and time(p) as defined in (6.1).As the MPIπ example uses only point-to-point communication functions, the relative time approach can help to clarify if the apparent poor scalability is due to a high collective communication cost or mainly due to the type of network connection used.The solver and preconditioner speedups are illustrated in Figure6 for the matrices circuit5M_dc, 2cubes_sphere, and offshore.


## 7. Conclusions

The PWAMG method, proposed in this work, has been applied as a black-box solver and preconditioner in some circuit simulations and finite element electromagnetic problems with good results.An important characteristic of the proposed approach is its small demand for interprocessors communication. Actually, no communication is required in the setup phase if first-order filters are used. This characteristic is confirmed by the results for setup time presented in Tables3–6, observing that the times measured by MPI_Wtime() and C clock() functions are practically the same. It is a great advantage of the proposed approach since this phase is the most time-consuming one.In the solver phase, in which there is interprocessors communication, the numerical results seem to show a poor performance with more than 2 processors, even when the number of iterations does not increase by using more processors. These results can be caused in part due to the use of a collective communication function to update the vector after the matrix operations, which is motivated by the manner the matrix is divided between the processors.In order to update the vector each processor should send and receive the part of the vector to all of the other processors. Of course, when the number of processors increases, this work also becomes larger.An alternative to overcome this problem may be to apply some graph partitioning method and develop an approach in which each processor should communicate only with its neighbors. Such approach is under development, and it is out of the scope of this paper.However, the type of network connection based on a switched fast Ethernet network shows to be an important bottleneck, and its effects should be evaluated separately. As the MPIπ example uses only point-to-point communication functions, the relative time approach can help to clarify if the apparent poor scalability is due to a high collective communication cost or mainly due to the type of network connection used. The speedup results based on the relative times show that the proposed approach is promising and that the kind of network connection that has been used is maybe the most important drawback.Moreover, in spite of the speedup being less than the linear in some cases, it is important to mention an important aspect of this application: in the context of large sparse linear system of equations, where this paper is inserted, the problems have large memory requirements. In these cases, as presented in [28], the speedup necessary to be cost effective can be much less than linear. The parallel program does not need p times memory of the unit processor, since parallelizing a job rarely multiplies its memory requirements by p.Finally, the number of iteration of the proposed method seems to be independent of the number of processors. However, it is necessary to carry out more tests with a larger number of processors in order to draw more definitive conclusions. Nowadays, the authors are looking for new resources and/or partnerships to enable the continuation of this work.



---

*Source: 894074-2012-06-17.xml*