Extremal Optimization Applied to Task Scheduling of Distributed Java Programs Eryk Laskowski 1 , Marek Tudruj 1,3 , Ivanoe De Falco 2 , Umberto Scafuri 2 , Ernesto Tarantino 2 , and Richard Olejnik 4 1 Institute of Computer Science, Polish Academy of Sciences, Warsaw, Poland 2 Institute of High Performance Computing and Networking, ICAR-CNR, Naples, Italy 3 Polish-Japanese Institute of Information Technology, Warsaw, Poland 4 Computer Science Laboratory, University of Science and Technology of Lille, France {laskowsk,tudruj}@ipipan.waw.pl, richard.olejnik@lifl.fr, {ivanoe.defalco,umberto.scafuri,ernesto.tarantino}@na.icar.cnr.it Abstract. The paper presents new Java programs scheduling algorithms for execution on clusters of Java Virtual Machines (JVMs), which involve extremal optimization (EO) combined with task clustering. Two new scheduling algorithms are presented and compared. The first employs task clustering to reduce an initial program graph and then applies ex- tremal optimization to schedule the reduced program graph to system resources. The second algorithm applies task clustering only to find an initial solution which is next improved by the EO algorithm working on the initial program graph. Both algorithms are also compared to an EO algorithm which does not use the clustering approach. Keywords: distributed systems, scheduling, evolutionary algorithms. 1 Introduction Extremal Optimization (EO) developed in 1999 by Boettcher and Percus [2] offers an evolutionary optimization method, which features fast convergence and very small memory requirements. EO works based on developing a single solution composed of a number of components, each of which is a variable of the problem. In this respect, EO is strongly competitive to genetic algorithms. Two separate fitness functions are used to evaluate the components and the global solution quality. In EO, the worst component is randomly updated, so that the solution is transformed into a new acceptable solution. A probabilistic version of EO has been designed [3] which aims in avoiding the local minimum phenomenon. Optimization of the execution time of Java programs has already attracted researchers’ attention [7]. The optimization is done at program runtime with the use of centralized or distributed load monitoring. Java program task scheduling on Grids is also reported in [4]. It requires adequate computational and com- munication load metrics proposed in [12]. Optimal execution of Java programs should take into account an optimized initial schedule of Java distributed ap- plication. This problem has not been sufficiently covered in current literature, C. Di Chio et al. (Eds.): EvoApplications 2011, Part II, LNCS 6625, pp. 61–70, 2011. c Springer-Verlag Berlin Heidelberg 2011