Memory in LS-DYNA is specified in “words” at the execution time. The term “word” refers to the amount of data that can be written to or read from a memory in one operation. The following figure will aid in the relationships of bits, the most basic data type, to words on various computers. One bit is a basic unit of data which can be transmitted and can be either 0 or 1. A sequence of 4 bits is called as a Nibble and a sequence of 8 bits is called as one ‘Byte’. 16-bits or 2 bytes is equal to one word on a 16-bit computer. 32-bit or 4 bytes is equal to one word on a 32-bit computer. 64-bit or 8 bytes is equal to one word.
Memory Settings for SMP LS-DYNA
In Shared Memory Parallel (SMP), multiple CPUs solve a given problem in parallel using shared memory as shown below. To allocate sufficient memory, we can specify “memory=XXX” in the execution line where XXX refers to the size of the memory in words which is shared by all CPUs.
Memory Settings for MPP LS-DYNA
There are two memory values that are used by MPP LS-DYNA. MEMORY_1 (specified using memory=xxx in words at the execution line) is used by the first master processor to decompose the model. MEMORY_2 (specified using memory2=xxx in words) is used by all the processors (including the master processor) to solve the decomposed problem. MEMORY_2 depends on the number of processors, the more number of processors, the smaller the decomposed model, and consequently, smaller the memory required.
(Click image to enlarge)
Other Recommended Memory Settings for LS-DYNA
1. Set LSTC_MEMORY to AUTO using the environment variable setting. This allows LS-DYNA to use the initial memory values and then to dynamically allocate memory if it needs more memory.
2. Use roughly 30-70% of the total memory available on the master node as MEMORY_1. This initial memory depends on the model size but the goal would be to reduce effort by LS-DYNA to dynamically scale the memory. Auto memory feature to allow LS-DYNA to dynamically allocate memory at run time is only applicable for explicit simulations and does not apply for implicit simulations. When running implicit simulations, the user must allocate the required memory based on the model content at run time.
3. MEMORY_2 (only for MPP) depends on the number of processors. A good number would be to start with 20-40% of the total memory available on the nodes after which LS-DYNA will then dynamically allocate more memory if required.
Notes
1. The main memory can be specified either at the command line execution (using memory=XXX words) or in the keyword file (using *KEYWORD XXX ). When both forms of definitions exist, memory specified on the commandline will overrule all other settings.
2. Memory2 for MPP-LSDYNA can only be specified at the command line execution (using memory2=xxx words).
3. Memory at the commandline execution can also be specified in Mega words such as memory=260M which is equivalent to memory=260000000 words.
Some Useful Links
• learn_c
• cnx
• dataref.pdf
Acknowledgements
Dr. Jason Wang
Dr. Brian Wainscott