Hi Moe, Can you provide me a simple Hello World type examples written in C? In the mean time, i am looking at the links you provided.
--Ravi On Tue, Feb 28, 2012 at 1:14 AM, Moe Jette <[email protected]> wrote: > > Take a look here: > http://www.schedmd.com/slurmdocs/documentation.html > > Especially the section at the bottom labeled "SLURM Developers" > > There is also SLURM architecture information here: > http://www.schedmd.com/slurmdocs/publications.html > > Quoting Ravi Gupta <[email protected]>: > > > Hi, > > > > I am studying a course on Distributed OS as a part of my Masters and my > > professor has given me an assignment i.e. "Implement Sender Initiated > Load > > Distribution algorithm over SLURM", which is as follow:- > > > > Q1. Implement *Sender Initiated Load Distribution algorithm over SLURM*. > > > > > > > > Let each node estimate its load ?l? by randomly picking a number 0 < l < > n > > that represents the CPU queue length of the node concerned. Also, > consider > > the Threshold for load transfer as T = 10, where l < T makes a node as a > > receiver, and l >= T makes a node as sender. The selection policy is on > the > > new arrivals. Use location policy as a *Threshold* based. Take the poll > > limit as 5. For polling of a node, you may think of sending a message to > > query for the load index (l) of the new node to find out whether it can > be > > a receiver. As the output of your distributed scheduler, *print out the > log > > of all the polls encountered* till the receiver is found out, and a > message > > saying the *job is transferred from thread (older) to thread (newer) > one*. > > Every time a job is scheduled, the load index is increased, and departure > > of a job reduces the load index. If you think that you need any other > > assumption, you are free to make those assumptions. Sample code snippet > is > > given here: > > > > > > > > /*do inclusion of necessary header files*/ > > > > #define POLL_LIMIT 5 > > > > #define THRESHOLD 10 > > > > char hostname[20][50]; > > > > > > > > void get_available_hosts() > > > > { > > > > // find out all available host names which are in UP state > > > > // store all host names in 'hostname' array defined globally > > > > //Use 'scontrol show partition' command. > > > > } > > > > > > > > char* ret_self_host_name() > > > > { > > > > //return self host name > > > > } > > > > > > > > int count_job_host(char *host_name) > > > > { > > > > //count total number of running jobs on a particular host > > > > // passed as parameter. Use 'scontrol show jobs' command > > > > //return number of jobs obtained > > > > } > > > > > > > > int allocate_job(char *host, char *program[]) > > > > { > > > > //allocate job 'program' to node 'host' > > > > //use 'salloc' command to allocate the program to host > > > > //retrun true if allocation is successful else false. > > > > } > > > > > > > > void main(int argc,char *argv[]) > > > > { > > > > //program to execute is taken input from command line > > > > char *self_host; > > > > int rndm_node,i,j; > > > > > > > > get_available_hosts(); > > > > self_addr=ret_self_host_name(); > > > > > > > > // if jobs are less than threshold limit then > > > > // schedule job on same machine > > > > > > > > if(count_job_host(self_addr)<=THRESHOLD) > > > > { > > > > //make an entry in log file > > > > allocate_job(self_addr,argv); > > > > } > > > > else > > > > { > > > > for(j=0;j<POLL_LIMIT;)//poll for receivers > > > > { > > > > rndm_node=random()%no_hosts; > > > > //rndm_node should be other than self node > > > > //address. > > > > > > > > //make an entry in log file > > > > if(count_job_host(hostname[rndm_node])< THRESHOLD) > > > > { > > > > allocate_job(hostname[rndm_node],argv) > > > > break; > > > > } > > > > j++; > > > > } > > > > } > > > > if(j==POLL_LIMIT) //if poll_limt exeeds schedule on itself > > > > { > > > > //make an entry in log file > > > > allocate_job(self_addr,argv); > > > > } > > > > }//main ends > > > > > > Can anybody, familiar with SCRUM programming in C, guide me how to do > it? I > > search a lot on internet for SLURM examples in C but unable to find one. > I > > am not saying that give me the complete solution just guide me. > > > > > > Thanks in advance > > > > Ravi > > > >
