Home  /  Resources & support  /  FAQs  /  SGI memory limitations
Note: This FAQ is for users of Stata 9. As of September 2005, Stata for Irix is no longer available.

Why won't Stata allow large datasets even when I am using a 64-bit Irix machine?

Title   SGI memory limitations
Author Kevin S. Turner, StataCorp

When using Stata for Irix 6.5, it is possible to use large datasets that require use of the 64-bit address space (roughly > 4Gb).

However, under some Irix environments, Stata may not allocate large amounts even when sufficient memory is available. A typical error message would look like the following:

     . set mem 8000m
     op. sys. refuses to provide memory
     r(909);

Before you try the following solution, make sure you have tried all other solutions. Your System Administrator will be able to assist you in determining some of these issues.

  • Checking to make sure there is enough physical RAM or swap space on the machine.
  • Checking to make sure that other users are not simultaneously competing for limited amounts of memory.
  • Checking that no user account limits have been imposed by the System Administrator.
  • Checking that you are running Intercooled Stata and not Small Stata.

If you still cannot allocate enough memory, there is one other solution. It involves tuning a few system-wide variables that affect memory limitations. You will need root access for these changes. From the shell, type the following commands. (Notice that the X represents the number of bytes you wish to specify. You should use the same value for all the following system variables, but you can choose any arbitrary value. For example, 4294967296 will allow 4.2Gb).

     systune rlimit_rss_cur X
     systune rlimit_rss_max X
     systune rlimit_vmem_cur X
     systune rlimit_vmem_max X
     systune rlimit_data_cur X
     systune rlimit_data_max X
     systune shmmax X

After specifying these variables, you should reboot the machine. When the system restarts, you should be able to allocate up to the new limits you have set.