Cray Autotasking

Malcolm Slaney malcolm at Apple.COM
Wed Nov 29 11:32:50 AEST 1989


In article <MCCALPIN.89Nov27080806 at masig3.ocean.fsu.edu> mccalpin at masig3.ocean.fsu.edu (John D. McCalpin) writes:
>Does anyone know offhand how the Cray autotasking splits loops between
>processors?  Specifically, in the following loop:
>	do 200 iseg=1,8
>	    do 100 i=istart(iseg),istop(iseg)
>		a(i,j(iseg)) = b(i,j(iseg))+two*c(i,j(iseg))
>   100	    continue
>   200	continue

You should sort them with the ones taking the longest time going first
in the loop.  For example, if you have one very large segment and lots of
little ones you don't want to do all the little ones first and then have
all the other processors waiting for the last (big) one to finish.  I think
I remember looking at the assembler generated and seeing that each processor 
just takes the next iteration in sequence.

I'm pretty sure that Autotasking and MicroTasking are identical in this 
regard.

Now, if I can just get my hands on a version of Standard C that autotasks....

								Malcolm



More information about the Comp.unix.cray mailing list