0% found this document useful (0 votes)
79 views5 pages

An Efficient Parallel Gauss Seidel Algorithm For The Solution of Load Flow Problems 0

This document presents a parallel algorithm for solving large power system load flow problems more efficiently than sequential algorithms. The algorithm distributes bus voltage calculations across multiple processors/PCs, with each processor responsible for calculating the voltages of a subset of buses. Test results showed the parallel algorithm reduced execution time close to linear speedup as the number of processors increased. The algorithm was implemented on a distributed system of connected PCs to mimic a parallel processing environment.

Uploaded by

doni
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
79 views5 pages

An Efficient Parallel Gauss Seidel Algorithm For The Solution of Load Flow Problems 0

This document presents a parallel algorithm for solving large power system load flow problems more efficiently than sequential algorithms. The algorithm distributes bus voltage calculations across multiple processors/PCs, with each processor responsible for calculating the voltages of a subset of buses. Test results showed the parallel algorithm reduced execution time close to linear speedup as the number of processors increased. The algorithm was implemented on a distributed system of connected PCs to mimic a parallel processing environment.

Uploaded by

doni
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

148 The International Arab Journal of Information Technology, Vol. 4, No.

2, April 2007

An Efficient Parallel Gauss-Seidel Algorithm for


the Solution of Load Flow Problems
Raed Alqadi1 and Maher Khammash2
1
Department of Computer Engineering, An-Najah National University, Palestine
2
Department of Electrical Engineering, An-Najah National University, Palestine

Abstract: In this paper, a parallel algorithm for solving the load flow problem of large power systems is presented. This
algorithm uses a parallel virtual machine implemented as a distributed system built from readily available PCs. The proposed
algorithm is based on the Gauss-Seidel algorithm usually used in the solution of load flow problems. This algorithm is
parallelized by distributing the bus voltages among a set of processors such that each processor will be working on 1/n of the
bus voltages in the circuit, where n is the number of processors. Since it is virtually impossible to obtain a parallel processing
machine in our country, the algorithm is developed over a distributed system which consists of a network of PCs. Even though
the communication overhead is much more than that in a real parallel machine, the results show that large power systems can
be solved in much less time compared to the time required for sequential algorithm usually used, and that with proper
selection of the number of processors, the execution time is reduced by almost a factor of the number of processors.

Keywords: Parallel algorithm, distributed system, load flow, communication overhead, execution time.

Received November 16, 2005; accepted April 22, 2006

1. Introduction interconnected with a regular Local Area network


(LAN). The technique mimics parallel processing
Load flow studies are of great importance in planning through a distributed system thus creating a parallel
and designing the future expansion of power systems virtual machine. Parallel virtual machines have been
as well as in optimizing existing systems for best proposed by many researchers; see for example [2, 6,
performance. The principal information obtained from 11, 12, 13]. We implemented our own machine
a power-flow study consists of the magnitude and because it has been optimized for solving power
phase angle of the voltage at each bus and the real and systems; mainly parallelizing the well-known Gauss-
reactive power flowing in each line. Seidel algorithm which is commonly used in load flow
Traditional solutions of the load-flow problems analysis of power systems.
follow an iterative process by assigning estimated The aim of this study is to create a parallel
values to the unknown bus voltages and calculating a algorithm using parallel processing to solve the
new value for each bus voltage from the estimated problem of load flow by Gauss-Seidel method. Despite
values at the other buses, the real power specified, and the fact that Gauss-Seidel algorithm is inherently
the specified reactive power or voltage magnitude. A serial, it is possible to gain performance by applying
new set of values for voltage is thus obtained for each parallel techniques [7]. In [1], a parallel Gauss-Seidel
bus and still used to calculate another set of bus algorithm that targets multi-grid systems and runs on
voltages in a sequential algorithm. The iterative distributed memory computers is proposed. In [7], a
process is repeated until the changes at each bus are technique has been proposed to parallelize Gauss-
less than a specified tolerance value. Seidel algorithm by performing specialized orderings
The sequential algorithm usually used in load flow on sparse matrices. It is shown in [5] that it is possible
calculations may result in large number of iterations to eliminate much of the data dependencies caused by
over a large set of data and thus requires long precedence in the calculations. In this paper, we
execution time. Over the past two decades, there has present a much simpler parallel algorithm that achieves
been a great interest in using parallel and distributed high performance by distributing the calculations of
computer systems in the computation as well as the bus voltages among several processors. In our
monitoring of large power systems’ performance and technique, each processor is responsible for calculating
parameters such as node voltages, currents, and power a subset of bus voltages. This parallel algorithm has
flow, which has been applied in this study. Examples been examined on several power systems to ensure its
of such studies can be found in [3, 5, 7, 8, 9, 10]. In capability and effect upon reducing the computer
this paper, we present a parallel technique based on execution time in comparison with the sequential
distributing the computation over a set of computers algorithm usually used. The algorithm was evaluated
An Efficient Parallel Gauss-Seidel Algorithm for the Solution of Load Flow Problems 151

using a large number of power networks generated by index if the corrected voltage at a bus merely replaces
a random network generator program written by the the best previous value as the computations proceed
authors. from bus to bus which results in long computer time.
The rest of this paper is organized as follows. In this study, it is shown that the total execution
Section 2 provides an overview of the Gauss-Seidel time is reduced considerably by using parallel
load flow algorithm. Section 3 presents the proposed processing for the solution of load flow problem since
parallel version of the Gauss-Seidel algorithm. Section each processor (computer) is only responsible for a
4 presents the results of the proposed approach subset of bus voltages and calculation of the voltages
including a comparison to the sequential algorithm. in done concurrently. In the next section, we present
Finally, conclusions are presented in section 5. our version of the parallel Gauss-Seidel algorithm.

2. Gauss-Seidel Method 3. Parallel Algorithm


The Gauss-Seidel method is an iterative process which The idea of using parallel processing in the solution of
starts by assigning estimated values to the unknown load flow problem by Gauss-Seidel method starts with
bus voltages. Using the estimated bus voltages and the dividing the whole group of bus voltages into
specified real and imaginary power values, a new value subgroups where the calculation of the bus voltages of
for each bus voltage is calculated at the end of each these subgroups is performed by several processors
iteration. The process is repeated until the difference (clients) concurrently. Since the parallel processing is
between each bus voltage and its corresponding value emulated by a distributed system composed of PCs
in two successive iterations is less than a predefined interconnected via LAN, from now on we will refer to
tolerance value. the processors or PCs by the term clients and server.
For a total of N buses, the calculated voltage at any The server will be responsible for coordinating the
bus K is expressed as a function of the real and reactive distribution and execution of the algorithm while the
power delivered to a bus from generators or supplied to clients will be responsible for the execution of the
the load connected to the bus, the estimated or algorithm. The calculation of the bus voltages is
previously calculated voltages at the other buses, and distributed among several clients such that each client
the self- and mutual admittances of the nodes as given is responsible for the calculation of the bus voltages of
in equation (1) [4]. the subgroup to which it belongs, in this way each
 
client calculates the bus voltages of its subgroup
P  jQk k 1
Ykj V (j i  1) 
N
Vk(i)  1  k  (i) 
 Ykj V j 
independently of other clients. The clients used in the
Ykk  V (i  1) j 1 j  k 1  implementation are heterogeneous PCs deploying
 k 
