Usage of the mathematical programming for solving the allocation problem.

5th FRUCT seminar. Eugene Gavrin [email protected] Introduction

„ Information systems strive to efficiently utilizing massive distributed and parallel systems

„ Programs with high number of inter-task communications may hardly increase execution time by adding communication delays

„ The optimal task allocation can significantly decrease the total execution time by balancing with several criteria

2 Allocation problem

Allocation problem arises, when: ‰ The number of processes exceeds the number of available PEs ‰ Dependencies in parallel algorithm differs from PE interconnection of the parallel platform

Allocation purposes: ‰ Minimize the total program execution time ‰ Get results in the reasonable time Common optimization criteria

To obtain the optimal allocation of tasks on processor elements (PE) it is needed to take into account different criteria of optimization. Main of them are:

„ Execution time „ PE workload „ The amount of data transmitted over the network „ Power consumption „ etc…

4 Allocation task formulation

We consider the simplified platform where every PE can directly interact with each other.

As source data we have: „ Platform description (set of PEs) „ Program graph specification (set of tasks and their interaction)

The selected criteria for allocation are: „ PE workload balancing „ The amount of data transmitted over the network

5 Overview of solution method

Method for solving: „

Solver: „ GLPK „ Convenient API „ Provides simple formalization language „ Free and open source

6 Formal description: balancing

„ P – is the set of distributed processors

„ T – is the set of tasks to run on the processors

„ qtp – is execution cost of task t on processor p

„ xtp – is the binary decision variable that is equal to 1 if task t is assigned on to processor p

⎡ n ⎤ ⎡ n ⎤ max ()tp ⋅ xq tp − min ⋅ xq tptp () ∈Pp ⎢∑ ⎥ ∈Pp ⎢∑ ⎥ ⎣ t=1 ⎦ ⎣ t=1 ⎦

7 Formal description: amount of data

„ U – communication between Ti and Tj during processing

„ Cij – communication cost between tasks Ti and Tj

8 Task describing (MathProg)

Sets

Parameters

Variables Objective function

Additional limitations

9 Developed toolset scheme

10 Allocation results example

?

11 Allocation results example

12 Results

„ Described problem with the mathematical programming formalism

„ Described task allocation problem in MathProg

„ Implemented a tool set for solving the task allocation problem

„ A successful integration into existing projects

„ Confirmed effectiveness of the proposed method

13 Plans on future

„ Explore possibility to use instead of Linear Programming

„ Explore the possibility of solving this difficult problems in parallel

„ Perform computations on the graphics accelerators

14 Many thanks for your attention.

You may contact me at [email protected]

15 16 Questions [GLPK alternatives]

„ Free and opensource: „ CVXOPT „ glpk „ Qoca „ CVXGPL

„ Commercial: „ AIMMS „ AMPL „ CPLEX „ EXCEL „ LibrariesLingoMATLABMathematica „ MOPS „ MOSEK „ OptimJ „ SAS „ Xpress-MP

17 Questions [Full LP problem]

18