Monday, March 16, 2009

LS-DYNA parallel: SMP vs MPP

LS-DYNA, is an part of ANSYS software and it is a general purpose transient dynamic finite element program capable of simulating complex real world problems.

For large models, you can use the shared memory parallel processing (SMP) or the massively parallel processing (MPP) capabilities of ANSYS LS-DYNA to shorten the elapsed time necessary to run an analysis.

The shared memory parallel processing capabilities allow you to distribute model-solving power over multiple processors on the same machine.

The massively parallel processing (MPP) capabilities of ANSYS LS-DYNA allow you to run the LS-DYNA solver over a cluster of machines or use multiple processors on a single machine.

My question is which one is faster and how faster?

To answer to this question, I performed LS-DYNA simulation of an official LS-DYNA example airbag.deploy.k, once with SMP and once with MPP for different number of CPUs. To use LS-DYNA SMP I used the following example command:ls971.e110 pr=aa_r_dy ncpu=%d i=airbag.deploy.k where pr=aa_r_dy is my license, and %d is the number of CPUs to be used for solving the airbag problem. For LS-DYNA MPP I used:lsdyna110 -dis -np %d pr=aa_r_dy i=.airbag.deploy.k where %d is the number of CPUs to be used.

The above commands were used in a short Python script (it is here) that executes them with different values of %d, calculates execution times, and generates file with the time results. The times obtained were plotted against number of CPUs used:The tests were executed on a single server with 4 Intel Xeon processors and 24GB RAM. Each processor had 6 cores. The operating system (CentOS 5.2) sees this as 24 CPUs.

Conclusions

It can be seen for the graph, that solving LS-DYNA problems using MPP is faster than using SMP. However, the execution time does not reduce linearly with the number of CPUs. One reason may be that airbag.deploy.k is not well suited for solving using large number of CPUs.