Friday, November 23, 2007

The alloc.file from RouteGA

After spending a day and half working in the conversion of the SchedInfo.xml to the alloc.file, I decided to create directly the alloc.file (it is easier and faster).

However, filling the alloc.file up have some issues that I'm working on.
1) The values of migration cost (mcost) and communication (comm): I have no ideas on how to compute them;
2) The computer in which a process is allocated (alloc) is based on the comp_id value in the table Process, that refers to the comp_key value in the table Computer, so far, no problems. However, the alloc.file doesn't have a place to store this value. For example: there are 24 computers alive in the environment and a process is running in the computer of comp_key 45. The routeGA alloc.file will not be able to access this computer information (cmips and rtt information) and will produce an OutOfBounds error (the cmips vector will have an upper bound of 23, since there are 24 computers).

As soon as the alloc.file is generated, the routeGA can be executed and with the information of the routeGA the migration can be carried out.
The monitors need to be executed to fill up the process database and the average program be executed.

1 Comments:

At November 23, 2007 at 1:20 PM , Blogger Rodrigo Mello said...

Augusto,

> After spending a day and half working in > the conversion of the SchedInfo.xml to
> the alloc.file, I decided to create
> directly the alloc.file (it is easier
> and faster).

I don't think this is the best solution. Please, go back to the XML and make a XML parser which gets the XML file and converts it into an alloc.file

> However, filling the alloc.file up
> have some issues that I'm working on.
> 1) The values of migration cost
> (mcost)

The migration cost is obtained by the amount of main memory that the process occupies. Suppose a process occupies 10 MB of RAM, you can define the migration cost as 10240 Kbytes and inside the RouteGA I can modify to use this different parameter. (It is a small modification, I can do for you or teach you how to do it)

> and communication (comm): I
> have no ideas on how to compute them;

The communication you can do by reporting the amount of bytes send over the network divided by the process average execution time. For instance, the process needs 1000 MIPS and sends a total of 100 Bytes during the whole execution. Then you define 100/1000 = 0.1 as this parameter.

> 2) The computer in which a process is
> allocated (alloc) is based on the
> comp_id value in the table Process,
> that refers to the comp_key value in
> the table Computer, so far, no
> problems.

Ok

> However, the alloc.file
> doesn't have a place to store this
> value. For example: there are 24
> computers alive in the environment and
> a process is running in the computer
> of comp_key 45.

no problem, I have to change this in the RouteGA, so just create a field in the alloc.file (as a vector) with the alive computers.

Consider the alive computers are comp_key equals to 5, 3, 15. Consequently we have 3 computers alive. Then, create a field in the alloc.file such as

compalive 5 3 15

and we change RouteGA to know that 5 is at index 0, 3 is at index 1 and 15 is at index 2


> The routeGA alloc.file
> will not be able to access this
> computer information (cmips and rtt
> information) and will produce an
> OutOfBounds error (the cmips vector
> will have an upper bound of 23, since
> there are 24 computers).

> As soon as the alloc.file is
> generated, the routeGA can be executed
> and with the information of the
> routeGA the migration can be carried
> out.
> The monitors need to be executed to
> fill up the process database and the
> average program be executed.

Thinking a little better, I guess you should change RouteGA to do what I mentioned above. Please, take a look at the RouteGA source code (do not modity yet) and study how to do it. Then you tell me how you think that should be done and we discuss about this subject.

Anyway with the information above you can finish the alloc.file generation based on the XML file. Please, don't forget to generate the XML file and, afterwards, you make a parser to convert the XML file into the alloc.file.

 

Post a Comment

Subscribe to Post Comments [Atom]

<< Home