Note that there are some explanatory texts on larger screens.

plurals
  1. POAzure Worker Role Design
    primarykey
    data
    text
    <p>I am trying to design an azure worker role routine. A worker role polls a job queue. For each job, required number of threads is specified in the job message. A job is running an instance of an executable. Example: name of the executable is Rax.exe. Rax.exe can run on different number of threads. If we call it as Rax.exe -T 2 it will create two threads. So we do not have to deal with how to create threads. We just call Rax.exe with the appropriate commandline argument. I have Extra-Large worker instances. So, I can run 8 threads simultaneously. I want to utilize the workers as much as I can. We may have many jobs, each having different number of threads specified.</p> <p>Example:</p> <pre><code>Job Queue: 1 Rax.exe -T 3 2 Rax.exe -T 5 3 Rax.exe -T 1 4 Rax.exe -T 8 5 Rax.exe -T 4 </code></pre> <p>In this example, we have 5 jobs. A worker reads the first message and starts the job. This job consumes 3 threads. A worker can have 8 threads so the remaining 5 threads can be utilized by running another job from the queue.</p> <p>Currently, I do not know how to run multiple processes inside of a worker role. I am using waitForExit method of the process class. Each running instance of the executable creates output files so I have to collect those generated files.</p> <p>My Questions:</p> <p>1- How can I start multiple processes asynchronously and be notified when they exit? I have to do this while still polling the job queue. 2- Is this kind of job scheduling a hard problem? Can anyone come up with a good heuristic?</p> <p>EDIT: I think, estimating required running time for each job will be helpful. This kind of information exist. With this information, can it be solved?</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload