CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   CFX (https://www.cfd-online.com/Forums/cfx/)
-   -   2 Gb max? (https://www.cfd-online.com/Forums/cfx/19126-2-gb-max.html)

jvk August 16, 2002 08:54

2 Gb max?
 
Is it true that the 32 bit solver is limited to 2 Gb RAM? When I run a parallel job, is 2 Gb the maximum memory for the WHOLE problem, or the maximum PER SOLVERNODE? Best regards,

Jaap van Kampen

Robin August 16, 2002 10:29

Re: 2 Gb max?
 
Hi Jaap,

Firstly, the limit is operating system dependent and stems from what type of integer can be sent to the memory allocation routine, malloc(). If the OS allows a 32 bit unsigned integer, then the limit is 2^32 bytes, thus 4 GB. If the OS only allows a 32 signed integer, then the limit is 2^31 (since one bit is used for the sign of the integer), and the limit is then 2 GB. Windows and Linux both take 32 bit signed integers into malloc(), thus the limit is 2 GB per array on this platform.

Secondly, the limit is per array. Typically, the REAL array is the largest, followed by the INTEGER array. So if a 32 bit signed integer is required by malloc(), the overall memory limit is closer to 4 GB. It probably won't be exactly this, since your are not likely to require as much INTEGER space as REAL.

A 64 bit system is another story, theoretically providing up to 2^64 bytes of RAM!

If you want to test your system, compile and run the following C code:

#include <stdio.h> #include <malloc.h> void main (argc, argv) int argc; char *argv[]; {

int totalsize;

int *iz;

totalsize = 2^30;

while(1) {

iz = NULL;

iz = malloc(totalsize);

if( iz != NULL) {

printf("Memory allocated, %d Mbytes\n",totalsize/(1024*1024));

totalsize = totalsize + 2^27;

free(iz);

} else {

printf("FAILED: Memory not allocated, %d Mbytes\n",totalsize/(2^20));

return;

} } }

Regards, Robin

JvK August 16, 2002 12:47

Re: 2 Gb max?
 
Thanks for your thorough respons Robin! As I understand it, I can just increase my number of partitions (which do not necessarly have to be equal to the number of processors) when I have memory problems?

Regards,

Jaap

Robin August 16, 2002 13:11

Re: 2 Gb max?
 
Hi Jaap,

You're welcome.

Yes. If you do run into memory limits, increasing the number of partitions will help and these do not have to be equal to the number of processors.

Robin

Bart Prast August 19, 2002 08:46

Re: 2 Gb max?
 
Robin,

how does the license manager deal with this? Is it limited by the number of processors or partitions?

Robin August 19, 2002 09:05

Re: 2 Gb max?
 
Hi Bart,

Licenses are requested by the master process. In order to run in parallel, you will require an additional parallel increment for each partition. There is no limit to the number of parallels one may use (I have seen up to 512).

Robin


All times are GMT -4. The time now is 13:36.