Dynamic Load Balancing on Dedicated Heterogeneous Systems
|
|
|
- Silas Blair
- 10 years ago
- Views:
Transcription
1 Dynamic Load Balancing on Dedicated Heterogeneous Systems Ismael Galindo 1, Francisco Almeida 1,andJosé Manuel Badía-Contelles 2 1 Department of Statistics and Computer Science La Laguna University Spain 2 Department of Computer Science and Engineering Jaume I University Spain Abstract. Parallel computing in heterogeneous environments is drawing considerable attention due to the growing number of these kind of systems. Adapting existing code and libraries to such systems is a fundamental problem. The performance of this code is affected by the large interdependence between the code and these parallel architectures. We have developed a dynamic load balancing library that allows parallel code to be adapted to heterogeneous systems for a wide variety of problems. The overhead introduced by our system is minimal and the cost to the programmer negligible. The strategy was validated on several problems to confirm the soundness of our proposal. 1 Introduction The spread of heterogeneous architectures is likely to increase in the coming years due to the growing trend toward the institutional use of multiple computing resources (usually heterogeneous) as the sole computing resource [1]. The performance of this kind of system is very conditioned by the strong dependence that exists between parallel code and architecture [2]. Specifically, the process of allocating tasks to processors often becomes a problem requiring considerable programmer effort [3]. We have devised a library that allows dynamic task balancing within a parallel program running on a dedicated heterogeneous system, while adapting to system conditions during execution. This library facilitates the programmer the task of tailoring parallel code developed for homogeneous systems to heterogeneous ones [4]. The library has been implemented in a way that does not require changing any line of code in existing programs, thus minimizing code intrusion. All that is required is to use three new functions: Library start: ULL_MPI_init_calibratelib() Library end: ULL_MPI_shutdown_calibratelib() Balancing function: ULL_MPI_calibrate (...) This work has been supported by the EC (FEDER) and the Spanish MEC with the I+D+I contract number: TIN C A. Lastovetsky et al. (Eds.): EuroPVM/MPI 2008, LNCS 5205, pp , c Springer-Verlag Berlin Heidelberg 2008
2 Dynamic Load Balancing on Dedicated Heterogeneous Systems 65 We validated our proposal on three test problems: matrix product [5], the Jacobi method for solving linear systems [5] and resource allocation optimization via dynamic programming algorithms [6]. The computational results show that the benefits yielded by using our balancing library offer substantial time reductions in every case. The efficiency level obtained, considering the minimum code intrusion, makes this library a useful tool in the context of heterogeneous platforms. This paper is structured as follows: in Section 2 we introduce some of the issues that motivated this research and the main goals to achieve. Section 3 shows how to use our library and the advantages our approach yields. In Section 4 we describe the balancing algorithm used by the library and Section 5 shows the validation performed on the selected problems. We close with some conclusions and future research directions. 2 Background and Objectives Programming on heterogeneous parallel systems is obviously architecture dependent and the performance obtained is strongly conditioned by the set of machines performing the computation. This means that, in most cases, the techniques used on homogeneous parallel systems must be reworked to be applied to systems which are not necessarily homogeneous [3,7]. Specifically, we set out to solve the problem of synchronizing parallel programs in heterogeneous architectures. Given a program developed for a homogeneous system, we hope to obtain a version that makes use of the system s heterogeneous abilities by allocating tasks according to the computational ability of each processing element. The simplest way to approach the problem consists on manually adapting the code as required by the architectural characteristics[8]. This approach usually implies at least a knowledge of said characteristics, such that the parallel program s tasks can be allocated according to the computational capacity of each processor. A more general approach can be obtained in the context of self-optimization strategies based on a run time model [4,9]. In this approach, an analytical model that parametrizes the architecture and the algorithm is instantiated for each specific case so as to optimize program execution. This strategy is considerably more general than the previous one, though more difficult to apply since the modeling process is not trivial [10,11], nor is its subsequent instantiation and minimization for each case. A search of the literature yields some generic tools such as mpc [12,13] and HeteroMPI [14,15] which provide the mechanisms that allow algorithms to be adapted to heterogeneous architectures, but which also require more input from the user and are more code intrusive. Adaptive strategies have been also proposed in AMPI [16] and Dyn-MPI [17]. AMPI is built on Charm++ [18] and allows automatic load balancing based on process virtualization. Although it is an interesting generic tool, it involves a complex runtime environment. Our objective is to develop a simple and efficient dynamic adaptation strategy of the code for heterogeneous systems that minimizes code intrusion, so that the program can be adapted without any prior knowledge of the architecture and
3 66 I. Galindo, F. Almeida, and J.M. Badía-Contelles // procs = Number of processors ; miid = Process ID ; n = Problem s iz e... despl = ( int ) malloc( nprocs sizeof( int )); count = ( int ) malloc( nprocs sizeof( int )); nrows = n / nprocs; despl [0] = 0; for ( i = 0; i < nprocs; i++) { count [ i ] = nrows ; if ( i ) despl [ i ] = despl [ i 1] + count [ i 1]; while ( it < maxit ) { fin = despl [ miid ] + count [ miid ]; resi_local = 0.0; for ( i = despl [ miid ]; i < fin ; i++) { sum = 0.0; for ( j = 0; j < n ; j++) sum += a [ i ][j ] x [ j ]; resi_local += fabs( sum b [ i ]); sum += a [ i ][i ] x [ i ]; new_x [ i ] = (b [ i ] sum) / a [ i ][i ]; MPI_Allgatherv (&new_x [ despl [ miid ]], count [ miid ], MPI_DOUBLE, x, count, despl, MPI_DOUBLE, new_com ); it++; Listing 1.1. Basic algorithm of an iterative scheme without the need to develop analytical models. We intend to apply the technique to a wide variety of problems, specifically to parallel programs which can be expressed as a series of synchronous iterations. To accomplish this, we have developed a library with which to instrument specific sections in the code. The instrumentation required is minimal, as it is the resulting overhead. Using this instrumentation, the program will dynamically adapt itself to the destination architecture. This approach is particularly effective in SPMD applications with replicated data. DynMPI is perhaps a tool closer to our library in terms of the objectives but it is focussed on non dedicated clusters. DynMPI has been implemented as a MPI extension and has a wider range of applicability. However, is more code intrusive since data structures, code sections and communication calls must be instrumented. It uses daemons to monitor the system, what means extra overhead, and the standard MPI execution script must be replaced by the extended version. Our library s design is directed at solving the time differences obtained when executing the parallel code without the necessity of extra monitoring daemons. It is based on an iterative scheme, such as that appearing in Listing 1.1, which shows a parallel version of the iterative Jacobi algorithm to solve linear systems. The code involves a main loop that executes maxit iterations where a calculation operation is performed for each iteration. Each processor performs calculations in accordance with the size of the task allocated, n/nprocs. Following this calculation, a collective communication operation is carried out during which all the processors synchronize by gathering collecting data before proceeding to the next iteration.
4 Dynamic Load Balancing on Dedicated Heterogeneous Systems 67 (a) homogeneous allocation (b) dynamic load balancing Fig. 1. Time diagrams on heterogeneous systems. Each bar corresponds to the execution time of a processor on an iteration. for ( i = 0; i <= N ; i++) { for ( j = 0; j <= M ; j++) { // irregular loop. Iteration j is O(j) G [ i ][j ] = ( f )(i, 0); for ( x = 0; x <= j ; x++) { fij = G [ i 1][j x ] + ( f )(i, x ); if ( G [ i ][j ] < fij) G [ i ][j ] = fij ; Listing 1.2. Sequential algorithm for the resource allocation problem Let s suppose that a code like that showed in Listing 1.1 is executed on a heterogeneous cluster made up of, for example, 3 processors, such that processor 2 is twice as fast as processor 1, and processor 2 is four times as fast as processor 0. Then, implementing a homogeneous task allocation, where the same problem size is assigned to each node results in an execution time which is directly dependent on that of the slowest processor. Figure 1(a) shows the results with a problem size 1500 and with subproblems of size 500. In this case the slowest processor that determines the execution time is processor 0. A typical solution to this problem consists of allocating on each processor a static load proportional to the its computational capacity. However, several reasons brought us to consider the dynamic strategy. The allocation of tasks according to the computational power of the processors depends on the processors and also on the application. This fact involves some benchmarking to determine the computational power of the processors and usually it is highly code intrusive. On the other hand, when facing the parallelization of codes with non-regular loops (see code of the resource allocation in Listing 1.2), the static proportional allocation is not a trivial task and if performed at runtime, the overhead introduced may not be negligible. The next section details the strategy used for balancing task allocation with a low overhead for the execution time of each processor.
5 68 I. Galindo, F. Almeida, and J.M. Badía-Contelles // procs = Number of processors ; miid = Process ID ; n = Problem s iz e... despl = ( int ) malloc( nprocs sizeof( int )); count = ( int ) malloc( nprocs sizeof( int )); nrows = n / nprocs; despl [0] = 0; for ( i =0; i< nprocs; i++) { count [ i ] = nrows ; if ( i ) despl [ i ] = despl [ i 1] + count [ i 1]; while ( it < maxit ) { fin = despl [ miid ] + count [ miid ]; resi_local = 0.0; for ( i = despl [ miid ]; i < fin ; i++) { ULL_MPI_calibrate ( ULL_MPI_INIT, it, &count, &despl, threshold,1,n ) sum = 0.0; for ( j = 0; j < n ; j++) sum += a [ i ][j ] x [ j ]; resi_local += fabs( sum b [ i ]); sum += a [ i ][i ] x [ i ]; new_x [ i ] = (b [ i ] sum) / a [ i ][i ]; ULL_MPI_calibrate ( ULL_MPI_END, it, &count, &despl, threshold, 1, n ) MPI_Allgatherv (&new_x [ despl [ miid ]], count [ miid ], MPI_DOUBLE, x, count, despl, MPI_DOUBLE, new_com ); it++; Listing 1.3. Calibrated version of the basic algorithm of an iterative scheme 3 Dynamic Task Allocation The library we developed allows for dynamic balancing with the introduction of just two calls to the ULL_MPI_calibrate() function in the section of code that is to be balanced, as shown by the code in Listing 1.3. A call is introduced at the beginning and end of the section to be balanced, so that each processor can know on runtime how long it will take to execute the assigned task. The balanced load results from a comparison of this execution time for each processor and the subsequent task redistribution. Listing 1.4 shows the interface of the calibrating function. The following arguments are input to the balancing function: section:the section is used to determine the entry point where the routine is used. It can take the following two values: ULL MPI INIT: Beginning of section to balance. ULL MPI END: End of section to balance. int ULL_MPI_calibrate ( ULL_MPI_Section section, int iteration, int counts, int displs, int threshold, int size_object, int size_problem ); Listing 1.4. Prototype of the ULL calibrating function
6 Dynamic Load Balancing on Dedicated Heterogeneous Systems 69 iteration: Indicates the iteration to be balanced. A 0 value indicates whether the program is on its first or subsequent iterations. The first iteration has a particular treatment. counts[], displs[]: Indicates the task size to be computed by each processor. counts[] is an integer array containing the amount of work that is processed by each processor. displs[] specifies the distance (relative to the work data vector) at which to place the data processed by each processor. threshold: Corresponds to a number of microseconds that indicate wheather to balance or not. The behaviour per iteration is as follows: Let T i bethetimeprocessori takes to execute the task assigned. T max = Maximum(T i ) T min = Minimum(T i ) If (T max T min ) > threshold then balance. If not, the system has already balanced the workload. sizeobjects: The size of the data type manipulated during computation expressed as the number of elements to be communicated in the communication routine, i.e, in the example of Listing 1.3, size objects is 1, since the elements of the matrix are double and in the communication routine they are communicated as MPI DOUBLE data types. sizeproblem: Corresponds to the total problem size to be computed in parallel, so the calculations of the new task sizes are consistent with the tasks allocated to each processor counts[], displs[]. Running the synthetic code again on the previous three-processor cluster with a problem size equal to 1500 and a 100-microsecond threshold yields the following values for problem size (counts[]) and execution times (T i ): Iteration i = 0. The algorithm begins with a homogeneous task allocation: counts[proc0] = 500, T 0 = 400 us counts[proc1] = 500, T 1 = 200 us counts[proc2] = 500, T 2 = 100 us if ((T max = 400) (T min = 100)) > (threshold = 100) then balance(counts[]) Iteration i = 1. A balancing operation is performed automatically: counts[proc0] = 214, T 0 = 171 us counts[proc1] = 428, T 1 = 171 us counts[proc2] = 858, T 2 = 171 us Figure 1(b) shows a diagram of the iterations required to correct the load imbalance. For this synthetic code the load distribution is exactly proportional to the hypothetical loads, but this is not necesarily true in practice. Note the library s ease of use and the minimum code intrusion. The only change necessary is to add calls to the functions at the beginning and end of thecodetoinitializeandclearthememory(ull_mpi_init_calibratelib(), ULL_MPI_shutdown_calibratelib()).
7 70 I. Galindo, F. Almeida, and J.M. Badía-Contelles Table 1. Heterogenous platform used for the tests. All the processors are Intel (R) Xeon (TM). Cluster 1 Cluster 2 Cluster 3 Processor Frequency Processor Frecuency Processor Frecuency GHz 0, GHz 0, GHz GHz 2, GHz 2, 3, 4, GHz GHz 4, GHz 6, GHz GHz 6, GHz 8, 9, 10, GHz 4 The Balancing Algorithm The call to the ULL_MPI_calibrate(...) function must be made by all the processors and implements the balancing algorithm. Although a large number of balancing algorithms can be found in the literature [19], we opted for a simple and efficient strategy that yielded satisfactory results. The methodology chosen, however, allows for the implementation of balancing algorithms which may be more efficient. All processors perform the same balancing operations as follows: The time required by each processor to carry out the computation in each iteration has to be given to the algorithm. A collective operation is performed to share these times among all processors. T [] = vector where each processor gathers all the times (T i ). size problem = the size of the problem to be computed in parallel. counts[] = holds the sizes of the tasks to be computed on each processor. The first step is to verify that the threshold is not being exceeded if (MAX(T []) - MIN(T [])) > THRESHOLD then, BALANCE TherelativepowerRP [] is calculated for each processor and corresponds to the relationship between the time T [i] invested in performing the computation for a size counts[i] versus the time taken for a computational unit as a function of the problem size, size problem: RP [i] = counts[i] T [i] Finally, the sizes of the new counts are calculated for each processor:, 0 i Num procs 1; SRP = Num procs 1 i=0 RP [i] RP [i] counts[i] =size problem SRT Once the counts vector is computed, the displs vector is also updated. Using this method, each processor fits the size of the task allocated according to its own Table 2. Overhead of the calibration running on an homogeneous system with 8 processors Intel (R) Xeon (TM) 3.2 GHz Matrix Product Jacobi Resource Allocation Problem Size Problem Parallel Calibrated Parallel Calibrated Parallel Calibrated
8 Dynamic Load Balancing on Dedicated Heterogeneous Systems 71 computational capacity. The system could be extended to run on heterogeneous non dedicated systems and on systems with dynamic load. For that purpose, the array T [] must be fed not only with the execution times but with the loading factor on each processor. To test the overheadintroduced by our tool, we have executed classical parallel codes and the calibrated instrumented versions on an homogeneous system with 8 Intel 3.20 GHz processors. The parallel codes perform block assignments of the tasks with blocks of the same size for each processor. Since we are dealing with an homogeneous system, no performance improvement should be achieved and the differences in running times represent the overhead introduced. Table 2 shows the running times in each case. The overhead introduced by the tool is negligible. Note that in the resource allocation problem, the performance is improved by the code using the calibration tool. This is due to the fact that an homogeneous block data distribution is not the best choice in this case. 5 Computational Results To check the advantages of the proposed method, we carried out a comprehensive computational experiment where the three aforementioned applications were balanced on different heterogeneous systems. The tests were run on three clusters (Table 1) to check the library s response to an increase in the number of processors with varying computational capacities. For the sake of the simplicity, the clock frecuency is the indicator of the level of heterogeneity, however it is a well known fact that better adjustments can be done by executing representative samples of the applications to determine the speeds of the processors. We will first analyze the performance of the resource allocation problem. Four algorithms were implemented: sequential and parallel homogeneous, heterogenous and calibrated. All parallel versions of the algorithm were run on the three clusters, giving the following results: T seq : Time in seconds of the sequential version. T par : Time in seconds of the parallel version, homogeneous data distribution. T het : Time in seconds of the parallel version, static heterogeneous data distribution proportional to the computational load. Table 3. Results for the Resource Allocation Problem Cluster Size T sec T par T het T cal G Rpar G Rhet , , , ,
9 72 I. Galindo, F. Almeida, and J.M. Badía-Contelles time (ms) x1e Execution time for calibrated RAP problem 9000 Threshold for calibration iterations Fig. 2. Execution time per iteration for the Resource Allocation Problem on cluster 1 (four processors) with a size of 2304 T cal : Time in seconds of the balanced parallel version. G Rpar = Tpar T cal T par 100: Gain relative to the homogeneous version. G Rhet = T het T cal T het 100: Gain relative to the heterogeneous version. In the calibrated version, the calibrating function was only added where appropriate, without altering the code from the parallel version. The sequential version was executed on the fastest processor within each cluster. The threshold is problem dependent and for testing purposes has been stated experimentally. The results are shown in Table 3 and are expressed in seconds. A 100-microsecond threshold was used for the calibrating algorithm. We observe important performance gains when using our tool. Only in one case our tool worsened the performance, and that is likely due to the threshold used in this case. Figure 2 shows the results obtained after each iteration on cluster 1 (four processors) with a problem size of Each bar represents the execution time for each processor. Note that the times in iteration 0 of processors 2 and 3 are much higher than the rest due to the unbalanced execution. The calibration redistributes the workload, placing a higher load on processors 0 and 1 and decreasing the load on processors 2 and 3. The problem gets calibrated at iteration 4 when using a 1000 milliseconds threshold. Table 4. Results for the matrix product and for the Jacobi method Matrix Multiplication Jacobi Method Cluster Size T sec T par T cal G R Size T sec T par T cal G R
10 Dynamic Load Balancing on Dedicated Heterogeneous Systems 73 For the matrix product and Jacobi cases the tests used square matrices of size Size Size. A threshold of 2000 microseconds was chosen for the balancing algorithm. Problem size used was a multiple of the number of processors selected. The results are shown in Table 4. Note the significant gain resulting from the dynamic balancing, which in some cases exceeds 50%. For the Jacobi method a 100-microsecond threshold was chosen for the calibrating algorithm. 6 Conclusions and Future Research We have developed a library to perform dynamic load balancing in heterogeneous systems. The library can be applied to a wide range of problems and the effort required by the programmer is minimal, since the approach taken involves minimum intrusion in the user s code. In future work we plan to widen the library s applicability to other types of programs and systems. References 1. Top500 Org: Systems under development (2006), 2. Dongarra, J., Bosilca, G., Chen, Z., Eijkhout, V., Fagg, G.E., Fuentes, E., Langou, J., Luszczek, P., Pjesivac-Grbovic, J., Seymour, K., You, H., Vadhiyar, S.S.: Self-adapting numerical software (sans) effort. IBM Journal of Research and Development 50(2-3), (2006) 3. Kalinov, A., Lastovetsky, A.L., Robert, Y.: Heterogeneous computing. Parallel Computing 31(7), (2005) 4. Cuenca, J., Giménez, D., Martinez, J.P.: Heuristics for work distribution of a homogeneous parallel dynamic programming scheme on heterogeneous systems. Parallel Comput. 31(7), (2005) 5. Wilkinson, B., Allen, M.: Parallel Programming: Techniques and Applications Using Networked Workstations and Parallel Computers. Prentice Hall, Englewood Cliffs (2004) 6. Alba, E., Almeida, F., Blesa, M.J., Cotta, C., Díaz,M.,Dorta,I.,Gabarró, J., León, C., Luque, G., Petit, J.: Efficient parallel lan/wan algorithms for optimization. The mallba project. Parallel Computing 32(5-6), (2006) 7. Kalinov, A.: Scalability of heterogeneous parallel systems. Programming and Computer Software 32(1), 1 7 (2006) 8. Aliaga, J.I., Almeida, F., Badía-Contelles, J.M., Barrachina-Mir, S., Blanco, V., Castillo, M.I., Dorta, U., Mayo, R., Quintana-Ortí, E.S., Quintana-Ortí, G., Rodríguez, C., de Sande, F.: Parallelization of the gnu scientific library on heterogeneous systems. In: ISPDC/HeteroPar, pp IEEE Computer Society, Los Alamitos (2004) 9. Almeida, F., González, D., Moreno, L.M.: The master-slave paradigm on heterogeneous systems: A dynamic programming approach for the optimal mapping. Journal of Systems Architecture 52(2), (2006) 10. Wu, X.: Performance Evaluation, Prediction and Visualization of Parallel Systems. Kluwer Academic Publishers, Dordrecht (1999)
11 74 I. Galindo, F. Almeida, and J.M. Badía-Contelles 11. Al-Jaroodi, J., Mohamed, N., Jiang, H., Swanson, D.R.: Modeling parallel applications performance on heterogeneous systems. In: IPDPS, p IEEE Computer Society, Los Alamitos (2003) 12. Lastovetsky, A.: Adaptive parallel computing on heterogeneous networks with mpc. Parallel computing 28, (2002) 13. mpc: parallel programming language for heterogeneous networks of computers, Lastovetsky, A., Reddy, R.: Heterompi: Towards a message-passing library for heterogeneous networks of computers. Journal of Parallel and Distributed Computing 66, (2006) 15. HeteroMPI: Mpi extension for heterogeneous networks of computers, Huang, C., Lawlor, O., Kale, L.: Adaptive mpi (2003) 17. Weatherly, D., Lowenthal, D., Lowenthal, F.: Dyn-mpi: Supporting mpi on non dedicated clusters (2003) 18. charm++ System, Bosque, J.L., Marcos, D.G., Pastor, L.: Dynamic load balancing in heterogeneous clusters. In: Hamza, M.H. (ed.) Parallel and Distributed Computing and Networks, pp IASTED/ACTA Press (2004)
A Performance Study of Load Balancing Strategies for Approximate String Matching on an MPI Heterogeneous System Environment
A Performance Study of Load Balancing Strategies for Approximate String Matching on an MPI Heterogeneous System Environment Panagiotis D. Michailidis and Konstantinos G. Margaritis Parallel and Distributed
Distributed communication-aware load balancing with TreeMatch in Charm++
Distributed communication-aware load balancing with TreeMatch in Charm++ The 9th Scheduling for Large Scale Systems Workshop, Lyon, France Emmanuel Jeannot Guillaume Mercier Francois Tessier In collaboration
Source Code Transformations Strategies to Load-balance Grid Applications
Source Code Transformations Strategies to Load-balance Grid Applications Romaric David, Stéphane Genaud, Arnaud Giersch, Benjamin Schwarz, and Éric Violard LSIIT-ICPS, Université Louis Pasteur, Bd S. Brant,
A Review of Customized Dynamic Load Balancing for a Network of Workstations
A Review of Customized Dynamic Load Balancing for a Network of Workstations Taken from work done by: Mohammed Javeed Zaki, Wei Li, Srinivasan Parthasarathy Computer Science Department, University of Rochester
Load Balancing on a Non-dedicated Heterogeneous Network of Workstations
Load Balancing on a Non-dedicated Heterogeneous Network of Workstations Dr. Maurice Eggen Nathan Franklin Department of Computer Science Trinity University San Antonio, Texas 78212 Dr. Roger Eggen Department
Efficient Parallel Execution of Sequence Similarity Analysis Via Dynamic Load Balancing
Efficient Parallel Execution of Sequence Similarity Analysis Via Dynamic Load Balancing James D. Jackson Philip J. Hatcher Department of Computer Science Kingsbury Hall University of New Hampshire Durham,
How To Balance In Cloud Computing
A Review on Load Balancing Algorithms in Cloud Hareesh M J Dept. of CSE, RSET, Kochi hareeshmjoseph@ gmail.com John P Martin Dept. of CSE, RSET, Kochi [email protected] Yedhu Sastri Dept. of IT, RSET,
Distributed Dynamic Load Balancing for Iterative-Stencil Applications
Distributed Dynamic Load Balancing for Iterative-Stencil Applications G. Dethier 1, P. Marchot 2 and P.A. de Marneffe 1 1 EECS Department, University of Liege, Belgium 2 Chemical Engineering Department,
A Robust Dynamic Load-balancing Scheme for Data Parallel Application on Message Passing Architecture
A Robust Dynamic Load-balancing Scheme for Data Parallel Application on Message Passing Architecture Yangsuk Kee Department of Computer Engineering Seoul National University Seoul, 151-742, Korea Soonhoi
Dynamic Load Balancing in a Network of Workstations
Dynamic Load Balancing in a Network of Workstations 95.515F Research Report By: Shahzad Malik (219762) November 29, 2000 Table of Contents 1 Introduction 3 2 Load Balancing 4 2.1 Static Load Balancing
A Flexible Cluster Infrastructure for Systems Research and Software Development
Award Number: CNS-551555 Title: CRI: Acquisition of an InfiniBand Cluster with SMP Nodes Institution: Florida State University PIs: Xin Yuan, Robert van Engelen, Kartik Gopalan A Flexible Cluster Infrastructure
Retargeting PLAPACK to Clusters with Hardware Accelerators
Retargeting PLAPACK to Clusters with Hardware Accelerators Manuel Fogué 1 Francisco Igual 1 Enrique S. Quintana-Ortí 1 Robert van de Geijn 2 1 Departamento de Ingeniería y Ciencia de los Computadores.
Load Distribution in Large Scale Network Monitoring Infrastructures
Load Distribution in Large Scale Network Monitoring Infrastructures Josep Sanjuàs-Cuxart, Pere Barlet-Ros, Gianluca Iannaccone, and Josep Solé-Pareta Universitat Politècnica de Catalunya (UPC) {jsanjuas,pbarlet,pareta}@ac.upc.edu
Parallel Scalable Algorithms- Performance Parameters
www.bsc.es Parallel Scalable Algorithms- Performance Parameters Vassil Alexandrov, ICREA - Barcelona Supercomputing Center, Spain Overview Sources of Overhead in Parallel Programs Performance Metrics for
Parallel Computing. Benson Muite. [email protected] http://math.ut.ee/ benson. https://courses.cs.ut.ee/2014/paralleel/fall/main/homepage
Parallel Computing Benson Muite [email protected] http://math.ut.ee/ benson https://courses.cs.ut.ee/2014/paralleel/fall/main/homepage 3 November 2014 Hadoop, Review Hadoop Hadoop History Hadoop Framework
A Simultaneous Solution for General Linear Equations on a Ring or Hierarchical Cluster
Acta Technica Jaurinensis Vol. 3. No. 1. 010 A Simultaneous Solution for General Linear Equations on a Ring or Hierarchical Cluster G. Molnárka, N. Varjasi Széchenyi István University Győr, Hungary, H-906
A Comparison of General Approaches to Multiprocessor Scheduling
A Comparison of General Approaches to Multiprocessor Scheduling Jing-Chiou Liou AT&T Laboratories Middletown, NJ 0778, USA [email protected] Michael A. Palis Department of Computer Science Rutgers University
FPGA area allocation for parallel C applications
1 FPGA area allocation for parallel C applications Vlad-Mihai Sima, Elena Moscu Panainte, Koen Bertels Computer Engineering Faculty of Electrical Engineering, Mathematics and Computer Science Delft University
Locality-Preserving Dynamic Load Balancing for Data-Parallel Applications on Distributed-Memory Multiprocessors
JOURNAL OF INFORMATION SCIENCE AND ENGINEERING 18, 1037-1048 (2002) Short Paper Locality-Preserving Dynamic Load Balancing for Data-Parallel Applications on Distributed-Memory Multiprocessors PANGFENG
The Methodology of Application Development for Hybrid Architectures
Computer Technology and Application 4 (2013) 543-547 D DAVID PUBLISHING The Methodology of Application Development for Hybrid Architectures Vladimir Orekhov, Alexander Bogdanov and Vladimir Gaiduchok Department
Overlapping Data Transfer With Application Execution on Clusters
Overlapping Data Transfer With Application Execution on Clusters Karen L. Reid and Michael Stumm [email protected] [email protected] Department of Computer Science Department of Electrical and Computer
Keywords: Dynamic Load Balancing, Process Migration, Load Indices, Threshold Level, Response Time, Process Age.
Volume 3, Issue 10, October 2013 ISSN: 2277 128X International Journal of Advanced Research in Computer Science and Software Engineering Research Paper Available online at: www.ijarcsse.com Load Measurement
Modeling Parallel Applications for Scalability Analysis: An approach to predict the communication pattern
Int'l Conf. Par. and Dist. Proc. Tech. and Appl. PDPTA'15 191 Modeling Parallel Applications for calability Analysis: An approach to predict the communication pattern Javier Panadero 1, Alvaro Wong 1,
Cellular Computing on a Linux Cluster
Cellular Computing on a Linux Cluster Alexei Agueev, Bernd Däne, Wolfgang Fengler TU Ilmenau, Department of Computer Architecture Topics 1. Cellular Computing 2. The Experiment 3. Experimental Results
A New Nature-inspired Algorithm for Load Balancing
A New Nature-inspired Algorithm for Load Balancing Xiang Feng East China University of Science and Technology Shanghai, China 200237 Email: xfeng{@ecusteducn, @cshkuhk} Francis CM Lau The University of
PERFORMANCE EVALUATION OF THREE DYNAMIC LOAD BALANCING ALGORITHMS ON SPMD MODEL
PERFORMANCE EVALUATION OF THREE DYNAMIC LOAD BALANCING ALGORITHMS ON SPMD MODEL Najib A. Kofahi Associate Professor Department of Computer Sciences Faculty of Information Technology and Computer Sciences
RevoScaleR Speed and Scalability
EXECUTIVE WHITE PAPER RevoScaleR Speed and Scalability By Lee Edlefsen Ph.D., Chief Scientist, Revolution Analytics Abstract RevoScaleR, the Big Data predictive analytics library included with Revolution
Parallel Ray Tracing using MPI: A Dynamic Load-balancing Approach
Parallel Ray Tracing using MPI: A Dynamic Load-balancing Approach S. M. Ashraful Kadir 1 and Tazrian Khan 2 1 Scientific Computing, Royal Institute of Technology (KTH), Stockholm, Sweden [email protected],
How To Compare Load Sharing And Job Scheduling In A Network Of Workstations
A COMPARISON OF LOAD SHARING AND JOB SCHEDULING IN A NETWORK OF WORKSTATIONS HELEN D. KARATZA Department of Informatics Aristotle University of Thessaloniki 546 Thessaloniki, GREECE Email: [email protected]
Control 2004, University of Bath, UK, September 2004
Control, University of Bath, UK, September ID- IMPACT OF DEPENDENCY AND LOAD BALANCING IN MULTITHREADING REAL-TIME CONTROL ALGORITHMS M A Hossain and M O Tokhi Department of Computing, The University of
SIGMOD RWE Review Towards Proximity Pattern Mining in Large Graphs
SIGMOD RWE Review Towards Proximity Pattern Mining in Large Graphs Fabian Hueske, TU Berlin June 26, 21 1 Review This document is a review report on the paper Towards Proximity Pattern Mining in Large
Cloud Friendly Load Balancing for HPC Applications: Preliminary Work
Cloud Friendly Load Balancing for HPC Applications: Preliminary Work Osman Sarood, Abhishek Gupta and Laxmikant V. Kalé Department of Computer Science University of Illinois at Urbana-Champaign Urbana,
Optimizing a 3D-FWT code in a cluster of CPUs+GPUs
Optimizing a 3D-FWT code in a cluster of CPUs+GPUs Gregorio Bernabé Javier Cuenca Domingo Giménez Universidad de Murcia Scientific Computing and Parallel Programming Group XXIX Simposium Nacional de la
Performance Characteristics of a Cost-Effective Medium-Sized Beowulf Cluster Supercomputer
Res. Lett. Inf. Math. Sci., 2003, Vol.5, pp 1-10 Available online at http://iims.massey.ac.nz/research/letters/ 1 Performance Characteristics of a Cost-Effective Medium-Sized Beowulf Cluster Supercomputer
Automatic Mapping Tasks to Cores - Evaluating AMTHA Algorithm in Multicore Architectures
ISSN (Online): 1694-0784 ISSN (Print): 1694-0814 1 Automatic Mapping Tasks to Cores - Evaluating AMTHA Algorithm in Multicore Architectures Laura De Giusti 1, Franco Chichizola 1, Marcelo Naiouf 1, Armando
Scientific Computing Programming with Parallel Objects
Scientific Computing Programming with Parallel Objects Esteban Meneses, PhD School of Computing, Costa Rica Institute of Technology Parallel Architectures Galore Personal Computing Embedded Computing Moore
Introduction to Cloud Computing
Introduction to Cloud Computing Parallel Processing I 15 319, spring 2010 7 th Lecture, Feb 2 nd Majd F. Sakr Lecture Motivation Concurrency and why? Different flavors of parallel computing Get the basic
CHAPTER 5 WLDMA: A NEW LOAD BALANCING STRATEGY FOR WAN ENVIRONMENT
81 CHAPTER 5 WLDMA: A NEW LOAD BALANCING STRATEGY FOR WAN ENVIRONMENT 5.1 INTRODUCTION Distributed Web servers on the Internet require high scalability and availability to provide efficient services to
Multilevel Load Balancing in NUMA Computers
FACULDADE DE INFORMÁTICA PUCRS - Brazil http://www.pucrs.br/inf/pos/ Multilevel Load Balancing in NUMA Computers M. Corrêa, R. Chanin, A. Sales, R. Scheer, A. Zorzo Technical Report Series Number 049 July,
Understanding applications using the BSC performance tools
Understanding applications using the BSC performance tools Judit Gimenez ([email protected]) German Llort([email protected]) Humans are visual creatures Films or books? Two hours vs. days (months) Memorizing
Operating System Multilevel Load Balancing
Operating System Multilevel Load Balancing M. Corrêa, A. Zorzo Faculty of Informatics - PUCRS Porto Alegre, Brazil {mcorrea, zorzo}@inf.pucrs.br R. Scheer HP Brazil R&D Porto Alegre, Brazil [email protected]
A Content-Based Load Balancing Algorithm for Metadata Servers in Cluster File Systems*
A Content-Based Load Balancing Algorithm for Metadata Servers in Cluster File Systems* Junho Jang, Saeyoung Han, Sungyong Park, and Jihoon Yang Department of Computer Science and Interdisciplinary Program
Scalability and Classifications
Scalability and Classifications 1 Types of Parallel Computers MIMD and SIMD classifications shared and distributed memory multicomputers distributed shared memory computers 2 Network Topologies static
Parallel and Distributed Computing Programming Assignment 1
Parallel and Distributed Computing Programming Assignment 1 Due Monday, February 7 For programming assignment 1, you should write two C programs. One should provide an estimate of the performance of ping-pong
Auto-Tuning TRSM with an Asynchronous Task Assignment Model on Multicore, GPU and Coprocessor Systems
Auto-Tuning TRSM with an Asynchronous Task Assignment Model on Multicore, GPU and Coprocessor Systems Murilo Boratto Núcleo de Arquitetura de Computadores e Sistemas Operacionais, Universidade do Estado
Parallel Algorithm for Dense Matrix Multiplication
Parallel Algorithm for Dense Matrix Multiplication CSE633 Parallel Algorithms Fall 2012 Ortega, Patricia Outline Problem definition Assumptions Implementation Test Results Future work Conclusions Problem
Dynamic load balancing of parallel cellular automata
Dynamic load balancing of parallel cellular automata Marc Mazzariol, Benoit A. Gennart, Roger D. Hersch Ecole Polytechnique Fédérale de Lausanne, EPFL * ABSTRACT We are interested in running in parallel
An Empirical Study and Analysis of the Dynamic Load Balancing Techniques Used in Parallel Computing Systems
An Empirical Study and Analysis of the Dynamic Load Balancing Techniques Used in Parallel Computing Systems Ardhendu Mandal and Subhas Chandra Pal Department of Computer Science and Application, University
Parallel Computing for Option Pricing Based on the Backward Stochastic Differential Equation
Parallel Computing for Option Pricing Based on the Backward Stochastic Differential Equation Ying Peng, Bin Gong, Hui Liu, and Yanxin Zhang School of Computer Science and Technology, Shandong University,
Preserving Message Integrity in Dynamic Process Migration
Preserving Message Integrity in Dynamic Process Migration E. Heymann, F. Tinetti, E. Luque Universidad Autónoma de Barcelona Departamento de Informática 8193 - Bellaterra, Barcelona, Spain e-mail: [email protected]
Text Mining Approach for Big Data Analysis Using Clustering and Classification Methodologies
Text Mining Approach for Big Data Analysis Using Clustering and Classification Methodologies Somesh S Chavadi 1, Dr. Asha T 2 1 PG Student, 2 Professor, Department of Computer Science and Engineering,
Adaptive Stable Additive Methods for Linear Algebraic Calculations
Adaptive Stable Additive Methods for Linear Algebraic Calculations József Smidla, Péter Tar, István Maros University of Pannonia Veszprém, Hungary 4 th of July 204. / 2 József Smidla, Péter Tar, István
Elemental functions: Writing data-parallel code in C/C++ using Intel Cilk Plus
Elemental functions: Writing data-parallel code in C/C++ using Intel Cilk Plus A simple C/C++ language extension construct for data parallel operations Robert Geva [email protected] Introduction Intel
RESEARCH PAPER International Journal of Recent Trends in Engineering, Vol 1, No. 1, May 2009
An Algorithm for Dynamic Load Balancing in Distributed Systems with Multiple Supporting Nodes by Exploiting the Interrupt Service Parveen Jain 1, Daya Gupta 2 1,2 Delhi College of Engineering, New Delhi,
A Comparative Performance Analysis of Load Balancing Algorithms in Distributed System using Qualitative Parameters
A Comparative Performance Analysis of Load Balancing Algorithms in Distributed System using Qualitative Parameters Abhijit A. Rajguru, S.S. Apte Abstract - A distributed system can be viewed as a collection
Comparison of Cloud vs. Tape Backup Performance and Costs with Oracle Database
JIOS, VOL. 35, NO. 1 (2011) SUBMITTED 02/11; ACCEPTED 06/11 UDC 004.75 Comparison of Cloud vs. Tape Backup Performance and Costs with Oracle Database University of Ljubljana Faculty of Computer and Information
UTS: An Unbalanced Tree Search Benchmark
UTS: An Unbalanced Tree Search Benchmark LCPC 2006 1 Coauthors Stephen Olivier, UNC Jun Huan, UNC/Kansas Jinze Liu, UNC Jan Prins, UNC James Dinan, OSU P. Sadayappan, OSU Chau-Wen Tseng, UMD Also, thanks
64-Bit versus 32-Bit CPUs in Scientific Computing
64-Bit versus 32-Bit CPUs in Scientific Computing Axel Kohlmeyer Lehrstuhl für Theoretische Chemie Ruhr-Universität Bochum March 2004 1/25 Outline 64-Bit and 32-Bit CPU Examples
MOSIX: High performance Linux farm
MOSIX: High performance Linux farm Paolo Mastroserio [[email protected]] Francesco Maria Taurino [[email protected]] Gennaro Tortone [[email protected]] Napoli Index overview on Linux farm farm
LOAD BALANCING FOR MULTIPLE PARALLEL JOBS
European Congress on Computational Methods in Applied Sciences and Engineering ECCOMAS 2000 Barcelona, 11-14 September 2000 ECCOMAS LOAD BALANCING FOR MULTIPLE PARALLEL JOBS A. Ecer, Y. P. Chien, H.U Akay
Mizan: A System for Dynamic Load Balancing in Large-scale Graph Processing
/35 Mizan: A System for Dynamic Load Balancing in Large-scale Graph Processing Zuhair Khayyat 1 Karim Awara 1 Amani Alonazi 1 Hani Jamjoom 2 Dan Williams 2 Panos Kalnis 1 1 King Abdullah University of
A Mathematical Programming Solution to the Mars Express Memory Dumping Problem
A Mathematical Programming Solution to the Mars Express Memory Dumping Problem Giovanni Righini and Emanuele Tresoldi Dipartimento di Tecnologie dell Informazione Università degli Studi di Milano Via Bramante
BSC vision on Big Data and extreme scale computing
BSC vision on Big Data and extreme scale computing Jesus Labarta, Eduard Ayguade,, Fabrizio Gagliardi, Rosa M. Badia, Toni Cortes, Jordi Torres, Adrian Cristal, Osman Unsal, David Carrera, Yolanda Becerra,
ParFUM: A Parallel Framework for Unstructured Meshes. Aaron Becker, Isaac Dooley, Terry Wilmarth, Sayantan Chakravorty Charm++ Workshop 2008
ParFUM: A Parallel Framework for Unstructured Meshes Aaron Becker, Isaac Dooley, Terry Wilmarth, Sayantan Chakravorty Charm++ Workshop 2008 What is ParFUM? A framework for writing parallel finite element
Parallel Processing over Mobile Ad Hoc Networks of Handheld Machines
Parallel Processing over Mobile Ad Hoc Networks of Handheld Machines Michael J Jipping Department of Computer Science Hope College Holland, MI 49423 [email protected] Gary Lewandowski Department of Mathematics
The Green Index: A Metric for Evaluating System-Wide Energy Efficiency in HPC Systems
202 IEEE 202 26th IEEE International 26th International Parallel Parallel and Distributed and Distributed Processing Processing Symposium Symposium Workshops Workshops & PhD Forum The Green Index: A Metric
Scheduling Allowance Adaptability in Load Balancing technique for Distributed Systems
Scheduling Allowance Adaptability in Load Balancing technique for Distributed Systems G.Rajina #1, P.Nagaraju #2 #1 M.Tech, Computer Science Engineering, TallaPadmavathi Engineering College, Warangal,
Scalable Data Analysis in R. Lee E. Edlefsen Chief Scientist UserR! 2011
Scalable Data Analysis in R Lee E. Edlefsen Chief Scientist UserR! 2011 1 Introduction Our ability to collect and store data has rapidly been outpacing our ability to analyze it We need scalable data analysis
Load Balancing on a Grid Using Data Characteristics
Load Balancing on a Grid Using Data Characteristics Jonathan White and Dale R. Thompson Computer Science and Computer Engineering Department University of Arkansas Fayetteville, AR 72701, USA {jlw09, drt}@uark.edu
A Load Balancing Schema for Agent-based SPMD Applications
A Load Balancing Schema for Agent-based SPMD Applications Claudio Márquez, Eduardo César, and Joan Sorribes Computer Architecture and Operating Systems Department (CAOS), Universitat Autònoma de Barcelona,
International Journal of Scientific & Engineering Research, Volume 4, Issue 11, November-2013 349 ISSN 2229-5518
International Journal of Scientific & Engineering Research, Volume 4, Issue 11, November-2013 349 Load Balancing Heterogeneous Request in DHT-based P2P Systems Mrs. Yogita A. Dalvi Dr. R. Shankar Mr. Atesh
SIMULATION AND MODELLING OF RAID 0 SYSTEM PERFORMANCE
SIMULATION AND MODELLING OF RAID 0 SYSTEM PERFORMANCE F. Wan N.J. Dingle W.J. Knottenbelt A.S. Lebrecht Department of Computing, Imperial College London, South Kensington Campus, London SW7 2AZ email:
PPD: Scheduling and Load Balancing 2
PPD: Scheduling and Load Balancing 2 Fernando Silva Computer Science Department Center for Research in Advanced Computing Systems (CRACS) University of Porto, FCUP http://www.dcc.fc.up.pt/~fds 2 (Some
Performance Comparison of Dynamic Load-Balancing Strategies for Distributed Computing
Performance Comparison of Dynamic Load-Balancing Strategies for Distributed Computing A. Cortés, A. Ripoll, M.A. Senar and E. Luque Computer Architecture and Operating Systems Group Universitat Autònoma
The Performance Characteristics of MapReduce Applications on Scalable Clusters
The Performance Characteristics of MapReduce Applications on Scalable Clusters Kenneth Wottrich Denison University Granville, OH 43023 [email protected] ABSTRACT Many cluster owners and operators have
Load Balancing MPI Algorithm for High Throughput Applications
Load Balancing MPI Algorithm for High Throughput Applications Igor Grudenić, Stjepan Groš, Nikola Bogunović Faculty of Electrical Engineering and, University of Zagreb Unska 3, 10000 Zagreb, Croatia {igor.grudenic,
A STUDY OF TASK SCHEDULING IN MULTIPROCESSOR ENVIROMENT Ranjit Rajak 1, C.P.Katti 2, Nidhi Rajak 3
A STUDY OF TASK SCHEDULING IN MULTIPROCESSOR ENVIROMENT Ranjit Rajak 1, C.P.Katti, Nidhi Rajak 1 Department of Computer Science & Applications, Dr.H.S.Gour Central University, Sagar, India, [email protected]
A Dynamic Resource Management with Energy Saving Mechanism for Supporting Cloud Computing
A Dynamic Resource Management with Energy Saving Mechanism for Supporting Cloud Computing Liang-Teh Lee, Kang-Yuan Liu, Hui-Yang Huang and Chia-Ying Tseng Department of Computer Science and Engineering,
Index Terms : Load rebalance, distributed file systems, clouds, movement cost, load imbalance, chunk.
Load Rebalancing for Distributed File Systems in Clouds. Smita Salunkhe, S. S. Sannakki Department of Computer Science and Engineering KLS Gogte Institute of Technology, Belgaum, Karnataka, India Affiliated
