User subroutines can be used when running jobs in parallel. In a distributed run, the entire model is decomposed into separate domains (partitions). Each domain is serviced by a separate MPI process. Abaqus provides well-defined synchronization points at which it is possible to exchange information across all MPI ranks, using the MPI communications facilities. All native MPI calls are supported, in both Fortran and C++. In addition, for cases of hybrid execution, user subroutines and any subroutines called by them must be thread safe. This precludes the use of common blocks, data statements, and save statements. To work around these limitations and for guidelines and techniques
你要用集群主要是用它的并行功能,按照并行的方式只要有两种:Thread和 MPI两种,代表共享内存和分布式两种
abaqus的并行计算针对隐式和显式算法是不同:
以显式为例
首先显式算法:
共享内存的提交方式为:
abaqus job=job-name cpus=n
举例,两个核心 作业名为beam
abaqus job=beam cpus=2
如果包含用户自定义子程序
abaqus job=beam user=umat-name cpus=2
分布式的提交方式为:
abaqus job=job-name cpus=n parallel=domain domains=m dynamic_load_balancing
举例,两个核心 作业名为beam
如果包含用户自定义子程序
abaqus job=beam user=umat-name cpus=2 parallel=domain domains=2
还需要提醒,对于子程序请阅读下面一段文字
Use with user subroutines
User subroutines can be used when running jobs in parallel. In a distributed run, the entire model is decomposed into separate domains (partitions). Each domain is serviced by a separate MPI process. Abaqus provides well-defined synchronization points at which it is possible to exchange information across all MPI ranks, using the MPI communications facilities. All native MPI calls are supported, in both Fortran and C++. In addition, for cases of hybrid execution, user subroutines and any subroutines called by them must be thread safe. This precludes the use of common blocks, data statements, and save statements. To work around these limitations and for guidelines and techniques