Continue to Site

Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • Congratulations IDS on being selected by the Eng-Tips community for having the most helpful posts in the forums last week. Way to Go!

Abaqus and Standard Memory usage

Status
Not open for further replies.

barney75

Mechanical
Jan 22, 2007
58
Hi, I have some problem with the ram memory installed in my pc and how abaqus use it. Recently I've upgraded the ram of my pc from 2Gb to 4Gb. The first problem is that my os (windows 2000) do not recognise all the memory but only 3.2Gb. When turning on the computer I entered the set up of the machine and here it is stated that the ram is 4.0Gb. Why the os do not recognise all the ram memory? Secondly I force abaqus to use 2.0Gb of standard memory using the env file but the analysis ends with an error message in the msg due to the fact that abaqus is not able to allocate enough memory for the analysis (but it's much less then 2.0Gb). Why?
 
Replies continue below

Recommended for you

I think you should check the Microsoft support with respect to the RAM problem. Windows 2000 has become an obsolete OS. Make sure you have the latest SP installed (whatever that is) such that the chance of OS not recognizing properly newer hardware to be minimized.

You should deal with the ABAQUS memory allocation problem after solving the OS problem.

 
Though I do not remember exactly, I think that Windows (32bit version) has an upper limit on the amount of memory allowed for a single process which is 2Gb.
 
If you upgrade to Windows XP, you can use the /3GB switch when starting the OS to increase that 2GB limit to 3GB. Dump Windows 2K. For even better memory performance, dump Windows for Linux.
 
As far as I know 32-bit OS allows for a Ram memory up to 2^32 that is more than 4Gb, is it right???
As regards the os I can't change my os because I'm forced [ :-(( ] to use w2000. Ok I'll check the SP but I'm confident that the os is updated.
Thanks, bye
 
Although you can have 4GB of system RAM, that is split 2GB max for applications and 2GB for OS use. As TGS4 says, there is a 3GB switch that swings this balance 3 to 1 in favour of apps. I guess your mileage may vary....


As for the abaqus problem, you could try setting standard memory a bit lower (say, 1.5 GB) and if that works, increment it to find the maximum value that will work.

Regards

Martin
 
barney75: 3.something is the max. memory you can use on any 32bit OS, just because of addressable space (2^32 binary is exactly those 4GB) - the system has to also have a address space for PCI, graphics aso. So if you would like to address more than ca. 3,5 GB of memory, you have to use 64bit OS. There is a nice explanation on the intel website (don't know where exactly, but it can be easily found by their search function).
 
nearly same question: is there any command in abaqus to clear memory allocated for calculation? I have a optimization script which builds relativly simple models (different at each step) and Abaqus doesn't clean the memory after it finishes the calculation, so at 2GB memory I can make only about 6 or 7 calculations before restarting abaqus... This bothers me really much, because I can't finish the optimization process that way..
 
I had the same problem with ABAQUS not freeing memory when a model is regenerated. I could not solve it.

To minimize the effect of memory leaking, instead of re-generating the model entirely I preferred to have the script modifying the existing model.

The interesting part is that for some simpler model generation scripts that I coded there were no memory leaks. That is: if I had run the same script several times the same amount of memory would have been used. On the other hand I have scripts where ABAQUS allocates additional memory each time the model is (re-)generated.

I think the problem is related to reference counting and garbage collection. In many situations shallow copies of objects are created. It is not difficult to have an object still referenced and not collected (i.e. its memory is not freed).

As an example of shallow copy:
>>>a=[1,2,3,4]
>>> b=a
>>> a[0]=0
>>> print b
[0, 2, 3, 4]
>>> del a
>>> print b
[0, 2, 3, 4]

I think similar situations are likely to happen most probably because of the user code, even though I do not exclude ABAQUS bugs.

If you have time, and the script is not too big you could try run portions of the script to identify what causes the memory leak. For example you could run the first N lines for several times and check the Performance Tab in Windows Task Manager to see if the amount of used memory has increased. If not, then run the first 2N, 3N, ...and so on.

Also, you might be interested in the the garbage collection module (import gc) and reading on reference counting. It should be described in the Python manuals and it should have been included in ABAQUS Scripting Interface.
 
Thanks for the infos!

Now is evident that to address 4Gb memory you need to move to 64bit platform (hard/soft ware). Infact as Xerf said I can address only 3.2GB

bye
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor