
# STAR-CCM+安装与运行
#### 安装STAR-CCM+
yum install libXt libXext libSM libX11
cd /root
unzip siemens.star-ccm15.zip
cd Siemens.STAR-CCM+15
tar zxvf STAR-CCM+15.02.009_01_linux-x86_64-r8.tar.gz
cd starccm+_15.02.009
sh STAR-CCM+15.02.009_01_linux-x86_64-2.12_gnu7.1-r8.sh
# 从STAR-CCM+官网买的正版软件中获取license，将license.dat文件放到/opt/Siemens 中
echo "export CDLMD_LICENSE_FILE=/opt/Siemens/license.dat" \>\> /root/.bashrc
#### 运行Platform MPI下的STAR-CCM+
1. 设置路径。 
   将/etc/ld.so.conf.d/ibm_mpi.conf中内容改为如下内容：
   **/opt/Siemens/15.02.009-R8/STAR-CCM+15.02.009-R8/mpi/openmpi/4.0.1-cda-002/linux-x86_64-2.12**
   
   
2. 执行以下命令，运行ldconfig。 
   **ldconfig**
   
   
3. 执行以下命令，运行STAR-CCM+。 
   **/opt/Siemens/15.02.009-R8/STAR-CCM+15.02.009-R8/star/bin/starccm+ -batch** **-np*total_core_num* -on*ip1:core_num1,ip2:core_num2*** **-rsh ssh -mpi platform -mpiflags "-udapl -e MPI_HASIC_UDAPL=ofa-v2-cma-roe-enp177s0 -e**
   **MPI_ICLIB_UDAPL=/usr/lib64/libdat2.so.2" /opt/Siemens/A-1.4T-inletsystem-blockqian-case2.sim**
   示例：
   ```
   /opt/Siemens/15.02.009-R8/STAR-CCM+15.02.009-R8/star/bin/starccm+ -batch -np 88 -on 192.168.0.96:44,192.168.0.166:44 -rsh ssh -mpi platform -mpiflags "-udapl -e MPI_HASIC_UDAPL=ofa-v2-cma-roe-enp177s0 -e
   MPI_ICLIB_UDAPL=/usr/lib64/libdat2.so.2" /opt/Siemens/A-1.4T-inletsystem-blockqian-case2.sim
   ```
   ![](https://support.huaweicloud.com/usermanual-hpc/public_sys-resources/note_3.0-zh-cn.png)
   - *total_core_num*：运行STAR-CCM+指定的物理核数。
   
   - *ip1,ip2*：运行STAR-CCM+指定的主机信息。
   
   - *core_num1* ,*core_num2*：指定每个主机运行的物理核数。
   
   
   
   - MPI_HASIC_UDAPL：在/etc/dat.conf中配置的值。
   
   - /opt/Siemens/A-1.4T-inletsystem-blockqian-case2.sim：算例文件。
    
   
   
 
#### 运行OpenMPI下的STAR-CCM+
1. 设置路径。 
   将/etc/ld.so.conf.d/ibm_mpi.conf中内容改为如下内容：
   **/opt/Siemens/15.02.009-R8/STAR-CCM+15.02.009-R8/mpi/openmpi/4.0.1-cda-002/linux-x86_64-2.12**
   
   
2. 执行以下命令，运行ldconfig。 
   **ldconfig**
   
   
3. 执行以下命令，运行STAR-CCM+。 
   **/opt/Siemens/15.02.009-R8/STAR-CCM+15.02.009-R8/star/bin/starccm+ -batch -np*total_core_num* -on*ip1:core_num1,ip2:core_num2* -rsh ssh -mpi mpi_lib -mpiflags "--allow-run-as-root --mca pml ucx --mca btl \^openib,tcp,uct --mca mca_base_env_list**
   **UCX_NET_DEVICES=*efi_0:1* ;UCX_IB_GID_INDEX=*2*;UCX_TLS=rc,shm** **" /opt/Siemens/A-1.4T-inletsystem-blockqian-case2.sim**
   **示例：**
   ```
   /opt/Siemens/15.02.009-R8/STAR-CCM+15.02.009-R8/star/bin/starccm+ -batch -np 88 -on 192.168.0.96:44,192.168.0.166:44 -rsh ssh -mpi openmpi4 -mpiflags "--allow-run-as-root --mca pml ucx --mca btl ^openib,tcp,uct --mca mca_base_env_list UCX_NET_DEVICES=efi_0:1;UCX_IB_GID_INDEX=2;UCX_TLS=rc,shm" /opt/Siemens/A-1.4T-inletsystem-blockqian-case2.sim
   ```
   ![](https://support.huaweicloud.com/usermanual-hpc/public_sys-resources/note_3.0-zh-cn.png)
   - *total_core_num*：运行STAR-CCM+指定的物理核数。
   
   - *ip1,ip2*：运行STAR-CCM+指定的主机信息。
   
   - *core_num1* ,*core_num2*：指定每个主机运行的物理核数。
   
   
   
   - hiroce gids：查下设备名和index。
   
   - UCX_NET_DEVICES: hiroce gids查到的有ip一行的ib_dev的值，后面的值为port的id。
   
   - UCX_IB_GID_INDEX：hiroce gids查到的有ip一行的idx的值。 ![](https://support.huaweicloud.com/usermanual-hpc/zh-cn_image_0000001348255681.jpg "点击放大")
     
   
   
   
   - /opt/Siemens/A-1.4T-inletsystem-blockqian-case2.sim：算例文件。
    
   
   
 
#### 运行参数调优下的STAR-CCM+
端口范围修改
如果不修改，STAR-CCM+可能运行不起来。
1. 执行以下命令修改。 
   **sysctl -w net.ipv4.ip_local_port_range="20000 65535" \>\> /etc/sysctl.conf**
   
   
2. 执行以下命令验证。 
   **sysctl -a \| grep ipv4 \| grep range**
   ![](https://support.huaweicloud.com/usermanual-hpc/zh-cn_image_0000001295375934.png "点击放大")
   
   
修改内存限制
- 设置方法：
  - 设置在内存中锁定进程的最大值无限制（单位:kbytes）：ulimit -l unlimited
  
  - 设置堆栈的最大值无限制（单位:kbytes）：ulimit -s unlimited
   
- 验证方法： 执行**ulimit -a** 命令查看
  ![](https://support.huaweicloud.com/usermanual-hpc/zh-cn_image_0000001295216074.png "点击放大")
  
关闭超线程
系统默认关闭，如果是打开的，需要进行关闭。
1. 判断系统是否开启超线程。 
   - 通过查询系统的物理核数和逻辑核数的关系可以判断是否开启多线程，如果：逻辑核数 = 物理核数，说明没有开超线程；逻辑核数 = 2\*物理核数，说明系统开启了多线程。 Linux系统可以通过查询/proc/cpuinfo文件得到和cpu相关的信息，所需要参数解释如下：
     cat /proc/cpuinfo
     physical id:【处理器个数】物理cpu序列（最大序列为物理cpu数+1）
     core id:【cpu物理核数】物理核数序列（最大序列为物理核数+1）
     processor: 逻辑核数序列（top看到的cpu数+1，包括超线程）
     若 processor = \[physical id\] \* \[core id\] ：没有开超线程
     若 processor 是 \[physical id\] \* \[core id\]的两倍：开了超线程
     
   
   - 通过命令lscpu查询cpu的相关参数，观察参数 Threads per core的参数值，如下图。
     - 开启多线程的情况 ![](https://support.huaweicloud.com/usermanual-hpc/zh-cn_image_0000001295056130.png "点击放大")
       
     
     
     
     - 未开启多线程情况 ![](https://support.huaweicloud.com/usermanual-hpc/zh-cn_image_0000001348455773.png "点击放大")
       
      
   
   
   
   
2. 关闭超线程。 
   通过BMC重启的时候关闭，改成vim disable：
   ![](https://support.huaweicloud.com/usermanual-hpc/zh-cn_image_0000001295535562.jpg "点击放大")
   
   
 