Microsoft Windows XP.
(1) Each client calculates the bus voltages of its
Where: subgroup according to equation 2 in the following
Vk : Calculated voltage of bus k. manner. If bus j does not belong to the same subgroup,
Ykk : Self admittance of bus k. the value of Vj is substituted from the previous
Ykj : Mutual admittance between buses k and j. iteration, but if bus j belongs to the same subgroup
Pk: and Qk: Scheduled real and reactive power entering then the value of Vj is substituted from the same
the system at bus k. iteration if j < k or and from the previous iteration if j >
Vj: Most recently calculated values for the k. The parallel algorithm can be presented
corresponding buses or the estimated voltage if no mathematically as shown in Figure 1. Also, a pictorial
iteration has yet been made at that particular bus. representation of the algorithm is shown in Figure 2. In
(i) and (i - 1) denote current and previous iteration, this figure, 12 buses are distributed over 4 clients
respectively. (computers) where each client computes the voltages
In the original sequential algorithm of Gauss-Seidel for 3 buses.
method, the voltage at each bus at any iteration is
calculated by using the voltages of previous buses 3.1. Implementation
calculated at the same iteration and the voltages of the
next buses calculated at the previous iteration as shown The parallel algorithm has been implemented using a
in equation (1). The entire process is carried out again network of 20 computers connected over LAN; the
and again until the amount of correction in voltage at program was written in C# and used TCP/IP sockets
every bus is less than some predetermined precision for communication. The following paragraphs describe
index. the main steps of the algorithm.
Experience with the Gauss-Seidel method in solving
large power flow problems has shown that an 3.2. Initial Step
excessive number of iterations are required before the  The Server distributes the network definitions to the
voltage corrections are within an acceptable precision clients.
152 The International Arab Journal of Information Technology, Vol. 4, No. 2, April 2007

 From the clients' number connected, the server  When the convergence is reached by the clients,
calculates the portion of data each client must each client sends a completion message to server.
work on. For example, if the number of clients is When this message is received from all clients, the
8 and the number of the bus voltages in the server displays the results. At this moment, the
network is 2000 bus, then the number of bus execution is completed.
voltages each client has to work on is 2000/8 =
Network Bus Voltages
250 bus voltages. V1
Client 1
Broadcast
Client 2 Client 3
Broadcast Broadcast
Client 4
Broadcast

 Every client is sent the complete set of data V1


V2
V2
including the following: V3
Client 1 V3

 The set of the initial estimated values of the bus V4


V5
V4
V5
voltages in the network. V6 Client 2 V6
 The node admittance matrix of the network that V7
V7
includes the self-and mutual admittances. V8
V8
 The scheduled real and reactive power entering V9 Client 3
V9
V10
the system at each bus. V11 V10
 The range of the elements the client is to work V12 V11
Client 4
on. For example 8 clients work over 2000 V12
Results Broadcasted to Other Clients
elements, then the first client will work on the After Local Computation

range of elements form 1-250, while the second Figure 2. Distribution of the calculation of bus voltages among
will work over 251-500, and so on. several clients.

 The server sends the “start execution” message to


the clients. 4. Results and Discussion
Parallel Gauss Seidel Algorithm
To evaluate the algorithm, the parallel algorithm was
Let C = {c1, c2, … cm} be the set of available clients (computers) compared to the sequential algorithm. To achieve this,
where m is the number of computers, and let N be the number of a random network generator was developed in order to
buses provide test power networks. Several experiments were
Client L computes the voltages {Vx, … , Vy} where conducted using different number of clients and
N  N 
x    * ( L  1)  1 and y  Min(   * L, N ) different size of networks. Generally, for large
 
m m
For each k in {x, …., y) compute
networks (1000 nodes or more) the algorithm produced

P  jQk x 1 k 1
 significant speed up. Of course this is the desired
  Y V (j i  1 )   Y V   Y V (j i  1 )
N
Vk( i )  1  k (i ) 
behavior since the algorithm is intended for large
Ykk  V( i  1 ) j 1
kj
jx
kj j j  k 1
kj

 k 
networks.
(2) The amount of communication overhead becomes
Broadcast the vector {Vx, Vx + 1, ….., Vy}
Obtain the voltages {V1, …, VN} - {Vx, …, Vy} from the other insignificant as compared to the processing time even
clients though it is based on LAN communication. But for
Figure 1. Parallel Gauss-Seidel algorithm. small networks (200 nodes or less) the amount of
communication overhead is significant and hence the
3.3. Iterative Steps serial algorithm is superior.
Figure 3 shows the execution time in seconds for
 Every client calculates the values of the bus networks of 1000 buses versus the number of
voltages to which it is dedicated. computers. It is clear that the execution time decreases
 When a client finishes iteration over its range of significantly as the number of computers is increased.
data, it broadcasts the vector of node voltages it But as the number increases beyond a certain limit, the
computed with a tag identifying its identity number. communication time becomes significant and thus the
Afterwards, the client sleeps waiting for a increase becomes marginal. However, the figure
notification from the server to start a new iteration. clearly shows that our algorithm is very efficient in
 When a client receives the computed bus voltages reducing the execution time for large network using a
from all other clients, it replaces the old bus reasonable number of computers, e. g., 5-20.
voltages with the new received values. Figure 4 shows the speedup versus the number of
 When all clients send their vectors of node voltages, clients (computers), the results were calculated by
the server sends a “continuation message” to alert dividing the sequential program execution time by the
the clients to start a new iteration. execution time of the parallel algorithm for each
 The previous iterative steps are repeated until all respective number of clients. The results in Figures 3
clients converge, or until a certain predefined and 4 were obtained by taking the average execution
number of iterations end with no convergence. time of 10 randomly generated networks; each is a
1000 bus network.
An Efficient Parallel Gauss-Seidel Algorithm for the Solution of Load Flow Problems 151

Execution Time for 1000 Node Circuits 200


180
1000
160

Execution Time
800 140
Execution time

120
600
100
400 80

200 60
40
0
20
0 5 10 15 20 25
0
Number of Computers 0 5 10 15 20

Figure 3. Execution time (s) versus the number of clients for 1000 Number of Computers
bus networks.
Figure 5. Execution time (s) versus the number of clients for 500
bus networks.
Speedup for 1000 Node Circuits
10
18 9
16 8
14
7
Speedup

12
Speedup 6
10
5
8
4
6
4 3
2 2
0 1
0 5 10 15 20 25 0
Number of Computers 0 5 10 15 20
Number of Computers
Figure 4. Speedup versus number of clients for 1000 bus networks.
Figure 6. Speedup versus the number of clients for 500 bus
networks.
Figure 5 and 6, respectively, show the execution
time and the speedup for networks of 500 buses versus
the number of computers. It can be seen that as the 5. Conclusion
number of computers is increased beyond 12, the In this study, a parallel algorithm of load flow
execution time starts to increase. Such result is calculation using Gauss-Seidel method is realized. This
expected because the number of buses in the power algorithm is based on the distribution of the
networks is relatively small (500) and hence a small calculations of the bus voltages among several clients
number of computers (less than 10) will be needed. operating in parallel. The parallel processing is
Increasing the number beyond that value will result in emulated by a distributed system composed of PCs
high communication overhead compared to the interconnected via LAN. The proposed algorithm was
computation time of the bus voltages. Consequently, tested on several test power networks and compared
the suggested algorithm is effective for networks with with the sequential algorithm usually used.
a medium number of buses between 200 and 1000 The obtained results show that the execution time of
when using a reasonable number of clients in order not the parallel algorithm has been considerably reduced in
to increase the communication overhead as compared comparison with the execution time of the sequential
to the computation time of the bus voltages. algorithm for power networks of large number of
From studying these results, it is clear that for large buses. The amount of communication overhead
power systems the suggested algorithm is effective. becomes insignificant as compared to the processing
This algorithm reduced the execution time time even though it is based on LAN communication.
considerably compared with the sequential algorithm The proposed parallel algorithm which has been
usually used. The amount of communication overhead implemented using distributed processing is an
becomes insignificant as compared to the processing efficient algorithm and is recommended by the authors
time when the size of the power circuit is considerably in the calculation of load flow for the networks with
large and a reasonable number of computers, e. g., 5- large number of buses.
20, is used.
152 The International Arab Journal of Information Technology, Vol. 4, No. 2, April 2007

