hexagon logo

Increased ram

Hello,
 
I am running multiple Adams models on parallel threads while using SMP at the same time. In my case that would be 8 Adams solvers running on parallel, each solving an Adams model with PREFERENCES/NTHREADS = 4.
 
However, I noticed that regardless of the amount of processes ran, the RAM usage of my computer is constantly at 8-9/32 GB. Is this because Adams requires no extra memory, or is it because it cannot access it? I know that for example in Nastran, one can set the MEM/MAXMEM values to indicate larger RAM usage. Is theres something similar in Adams?
 
Thanks in advance,
 
Josef K.
  • Hi Josef,
     
    It'd be great if you could update your name on the account here. It now shows mpl00010.
     
    From my experience, Adams should be able to access as much memory as it needs. Sometime, this needs is not solely dependent on the model and the complexity of it, but also dependent on the availability of other resources. Some of these resources are disk I/O speed, CPU L3 cache size, RAM speed (not capacity).
     
    One more thing I would like to know about is: I see you have NTHEAD=4 and are running 8 solvers. Can you also let me know how many CPU cores you have available and whether hyperthreading is enabled on you machine?
     
    Thank you,
    Maziar Rostamian
    Adams Support
  • Hi Maziar,
     
    Updated my name, thanks for pointing that out.
     
    I am attatching my pc specs on the following images. The computer has 2 sockets of 8 cores each, using 2 threads for a total of 32 threads (I believe this means that hyperthreading is enabled).
     
    The CPU L3 casche size is also shown in the image. The total RAM is 64 Gb (the image sent only containts info for 1/4 of the RAM cards). I didn't manage to get the disk I/O speed, as for some reason the OS just didn't excecute the dd command.
     
    Regards,
     
    Josef K.
    CPU
    RAM

    Attached Files (1)
  • Well, it seems you have the right machine! The RAM speed ca definitely be better, perhaps a DDR5 instead of a DDR4. Assuming the working directory where you are running the simulations is on your SSD, you should not have I/O issues, unless there is an extremely large amount of data being written to disk.
     
    One more thing to check is your Adams version and the types of elements you have used in your model. In your MSG file, do you see any messages indicating that some elements used in your model are not supported by SMP?
     
    Thank you,
    Maziar
  • I have checked the msg file and there are not errors about SMP. All elements used are supported by SMP. I can also see the difference in the simulation speed when altering the NTHREADS value.
     
    I 'm sorry if I was not clear in my previous post. What I meant about the ram was the fact that while my PC has 64 GB of RAM, Adams seems to only be able to access 8-9 GB. That is regardless of the amount of model's I run on parallel.
     
    e.g.
     
    Assuming I wanted to run a total of 16 models on parallel without the SMP, Adams would access 8 GB of ram.
     
    Now, assuming I wanted to run a total of 8 models on parallel without the SMP, Adams would still access only 8 GB of RAM.
     
    This is what I meant when I asked if there are any keywords similarly to the ones in Nastran (MAXMEM).
     
    Regards,
     
    Josef K.
  • Hi Josef,
     
    I discussed this matter with our Solver Dev. team and have a better understanding now. When running multiple multi-threaded jobs, it is best not to use hyper threading. This means that for your 8 jobs using an NTHREAD=2 should result in a better performance. Can you please give that a try and let me know the run times? Another test may be to disable hyperthreading in the machine's BIOD settings and retry running the 8 jobs using NTHREAD=2.
     
    This may also affect the RAM usage. Please note that the RAM allocated to a CPU process can be released and written to disk (virtual memory?) when needed. Therefore, the disk I/O speed can affect the overall performance.
     
    In general, when using the Adams Solver (C++), we dynamically allocate RAM out of all the available RAM, which eliminates the needs for a memSize (equivalent to MAXMEM), which was used by Adams Solver (FORTRAN). Therefore, 8GB seems to be the highest amount of RAM that your jobs need due to their nature (DOF and complexity) and the way they are utilizing other resources.
     
    Please let me know your findings.
     
    Thank you,
    Maziar
  • Hello Maziar,
     
    I see, if this is the case with the RAM usage, then I suppose that my problem lies elsewere.
     
    As far as the number of threads are concerned, these are the times in seconds for random excecutions of the same Adams model.
     
    Parallel on 8 cores, 2 threads SMP:
     
    1593.2179
    2719.5179
    1525.8497
    1815.4585
    1683.9862
    1300.7028
    1433.7511
    1682.7296
    Parallel on 8 cores, 4 threads SMP:
     
    1384.6128
    1237.9157
    1358.3728
    1128.8007
    1036.5104
    1118.3446
    1046.502
    1114.2684
     
    As you can see, using 4 threads on the SMP, the computations time decreases. So i suppose using hyper threading does pay off, at least in my case.
     
    As I am running a very large job on the same pc right now, I could not disable hyper threading in the BIOS. I suppose that since the 4 threads do provide better results than the 2 threads when SMP is enabled, then my way of setting up the parallelism and SMP works. However, if there is a chance that by disabling hyperthreading and running on a 2-threaded SMP I get even better results, I may have to try that as well.
     
    In your opinion, after seeing that at least for now (when hyper threading is enabled) the 4-threaded SMP provdies better results than the 2-threaded SMP, would it be worth for me to try and disabling it to run on 2-threaded SMPs?
     
    Kindest regards,
     
    Josef K.
  • Hi Josef,
     
    Thank you for sharing the test results. I suspect that disable hyperthreading can help much if at all. Now back to the RAM usage question, we think the Total Memory Usage reported by the OS only shows the memory used by the active processes. Given that you have 16 processors, I think the OS reports only the total RAM used by the active processes. Hence, when launching 32 processes, you may not see an increase in the reported RAM.
     
    Nonetheless, we'd like to reassure you that we have no limits on memory allocation. All array/matrix memory is dynamically allocated.
     
    Thank you,
    Maziar