Professional Documents
Culture Documents
AbstractÐLoad-balancing problems arise in many applications, but, most importantly, they play a special role in the operation of
parallel and distributed computing systems. Load-balancing deals with partitioning a program into smaller tasks that can be executed
concurrently and mapping each of these tasks to a computational resource such a processor (e.g., in a multiprocessor system) or a
computer (e.g., in a computer network). By developing strategies that can map these tasks to processors in a way that balances out the
load, the total processing time will be reduced with improved processor utilization. Most of the research on load-balancing focused on
static scenarios that, in most of the cases, employ heuristic methods. However, genetic algorithms have gained immense popularity
over the last few years as a robust and easily adaptable search technique. The work proposed here investigates how a genetic
algorithm can be employed to solve the dynamic load-balancing problem. A dynamic load-balancing algorithm is developed whereby
optimal or near-optimal task allocations can ªevolveº during the operation of the parallel computing system. The algorithm considers
other load-balancing issues such as threshold policies, information exchange criteria, and interprocessor communication. The effects
of these and other issues on the success of the genetic-based load-balancing algorithm as compared with the first-fit heuristic are
outlined.
1 INTRODUCTION
general, a dynamic load-balancing algorithm consists of to any of the processors in the system, while a local domain
four major components: the load measurement rule, the only allows balancing operations to be performed within
information exchange rule, the initiation rule, and the load- the set of nearest-neighbor processors.
balancing operation [19]. The distribution rule determines how to redistribute the
workload among processors in the balancing domain. This
2.1 Load Measurement rule depends on the balancing domain that is determined
Load information is typically quantifiable by a load index by the location rule, while the selection rule decides on
set to zero when the processor is not loaded and increases, whether the load-balancing operation can be performed
as the processor load gets heavier. As load measurement preemptively or nonpreemptively. The former may be
occurs frequently, the calculations must be very efficient, transferred to other processors in the middle of execution
which rules out any exhaustive use of too many parameters. while, in the latter, tasks can only be transferred if they are
Simple parameters, such as the response time or completion newly created.
time (of all tasks), are sufficient in most cases.
Authorized licensed use limited to: JSS ACADEMY OF TECHNICAL EDUCATION. Downloaded on June 12,2010 at 06:02:16 UTC from IEEE Xplore. Restrictions apply.
ZOMAYA AND TEH: OBSERVATIONS ON USING GENETIC ALGORITHMS FOR DYNAMIC LOAD-BALANCING 901
Authorized licensed use limited to: JSS ACADEMY OF TECHNICAL EDUCATION. Downloaded on June 12,2010 at 06:02:16 UTC from IEEE Xplore. Restrictions apply.
902 IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS, VOL. 12, NO. 9, SEPTEMBER 2001
Authorized licensed use limited to: JSS ACADEMY OF TECHNICAL EDUCATION. Downloaded on June 12,2010 at 06:02:16 UTC from IEEE Xplore. Restrictions apply.
ZOMAYA AND TEH: OBSERVATIONS ON USING GENETIC ALGORITHMS FOR DYNAMIC LOAD-BALANCING 903
After defining the slots, random numbers between zero these gaps are swapped. Therefore, completing the example
and one are generated. The numbers obtained will and performing the complementary cross yields the follow-
determine which strings will survive into the next genera- ing children strings in the end:
tion. As the fitter strings are represented by larger slots on
the wheel, the chances of the randomly generated numbers A0 8 6 3 10 9 7 1 5 4 2
falling into slots that represent these strings will be greater. B0 10 2 4 5 6 9 8 7 3 1:
After completing the selection process, the fitter strings In order to implement this crossover operator, first of all,
should be left in the pool. These strings must then be the strings in the population have to be separated into two
converted to one-dimensional strings before they can be groups. Then, one string is chosen randomly from each
crossed over. Then, the crossover operation is performed on group. This is to ensure that the two strings chosen
pairs of strings that are picked at random from the randomly are not the same.
population. However, the normally used single point The two strings chosen are stored as Parent string 1 (P1)
crossover method cannot be applied to this GA as using and Parent string 2 (P2). To initiate the crossover operation,
this method may cause some tasks to be assigned more than a starting point must be selected. This is done by randomly
once while some are not assigned at all. Therefore, in order selecting a number between zero and the length of the
to ensure that each task is only assigned once, the cycle string (or the size of the window). Once this is accom-
crossover method is adopted in this work [21]. plished, the crossover operation begins.
For the sake of completeness, a brief discription of the The tasks in these strings are denoted as Tab whereby a
cycle crossover is given. With this crossover method, the represents the string number (i.e., Parent string 1 or 2) and b
recombination is performed under the constraint that each is the task position in that string. Let T1S be the task at
task comes from one parent or the other in order to show
position S (i.e., the starting point that was selected) in P1.
what this means and how a cycle crossover operation
This task is marked as ªcompleted.º Then, the task at the
works. For example, two parent strings, A and B, are used
same position in P2 (T2S ) is also marked off as ªcompleted.º
in this example. At the outset, strings A and B have the
Then, the task in P1 that matches T2S must be located. When
following structure:
this is found to be at position X in P1, this task (T1X ) is
A 8 6 4 10 9 7 1 5 3 2 marked off as ªcompleted.º Then, the task that is at the
B 10 2 3 5 6 9 8 7 4 1: location X in P2 is marked off as ªcompletedº as well. The
same process is repeated until the start task (T1S ) is reached
To initiate the operation, a starting point must be chosen again. Once this happens, all the tasks that are marked off
first. In this case, the starting point chosen is the first task stay unchanged, while the rest are swapped between
from parent string A. strings. After crossover is completed, the strings will be
A0 8 ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ reordered/converted back to its two dimensional form to
B0 10 ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ: enable the calculation of their new fitness values.
In this work, swapp mutation is adopted. This mutation
As mentioned earlier, every task has to be taken from technique works by randomly selecting two tasks and then
one of the two parents. Therefore, with the first choice being swapping them. The swap mutation technique used in this
task 8 from position 1 of string A, we must now get task 10 project randomly selects a processor and then chooses a task
from string A because this is the task at the equivalent randomly on that processor. Similarly, a second processor is
position in string B. randomly selected. However, as the second processor may
A0 8 ÿ ÿ 10 ÿ ÿ ÿ ÿ ÿ ÿ be the same as the first, there is a possible chance that the
B0 10 ÿ ÿ 5 ÿ ÿ ÿ ÿ ÿ ÿ: second task selected is the same as the first task. When this
happens, the mutation process will be redundant and,
This selection in turn requires that we select task 5 from hence, limits the search space. Therefore, the swap mutation
string A next because task 5 is situated at the same position operation must ensure that both the processors and tasks
(position 4) in string B. Using a similar selection pattern, selected are different before these tasks can be swapped
this process continues until the following pattern is over. After mutating the strings, the population will be
generated: decoded to find the new fitness values.
A0 8 6 ÿ 10 9 7 1 5 ÿ 2 4.9 Evaluation of Strings
B0 10 2 ÿ 5 6 9 8 7 ÿ 1
After completing the mutation process, the population of
This process terminates when task 1 is selected from strings will be evaluated using the fitness function. Each
string A. This is because the selection of task 1 results in individual string will have a new fitness value and a new
having to choose task 8 next from string A. However, this is probability of surviving into the next generation. These
impossible because task 8 have been selected as the first values will then be used to define the slots of the roulette
task earlier. Hence, the process has to terminate at this wheel in the next GA cycle. The total and average fitness
point. The fact that we eventually return to the original task values of the strings in the pool are calculated after every
completes a cycle, thus giving the operator its name. cycle to see if the new pool of strings is fitter than the ones
Following the completion of this cycle, the remaining gaps in the old pool.
in the parent strings are filled with tasks from the other Instead of waiting for the GA to converge, it will be
string. This means that the tasks from the parent strings at allowed to run for a fixed number of k cycles (k 10 in this
Authorized licensed use limited to: JSS ACADEMY OF TECHNICAL EDUCATION. Downloaded on June 12,2010 at 06:02:16 UTC from IEEE Xplore. Restrictions apply.
904 IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS, VOL. 12, NO. 9, SEPTEMBER 2001
paper). The decision was made because solutions generated mapping determined by the GA. This will update the
in less than k generations may not be good enough. On the global load information of the system.
other hand, running the GA for more than k generations Once a set of tasks is assigned, the scheduler will update
may not be very feasible, as too much time will be devoted the global load information table in the central scheduler
to genetic operations. When the GA is terminated after automatically. After every time unit, the scheduler will
k cycles, the fittest string in the pool will be decoded and check the load information table to detect the completion of
used as the task schedule.
tasks by any of the processors. If the tasks are still
As the GA is designed for the purpose of load-balancing,
it is important that the task assignments do not result in any executing, the scheduler will update the load information
idle processors. Hence, if the fittest assignment determined table automatically by deducting one unit of time from the
by the GA results in any processors being idle, the remaining times of the tasks that are currently processed by
assignment will be rejected. The GA will run for another each processor. This process will continue until the
10 cycles again to find another task assignment that utilizes scheduler detects the completion of a task at the processors.
all processors.
5.2 Threshold Policy
Fixed (or static) threshold values do not work very well
5 INITIATION OF THE LOAD-BALANCING with this algorithm since the state of the system is changing
MECHANISM all the time. For example, if only 15 tasks are left in the
The load-balancing mechanism involves more than devel- system, the fixed threshold value determined earlier for a
oping optimal task mappings. Other issues, such as the system with 100 tasks will now be too large for the load-
initiation rule, information exchange rule, and threshold balancing mechanism to be effective. Hence, an adaptive
policy, also play important roles in the development of this
threshold policy [4], [21] is used so that the thresholds are
load-balancing mechanism. However, as the performance of
adjusted as the global system load changes.
this mechanism relies mainly on the GA for good task
mappings, we will consider the initiation of the GA as the 5.3 Average Load
initiation of the balancing mechanism.
Since thresholds are detrimental to the fitness of the
It is important to decide when and how often to initiate
the load-balancing mechanism in order to achieve generated task mappings, they must be adjusted each time
maximum profits from it. As the mechanism used in before the tasks within the sliding-window are assigned
this paper only schedules tasks without task migration, (via the GA). In order to determine proper thresholds, the
running the load-balancing too often may overload the average load must be determined first. This is achieved by
processors. The central scheduler may keep assigning summing the current load in the system (at the time when
more tasks to the processors when only a few of the the load-balancing function is called) and the new load
previously assigned tasks have been completed. On the contributed by the new set of tasks within the sliding-
other hand, initiating the mechanism infrequently may window and then dividing the total by the number of
result in some processors being idle for a long time before processors in the system:
a new set of tasks is allocated to these processors again.
This will result in low processor utilization. PN PM
i1
CT Ti QTi k1 T Tk
Thus, in this work, the load-balancing mechanism is Lave ;
N
initiated whenever the central scheduler detects that a
processor has finished processing all the tasks in its queue. where
This is more feasible than waiting for all the processors to . Lave average load,
finish executing all their tasks before the GA operation is . CT Ti remaining execution time of the task cur-
repeated again. With this initiation rule, the processors will rently being processed by processor i,
unlikely be idle because, every time a processor executes all . QTi total execution time of all the tasks waiting at
its tasks, another set of tasks will be allocated to it. It is also processor queue i,
unlikely that the processors will become overloaded . T Tk execution time of individual tasks within the
because a task allocation constraint is used as well (more sliding-window,
in Section 6). . N number of processors in the system, and
5.1 Load Information Update . M number of tasks in the sliding-window.
In this paper, the overall load in the system is updated by If allocating the set of new tasks results in all processor
using both the global and automatic update rules. As the loads being the same as the calculated average load value,
central scheduler makes the load-balancing decisions, it is the system will be well balanced. However, using this value
important that the information in the load information table as a threshold will be very restrictive as a global balanced
is recent and updated. However, it is not necessary for the state is hard to achieve, especially in a large system.
local processors to constantly send messages to the central
Sometimes it is more realistic to slightly relax the require-
scheduler after every time unit as this will result in high
communication costs. Instead, information will only be ments for load-balancing. Therefore, heavy and light
collected from all the processors whenever a set of tasks is thresholds are used to add more flexibility to the assign-
sent to the destination processors based on the task ment process.
Authorized licensed use limited to: JSS ACADEMY OF TECHNICAL EDUCATION. Downloaded on June 12,2010 at 06:02:16 UTC from IEEE Xplore. Restrictions apply.
ZOMAYA AND TEH: OBSERVATIONS ON USING GENETIC ALGORITHMS FOR DYNAMIC LOAD-BALANCING 905
5.4 Heavy and Light Thresholds that, even though the fittest task mapping shows good load-
Threshold is a value that is used to indicate whether a balancing and processor utilization, it is not always feasible
processor is heavily or lightly loaded. In a system without a to assign tasks to all processors queues. Therefore, a
threshold policy, the arrival or completion of tasks for every constraint had been placed on the assignment so that only
processor will be reported directly to the central scheduler. those processor queues that will not overload the processors
There will be no indication of the load status of individual will be allocated. Then, the list of tasks assigned in this
processors. round must be recorded for reference later.
However, a system with threshold policy will usually
5.6 Updating the Window
have two workload thresholds. Processors with loads that
are less than the light threshold are referred to as light- 5.6.1 Complete Window
loaded processors, whereas those with loads higher than After all the appropriate tasks have been assigned, the
the heavy threshold are categorized as heavy-loaded window has to be filled up again by sliding along the
processors [12]. subsequent tasks waiting in the task queue and using these
Finally, those with loads between the heavy and light to replace the assigned tasks. In order to do so, first, the
thresholds are normal-loaded processors. Each individual scheduler will have to search for tasks in the window that
processor has a load status and information will only be match the ones that have been assigned. Then, each
sent to the central scheduler when there is a change in the matched task will be removed from the window and
load status instead of when a task arrives or finishes. replaced with a new task taken from the system task queue.
Having a threshold policy in the load-balancing algorithm With the window full again, genetic operations can be
will reduce the traffic overhead significantly. performed on the new set of tasks when the load-balancing
It is important to determine appropriate thresholds for a function is invoked again
good load-balancing algorithm. If the threshold is set too
low, excessive load-balancing will occur, thus causing 5.6.2 Incomplete Window
thrashing and degradation in performance. However, if In the process described above, it was assumed that there
the threshold is set too high, the load-balancing mechanism would always be tasks waiting at the system task queue.
will not be very effective. However, as the simulator only generates a finite number of
Two kinds of threshold policies can be considered for a tasks, there will come a moment in time when there are not
load-balancing algorithm, a fixed threshold policy or an enough tasks to fill up the window. When this occurs,
adaptive threshold policy. As the name suggests, a fixed another rule has to be used to assign these tasks since it is
threshold policy has predetermined thresholds that will not no longer feasible to run the GA on a small number of tasks.
change when the system load changes. On the other hand, To finish allocating the remaining tasks in the system, the
an adaptive threshold policy has thresholds that are adjusted central scheduler will search for the processor with the
as the system load changes. The new thresholds will then be lightest load. When this is found, the first of the remaining
broadcast to the rest of the processors via the central tasks will be assigned to it and the load on this processor
scheduler. Based on the average load value calculated will be updated. After this is completed, the next task can be
earlier, the heavy and light thresholds are derived as assigned by repeating the same process again. This will
follows: continue until all the tasks in the system are assigned.
TH H Lave ;
TL L Lave ; 6 A SIMPLE EXAMPLE
An example is shown below to illustrate how the proposed
where TH is the heavy threshold, TL is the light threshold,
load-balancing mechanism works. All the steps, starting
and H and L are constant multipliers that determine the
from the time the load-balancing mechanism is initiated
flexibility of the load-balancing mechanism. Further, H is
until the assignment of tasks, are discussed in detail.
greater than one and it determines the amount that the
average workload can be exceeded by before the processor Step 1: Current State of the System. Table 2 holds the
becomes heavily loaded. Conversely, L is less than one and information at time t. Since processor 3 is idle, a new set
it shows how much the processor loads can be short of the of tasks has to be allocated.
average before the processor becomes lightly loaded. These
two values determine the flexibility and the effectiveness of Step 2: New Tasks to Be Scheduled. The new set of tasks
the mapping mechanism. The H and L values used for this within the sliding-window is shown in Table 3.
work are set to 1.2 and 0.8, respectively. This means that
processor loads that are 20 percent above or below the Total time units 9 8 7 9 17 18 4 11 17 5
average value will be considered acceptable. 105:
5.5 Task Allocation Step 3: Fittest Task Mapping Generated by the GA. Based
For efficiency, tasks are not allocated one at a time. Instead, on the set of tasks in Step 2, the fittest task mapping
all the tasks on a processor queue are allocated in one shot if generated using the GA is as follows:
the task allocation criteria are met. It is important to note Generated task mapping:
Authorized licensed use limited to: JSS ACADEMY OF TECHNICAL EDUCATION. Downloaded on June 12,2010 at 06:02:16 UTC from IEEE Xplore. Restrictions apply.
906 IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS, VOL. 12, NO. 9, SEPTEMBER 2001
TABLE 2
State of the System at the Outset
TABLE 3
New Tasks Inserted into the Sliding Window
Authorized licensed use limited to: JSS ACADEMY OF TECHNICAL EDUCATION. Downloaded on June 12,2010 at 06:02:16 UTC from IEEE Xplore. Restrictions apply.
ZOMAYA AND TEH: OBSERVATIONS ON USING GENETIC ALGORITHMS FOR DYNAMIC LOAD-BALANCING 907
TABLE 4
Load Information at Time t 1
TABLE 5
Contents of Old Sliding Window
TABLE 6
Contents of New Sliding Window
Authorized licensed use limited to: JSS ACADEMY OF TECHNICAL EDUCATION. Downloaded on June 12,2010 at 06:02:16 UTC from IEEE Xplore. Restrictions apply.
908 IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS, VOL. 12, NO. 9, SEPTEMBER 2001
7.3 Varying the Number of Processors as Window used for larger windows. Therefore, even though there
Size Increases were more tasks to be scheduled in each round, the extra
In this section, the size of the window and the number of load was easily handled by the additional processors.
processors were varied to observe their effect on the GA's
performance. It is important to note that the number of 7.3.2 Average Processor Utilization
processors was changed according to the size of the Unlike the performance improvement in terms of total
window because an inappropriate number of processors completion time, Fig. 8 shows that the average processor
used may prevent the GA from working properly. A utilization deteriorated as the size of the window increased.
window size that is too small for the number of processors This shows that load-balancing is harder when more tasks
available may stop the algorithm from working or result in are to be balanced out across a larger system. Hence,
delays in developing the fittest task assignment. improving the processing time by increasing the window
It was mentioned earlier that if the fittest task assignment size and number of processors accordingly comes at a cost
results in any processors being idle, it will be rejected and of lower processor utilization.
the GA will be initiated again to generate another assign- 7.4 Number of Generation Cycles
ment. Therefore, when there is a situation whereby there are
The number of generation cycles for the GA was changed to
25 processors and the size of the window is 10, the chances
observe the effects of this parameter on the performance of
of having at least one task on each processor (to prevent the
the algorithm.
processors from being idle) is nil. The GA will be reexecuted
over and over again, but a task mapping that works for 7.4.1 Completion Time
this load-balancing mechanism will never be generated. Fig. 9 shows that the total completion time was significantly
Hence, it is crucial that the window size correlates with reduced as the number of generations was increased from 5
the number of processors in the system.
Taking into account all the issues mentioned above, the
number of processors and window sizes used for the test TABLE 7
runs are shown in Table 7. The effects of changing the Window Sizes and Number of Processors
window size (and the number of processors) from 10 to 50
are shown in Fig. 7 and Fig. 8. The results of the FF algorithm
were not shown in these figures as changing the window
sizes does not affect this algorithm.
Authorized licensed use limited to: JSS ACADEMY OF TECHNICAL EDUCATION. Downloaded on June 12,2010 at 06:02:16 UTC from IEEE Xplore. Restrictions apply.
ZOMAYA AND TEH: OBSERVATIONS ON USING GENETIC ALGORITHMS FOR DYNAMIC LOAD-BALANCING 909
to 20. This is due to the fact that the quality of the generated 7.5.1 Completion Time
task assignment improves after each generation. However, It is observed that increasing the population size does not
after 20 generations, it was observed that running the GA increase the performance by much. Even though an
does not seem to improve performance much. The results improvement is shown in Fig. 11, the improvement is only
suggest that running the GA for more generations will be minimal. Despite that, choosing an appropriate population
superfluous as the improvement will only be marginal. size is still very important as one that is too small may cause
the GA to converge too quickly, with insufficient processing
7.4.2 Average Processor Utilization
of too few schemata, while one that is too large results in
Besides reducing the total completion time, the average
long waiting times for significant improvement [6]. Note
processor utilization also improved as the GA was executed that the results shown in Fig. 11 were only based on the
for more generations (Fig. 10). However, once again, the load of the tasks and not the actual processing time.
improvement achieved slowed down as the solution Therefore, if the population pool was larger, the computa-
converged. An important point worth noting is that every tions involved should be more intensive, hence resulting in
test run (for a different number of generations) was based high processing costs. So, using a population size that is too
on different sets of tasks. Running for more generations large will not be very feasible [3].
does not mean that the same population of solutions was
being operated on further. Therefore, the results may be 7.5.2 Average Processor Utilization
slightly different if the same set of solutions was being Despite minimal improvement in terms of total completion
optimized. time, increasing the population size had a positive effect on
the processor utilization. The processors were better
7.5 Changing the Population Size
utilized since a larger search space will give the GA a
Different population sizes were used to generate the results.
more opportunity to find better and fitter task mappings
The population sizes ranged from 5 to 40.
(see Fig. 12).
Authorized licensed use limited to: JSS ACADEMY OF TECHNICAL EDUCATION. Downloaded on June 12,2010 at 06:02:16 UTC from IEEE Xplore. Restrictions apply.
910 IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS, VOL. 12, NO. 9, SEPTEMBER 2001
TABLE 8
H and L Multipliers
Authorized licensed use limited to: JSS ACADEMY OF TECHNICAL EDUCATION. Downloaded on June 12,2010 at 06:02:16 UTC from IEEE Xplore. Restrictions apply.
ZOMAYA AND TEH: OBSERVATIONS ON USING GENETIC ALGORITHMS FOR DYNAMIC LOAD-BALANCING 911
especially in the case of a large number of tasks. In fact, a [18] S. Salleh and A.Y. Zomaya, Scheduling in Parallel Computing
Systems: Fuzzy and Annealing Techniques. Kluwer Academic, 1999.
GA-based scheme works better when the number of tasks is [19] C. Xu and F. Lau, Load-Balancing in Parallel ComputersÐTheory and
large and where we observe consistent performance while Practice. Kluwer Academic, 1997.
other heuristics fail. [20] A.Y. Zomaya, ªParallel and Distributed Computing: The Scene,
The use of a central scheduler was also effective as it can the Props, the Players,º Parallel and Distributed Computing Hand-
book, A.Y. Zomaya, ed., pp. 5-23. New York: McGraw-Hill, 1996.
handle all load-balancing decisions with minimal inter- [21] A.Y. Zomaya, C. Ward, and B. Macey, ªGenetic Scheduling for
processor communication. The threshold policy used also Parallel Processor Systems: Comparative Studies and Performance
provided better performance in comparison to the first fit Issues,º IEEE Trans. Parallel and Distributed Systems, vol. 10, no. 8,
pp. 795-812, Aug. 1999.
algorithm that does not have such a mechanism. Thus, the [22] A.Y. Zomaya, F. Ercal, and S. Olariu, Solutions to Parallel and
GA-based algorithm worked rather well in terms of Distributed Computing Problems: Lessons from Biological Sciences.
achieving the goals of minimum total completion time New York: Wiley, 2001.
and maximum processor utilization [22].
Albert Y. Zomaya received the PhD degree
from the Department of Automatic Control and
Systems Engineering, Sheffield University,
ACKNOWLEDGMENTS United Kingdom. He is a full professor in the
Department of Electrical and Electronic Engi-
The authors would like to thank the three anonymous neering at the University of Western Australia,
referees for the suggested corrections that improved the where he also leads the Parallel Computing
manuscript. Professor Zomaya's work was supported by Research Laboratory. Also, he held visiting
positions at Waterloo University and the
Australian Research Council large grant A00000902. University of Missouri-Rolla. He is the author/
coauthor of five books, more than 120 publica-
tions in technical journals, collaborative books, and conferences, and
REFERENCES the editor of three volumes and three conference proceedings. He is
currently an associate editor for the IEEE Transactions on Parallel and
[1] S.H. Bokhari, ªOn the Mapping Problem,º IEEE Trans. Computers, Distributed Systems, Journal of Interconnection Networks, International
vol. 30, no. 3, pp. 550-557, Mar. 1981. Journal on Parallel and Distributed Systems and Networks, Journal of
[2] F. Bonomi and A. Kumar, ªAdaptive Optimal Load-Balancing in a Future Generation of Computer Systems, and International Journal of
Heterogeneous Multiserver System with a Central Job Scheduler,º Foundations of Computer Science. He is also the founding editor of the
IEEE Trans. Computers, vol. 39, no. 10, pp. 1232-1250, Oct. 1990. Wiley Book Series on Parallel and Distributed Computing. He is the
[3] A. Chipperfield and P. Fleming, ªParallel Genetic Algorithms,º editor-in-chief of the Parallel and Distributed Computing Handbook
(McGraw-Hill, 1996). Professor Zomaya is the chair the IEEE Technical
Parallel and Distributed Computing Handbook, first ed., pp. 1118- Committee on Parallel Processing (1999-current). He is also a board
1193. A. Zomaya, ed., New York: McGraw-Hill, 1996. member of the International Federation of Automatic Control (IFAC)
[4] M. Deriche, M.K. Huang, and Q.T. Tsai, ªDynamic Load- Committee on Algorithms and Architectures for Real-Time Control and
Balancing in Distributed Heterogeneous Systems under Stationary serves on the executive board of the IEEE Task Force on Cluster
and Bursty Traffics,º Proc. 32nd Midwest Symp. Circuits and Computing. He has been actively involved in the organization of national
Systems, vol. 1, pp. 669-672, 1990. and international conferences. Professor Zomaya is a chartered
[5] D.E. Goldberg, Genetic Algorithms in Search, Optimization, and engineer and a senior member of the IEEE. He is a member of the
Machine Learning. Reading, Mass.: Addison-Wesley, 1989. ACM, the Institute of Electrical Engineers (United Kingdom), the New
[6] D.E. Goldberg, ªSizing Populations for Serial and Parallel Genetic York Academy of Sciences, the American Association for the Advance-
Algorithms,º Proc. Third Int'l Conf. Genetic Algorithms, pp. 70-79, ment of Science, and Sigma Xi. He received the 1997 Edgeworth David
1989. Medal from the Royal Society of New South Wales for outstanding
contributions to Australian science. His research interests are in the
[7] C.A. Gonzalez Pico and R.L. Wainwright, ªDynamic Scheduling areas of high performance computing, parallel and distributed algo-
of Computer Tasks Using Genetic Algorithms,º Proc. First IEEE rithms, scheduling and load-balancing, scientific computing, adaptive
Conf. Evolutionary Computation, IEEE World Congress Computational systems, mobile computing, data mining, and cluster-, network-, and
Intelligence, vol. 2, pp. 829-833, 1994. meta-computing.
[8] A. Hac and X. Jin, ªDynamic Load-Balancing in a Distributed
System Using a Sender-Initiated Algorithm,º Proc. 13th Conf. Local
Computer Networks, pp. 172-180, 1988. Yee-Hwei Teh received the BEng degree in
[9] J.H. Holland, Adaptation in Natural and Artificial Systems. Univ. of information technology and the BC degree from
Michigan Press, 1975. the University of Western Australia (UWA) in
[10] T.C. Hu, Combinatorial Algorithms. Addison-Wesley, 1982. 1998. While completing her degree in Engineer-
[11] M.D. Kidwell and D.J. Cook, ªGenetic Algorithm for Dynamic ing, she developed a keen interest in parallel
Task Scheduling,º Proc. IEEE 13th Ann. Int'l Phoenix Conf. and distributed computing. This led to her
decision to join the Parallel Computing Research
Computers and Comm., pp. 61-67, 1994. Lab with the Department of Electrical and
[12] Y. Lan and T. Yu, ªA Dynamic Central Scheduler Load-Balancing Electronic Engineering at UWA in her final year,
Mechanism,º Proc. IEEE 14th Ann. Int'l Phoenix Conf. Computers where she completed her honors dissertation on
and Comm., pp. 734-740, 1995. using genetic algorithms for dynamic load balancing in a parallel
[13] S. Lee, T. Kang, M. Ko, G. Chung, J. Gil, and C. Hwang, ªA processing environment. Upon graduation, she worked as a software
Genetic Algorithm Method for Sender-Based Dynamic Load- engineer at PDX Infoworld (Kuala Lumpur), where she was involved in
Balancing Algorithm in Distributed Systems,º Proc. 1997 First Int'l the design of a financial application server which serves as a platform for
Conf. Knowledge-Based Intelligent Electronic Systems, vol. 1, pp. 302- the development of electronic financial services, such as bill present-
307, 1997. ment and payment. She is currently working as a technical consultant at
[14] H.C. Lin and C.S. Raghavendra, ªA Dynamic Load-Balancing Oracle Corporation Malaysia, implementing data warehouse and
Policy with a Central Job Dispatcher (LBC),º IEEE Trans. Software financial applications for the banking industry. She has a strong interest
in Java and Internet technology and wishes to use her knowledge in
Eng., vol. 18, no. 2, pp. 148-158, Feb. 1992. parallel computing to write parallel and distributed programs that will
[15] Z. Michalewicz, Genetic Algorithms + Data Structures = Evolution enhance the performance of the software applications that she builds in
Programs, second ed. Berlin: Springer-Verlag, 1994. the future.
[16] M. Munetomo, Y. Takai, and Y. Sato, ªA Genetic Approach to
Dynamic Load-Balancing in a Distributed Computing System,º
Proc. First Int'l Conf. Evolutionary Computation, IEEE World Congress
Computational Intelligence, vol. 1, pp. 418-421, 1994. . For more information on this or any computing topic, please visit
[17] L.M. Ni, C.W. Xu, and T.B. Gendreau, ªA Distributed Drafting our Digital Library at http://computer.org/publications/dlib.
Algorithm for Load-Balancing,º IEEE Trans. Software Eng., vol. 11,
no. 10, pp. 1152-1161, Oct. 1985.
Authorized licensed use limited to: JSS ACADEMY OF TECHNICAL EDUCATION. Downloaded on June 12,2010 at 06:02:16 UTC from IEEE Xplore. Restrictions apply.