Related articles |
---|
Cray-2 Fast Memory delano@cs.berkeley.edu (1993-05-13) |
Re: Cray-2 Fast Memory grout@sp90.csrd.uiuc.edu (1993-05-14) |
Re: Cray-2 Fast Memory desj@ccr-p.ida.org (1993-05-26) |
Re: Cray-2 Fast Memory jrbd@craycos.com (1993-05-26) |
Re: Cray-2 Fast Memory desj@ccr-p.ida.org (1993-05-27) |
Re: Cray-2 Fast Memory jac@moonshine.llnl.gov (1993-05-31) |
Newsgroups: | comp.compilers,comp.sys.super |
From: | desj@ccr-p.ida.org (David desJardins) |
Keywords: | Cray, architecture |
Organization: | IDA Center for Communications Research, Princeton |
References: | 93-05-062 93-05-130 |
Date: | Thu, 27 May 1993 05:22:43 GMT |
James Davies <jrbd@craycos.com> writes:
> Even with this limited usage, local memory tends to be in short supply, as
> there are only 16K words available per processor. The linker attempts to
> overlay local-memory blocks when possible, but there is still a need for a
> compiler option to minimize local memory usage by e.g. spilling registers
> to common memory.
Very early when we got our Cray-2 we adopted the convention of a local
memory block called USRLOC which is 4K words and is available to any
routine for its local use. Of course if you use this you have to make
sure that you don't call something else that is also using it; primarily
it is used by highly optimized library routines, which don't call
anything.
This turns out to be good enough for most purposes. It still would have
been nice to have had a real memory management system for local memory,
but I can't say whether it would have been cost effective.
(One thing I forgot to mention in my previous post is that, when a user
does explicitly put arrays in local memory, the compiler usually generates
worse code because it stops performing certain other unrelated
optimizations, like loop unrolling. So usually it isn't a win to put
arrays in local memory from a high-level language, even if they are
otherwise very suitable for this purpose. Local memory is excellent for
many CAL codes, though, and since the Cray-2 has relatively low
common-memory bandwidth it can make a major difference in the performance
of some simple algorithms.)
We have never had a real problem with running out of local memory (and I
have never heard of anyone using the paging option), but then our workload
generally consists of relatively small codes, a few thousand lines
perhaps, rather than several-hundred-thousand-line behemoths.
David desJardins
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.