At the outset, I don't have experience with 64-bit Stata at all, but I
can give you some of my _opinions_ on 64-bit computing:
First, you don't need 64 bit if you're going to use no more than 4Gb. 32
bit is 2^32=4Gb. You only actually need 64 bit if you're actually going
to need more than 4Gb.
Related, second, are you actually going to need to have >4Gb of data in
memory all at the same time? That is a massive amount of data - Stata's
most detailed data type is double, which is 8 bytes. That means that you
would have to _need_ at some moment in time to be using 2^26=67108864
double objects, which is rare. There is a strong argument then to store
your data in a dedicated database, pulling out only the data you need
when you need it, and dropping it from memory when it's not needed. And
if you did that then Stata is not the best way to go - again, it's worth
looking at c or fortran. There are good open source libraries for doing
lots of fun things in those languages, and the methods usually aren't
too hard to implement oneself anyway. In my opinion worth it for such
large apps.
Third, if you're actually doing 64 bit computing then you're after some
pretty hardcore efficiency. It is worth at least considering more
scientific methods of computing, for example writing custom programs for
your application in c or fortran. Like I say, I don't have any
experience with 64-bit Stata, but I'd suspect that not too many people
would keep using Stata for such large applications.
Fourth, 64-bit computing under Windows is just plain stupid. Sorry for
anybody who disagrees, but Windows is an operating system that is
inexcusably slow and memory-hungry. Again, 64-bit computing is just that
- computing. You're after efficiency so that you're not waiting the next
5 months for the task to end, and you certainly want something stable
for time-consuming tasks. Learning to use a proper OS (and using very
efficient software in general) is worth it if you're getting into the
heavy stuff. Additionally, as is pointed out in a post just before this,
Stata needs a contiguous block of memory. Windows does not handle memory
well, i.e. you'll not have the whole set of RAM available. A shame after
investing in it, not to be able to use it...
Fifth, as far as I'm aware (and I may well have my wires crossed here),
current Mac OS's use a variation the Linux kernel, and do so because
they are after efficiency and stability. While the hardware of
G4/similar is excellent, I'd expect Linux to run better than MacOS on a
equivalent hardware.
Sixth, and this definitely depends on the scale of your project, if
you're doing stuff that is slow (i.e. trillions and trillions of
calculations) then it's worth looking into parallel processing. This,
however, steps into the realm of employing a programmer or spending lots
of time studying.
Seventh, if you end up going with 64-bit linux, make sure you have an
efficient system. 'Linux' has a big reputation as being fast and
efficient, but many out-of-the-box distributions pile a bucketload of
features that aren't necessary for a lot of situations. They all eat up
resources and you end up losing a lot of the advantages. Thus, if you go
with something like Fedora Core 64, spend the time giving your system a
good haircut - and look carefully at performance reviews and
comparisons. Also, ask the guys at Stata about whether their 64-bit
Linux Stata will work on the BSDs. BSD is quite nice and should not be
dismissed.
Eigth, if you go with 64-bit and choose a PC for your platform, be sure
to look into Athlon 64bit CPU.
Overall, my opinion is that if somebody's going to spend the cash to
purchase more than 4Gb of RAM and a good 64-bit processor (or
processors) then they should spend the time getting their system to do
justice to that investment. That means really looking into getting
things optimized, which means looking seriously at alternative ways of
approaching the problem.
Righto, my sixteen cents there. Hope it's useful.
James
Jon Eckhardt wrote:
Greetings,
I find myself in a situation where I will be able to save a lot of time if
I could address greater than 2 gig of RAM (somewhere around 4 - 6 gig of
RAM would be optimal) in a single stata process. In other words, I would
like to be able to type:
set memory 5g
from within STATA.
It is my understanding from conversations with folks at STATA:
1. This can be achieved with STATA for Windows under a 64bit version of
Windows
2. This can be achieved with STATA for Linux64 (64 bit version of Linux,
such as Red Hat)
3. This can't be achieved with STATA for MAC OSX, due to limitations of the
64bit implementation of MAC Unix. (I have heard that Tiger is fully 64 bit
compatible <http://developer.apple.com/macosx/64bit.html>) but apparently
the official word from STATA corp. is that MAC OSX STATA can't address > 2
gig of RAM.
If you have experience running STATA under any of these configurations
(Windows, Linux, MAC OSX) where you have been able to address > 2 gig of
RAM, I would appreciate your thoughts regarding the true ability to address
large blocks of RAM. Specifically, I'm interested in information regarding
specific configurations that have worked, although I'm interested in other
thoughts you may have regarding this issue as well.
If the MAC works, I would prefer that platform over Linux or Windows.
Thanks in advance,
Jon
Jon Eckhardt, Ph.D.
University of Wisconsin--Madison
*
* For searches and help try:
* http://www.stata.com/support/faqs/res/findit.html
* http://www.stata.com/support/statalist/faq
* http://www.ats.ucla.edu/stat/stata/
*
* For searches and help try:
* http://www.stata.com/support/faqs/res/findit.html
* http://www.stata.com/support/statalist/faq
* http://www.ats.ucla.edu/stat/stata/