\documentstyle{article} \begin{document} Presently the schedules are implemented on the Alliant, the Balance, and the Encore. A working version can always be found in connolly/SCHEDC2 on the Balance and Encore, and in sorensen/CLASS on the Alliant. A version that uses a circular ready queue (as opposed to a simple 1-D array) is now working on all three machines. On the Balance and Encore, it can be found in \mbox{connolly/SCHEDC5} while on the Alliant it can be found in \linebreak sorensen/SCHEDC3/CIRCULAR. There are a few changes to be made when moving from machine to machine - they are as follows: \begin{tabbing} ALLIANT: We will assume this is the basic program. \end{tabbing} \begin{tabbing} ENCORE: \= The encore does not have the specific vector operations.\\ \> Therefore all statements of the type u(1:n) must be\\ \> performed in a traditional loop.\\ \> \rule{0cm}{.5cm} The common block must be altered. The first item must be a\\ \> pad that is one page long-I use foo(600). Following that\\ \> should be an integer (I use imem0). Next is all the variables\\ \> that are to be shared and last is another integer (imem1). \\ \> The first \= executable statement should\rule{0cm}{.7cm} be:\\ \> \> \rule{0cm}{.5cm} call share(imem0,(loc(imem1)-loc(imem0))). \\ \end{tabbing} \begin{tabbing} BALANCE: \= Like the Encore, the Balance has no vector operations.\\ \> \rule{0cm}{.5cm} The routines sched, putq, and spawn become \_ sched, \_ putq,\\ \> and \_ spawn respectively. Both \_ sched and \_ putq have an\\ \> added parameter at the end-this must be the number of \\ \> parameters in the parameter list. The routine \_ spawn\\ \> also must have this added parameter and the variable\\ \> myid must be the last variable passed instead of the first.\\ \> Thus the \= call to \_ spawn looks like:\\ \> \> \rule{0cm}{.5cm} call \_ spawn(jdummy,subname,$<$parm-list$>$,nparms,myid). \\ \> \rule{0cm}{.5cm} After the call sched statement, you must put a call \\ \> m\_ kill\_ procs statement to kill off the extra processes.\\ \> \rule{0cm}{.5cm} Each routine or function in your program (except for main)\\ \> must have the directive C\$REENTRANT (start in column one)\\ \> immediately after the declaration.\\ \> \rule{0cm}{.5cm} The first two lines of your code should be \\ \> \$SYSTEM\\ \> \$STDUNIT\\ \> starting in column one.\\ \end{tabbing} \end{document}