References Raed Alqadi received his MSc and


PhD in computer engineering from
[1] Adams M. F., “A Distributed Memory the University of Wisconsin-
Unstructured Gauss-Seidel Algorithm for Multi- Madison, USA in 1995. He joined
Grid Smoothers,” in ACM/IEEE Proceedings of the Electrical Engineering
SC01 Performance Networking and Computing, Department in 1996 and founded the
2001. Computer Engineering Department
[2] Al Geist, Beguelin A., Dongarra J., Jiang W., in 2000. Currently, he is a staff member at the
Manchek R., and Sunderam V. S., PVM: Parallel Computer Engineering Department at An-Najah
Virtual Machine: A Users' Guide and Tutorial National University. Previously, he was the chair of
for Networked Parallel Computing, MIT Press, Electrical Engineering, Computer Engineering
1994. Department, and dean of the IT College. His research
[3] Bruggencate M. and Chalasani S., “Parallel interests include real time systems, computer
Implementations of the Power System Transient architecture, embedded microcontrollers, and web-
Stability Problem on Clusters of Workstations,” programming.
in Proceedings of Supercomputing, San Diago,
CA, 1995. Maher Khammash received his
[4] Grainger J. G. and Stevenson W. D., Power MSc and PhD degrees in electrical
System Analysis, McGraw-Hill, New York, 1994.
engineering from Moscow Power
[5] Gupta A., “Recent Advances in Direct Methods
Engineering Institute, Technical
for Solving Unsymmetric Sparse Systems of
University, Moscow, Russia, in 1989
Linear Equations,” ACM Transactions on and 1993, respectively. He joined
Mathematic Software, vol. 28, no. 3, pp. 301-324, An-Najah National University,
2002.
Nablus, Palestine, in 1993 where he is currently an
[6] Hariri S. and Parashar M., Tools and
assistant professor at the Department of Electrical
Environments for Parallel and Distributed Engineering. He has taught in the areas of electric
Computing, Wiley-IEEE, 2004.
power systems analysis and planning, CAD
[7] Koester D. P., Ranka S., and Fox G. C., “A applications in electric power systems, and electrical
Parallel Gauss-Seidel Algorithm for Sparse machines. His research interests are computer aided
Power System Matrices,” in Proceedings of
design in electric power systems, optimum operation of
Supercomputing, pp. 184-193, 1994.
electrical networks, and reactive power compensation
[8] Koester D. P., Ranka S., and Fox. G. C., “Parallel
in distribution and transmission networks.
Block-Diagonal-Bordered Sparse Linear Solvers
for Electrical Power System Applications,” in
Proceeding of the Scalable Parallel Libraries
Conference, IEEE Press, 1994.
[9] Mahesh J., Karypis G., Kumar V., Gupta A., and
Gustavson F. G., “An Efficient and Scalable
Parallel Sparse Direct Solver,” in Proceedings of
the Ninth SIAM Conference on Parallel
Processing for Scientific Computing, March
1999.
[10] Tylavsky D. J. and Bose A., “Parallel Processing
in Power Systems Computation,” IEEE
Transactions on Power Systems, vol. 7, no. 2, pp.
629-638, 1992.
[11] Wei-keng L., Coloma K., Choudhary A., and
Ward L., “Cooperative Write-Behind Data
Buffering for MPI I/O,” in the Proceedings of
12th Euro PVM/MPI Conference, pp. 102-109,
2005.
[12] “PVM: Parallel Virtual Machine,” available at:
http://www.csm.ornl.gov/pvm/.
[13] Wikipedia, “Parallel Virtual Machine,” The free
Encyclopedia, available at: http://en.wikipedia.
org/wiki/PVM.

You might also like