<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>个人的网站学习记录</title>
    <link>https://www.nech.top/</link>
    <description>Recent content on 个人的网站学习记录</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>zh</language>
    <copyright>Copyright 2019~2021 www.nech.top.</copyright>
    <lastBuildDate>Thu, 16 Jan 2020 00:00:00 +0000</lastBuildDate>
    
        <atom:link href="https://www.nech.top/index.xml" rel="self" type="application/rss+xml" />
    
    
    
        <item>
        <title>LSF作业调度系统</title>
        <link>https://www.nech.top/posts/lsf/</link>
        <pubDate>Thu, 16 Jan 2020 00:00:00 +0000</pubDate>
        
        <guid>https://www.nech.top/posts/lsf/</guid>
        <description>个人的网站学习记录 https://www.nech.top/posts/lsf/ -

&lt;h1 id=&#34;查看队列情况-bqueues&#34;&gt;查看队列情况&lt;code&gt;bqueues&lt;/code&gt;&lt;/h1&gt;

&lt;p&gt;&lt;img src=&#34;https://oss.nech.top/img/20200103221335.png&#34; alt=&#34;zhomnggo&#34; /&gt;
利用&lt;code&gt;bqueues -l [queue]&lt;/code&gt;查看队列详细情况
&lt;img src=&#34;https://oss.nech.top/img/20200103221815.png&#34; alt=&#34;&#34; /&gt;&lt;/p&gt;

&lt;h1 id=&#34;查看各节点情况-lsload-bhosts&#34;&gt;查看各节点情况 &lt;code&gt;lsload&lt;/code&gt; 、 &lt;code&gt;bhosts&lt;/code&gt;&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;查看各节点 运行情况 &lt;code&gt;lsload&lt;/code&gt;
&lt;img src=&#34;https://oss.nech.top/img/20200103222108.png&#34; alt=&#34;&#34; /&gt;&lt;/li&gt;
&lt;li&gt;查看各节点空闲情况&lt;code&gt;bhosts&lt;/code&gt;
&lt;img src=&#34;https://oss.nech.top/img/20200103222253.png&#34; alt=&#34;&#34; /&gt;
&lt;br /&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h1 id=&#34;查看用户信息-busers&#34;&gt;查看用户信息&lt;code&gt;busers&lt;/code&gt;&lt;/h1&gt;

&lt;p&gt;&lt;img src=&#34;https://oss.nech.top/img/20200103222415.png&#34; alt=&#34;&#34; /&gt;&lt;/p&gt;

&lt;h1 id=&#34;提交作业-bsub&#34;&gt;提交作业&lt;code&gt;bsub&lt;/code&gt;&lt;/h1&gt;

&lt;p&gt;一些提交时的控制参数&lt;/p&gt;

&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;选项&lt;/th&gt;
&lt;th&gt;说明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;

&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;-q&lt;/td&gt;
&lt;td&gt;指定提交哪个队列&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;-n min_proc[,max_proc]&lt;/td&gt;
&lt;td&gt;指定所需要的CPU核数&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;-m&lt;/td&gt;
&lt;td&gt;指定作业在特定节点上运行&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;-J&lt;/td&gt;
&lt;td&gt;给作业起名字&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;-R &amp;ldquo;res_req&amp;rdquo; [-R &amp;ldquo;res_req&amp;rdquo; &amp;hellip;]&lt;/td&gt;
&lt;td&gt;作业在需要满足某种条件的节点上运行，如&amp;rdquo;span[hosts=1]&amp;ldquo;：指定需要在同一个节点内运行；-R &amp;ldquo;span[ptile=8]&amp;ldquo;：指定需要在每一个节点内运行多少核&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;-x&lt;/td&gt;
&lt;td&gt;独占节点运行&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;-i -o -e&lt;/td&gt;
&lt;td&gt;指定作业的屏幕输入文件、正常屏幕输出到的文件和错误屏幕输出的文件&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;-I、-Ip和-Is&lt;/td&gt;
&lt;td&gt;运行交互式的作业&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;-w&lt;/td&gt;
&lt;td&gt;可以使得新提交的作业在满足一定条件时才运行&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;-b [[year:][month:]day:]hour:minute&lt;/td&gt;
&lt;td&gt;可以使得新提交的作业在特定时间运行&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;-W [hour:]minute&lt;/td&gt;
&lt;td&gt;可以使得提交的作业在超过设定时长后终止&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;-E &amp;ldquo;pre_exec_command [arguments &amp;hellip;]&amp;rdquo;&lt;/td&gt;
&lt;td&gt;作业在运行前，在所分配的节点上运行特定命令&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;-Ep &amp;ldquo;post_exec_command [arguments &amp;hellip;]&amp;rdquo;&lt;/td&gt;
&lt;td&gt;可以使得作业在运行结束时，在所分配的节点上运行特定命令&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

&lt;h1 id=&#34;查看作业的运行情况-bjobs&#34;&gt;查看作业的运行情况 &lt;code&gt;bjobs&lt;/code&gt;&lt;/h1&gt;

&lt;p&gt;&lt;img src=&#34;https://oss.nech.top/img/20200103230008.png&#34; alt=&#34;&#34; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;bjobs -u all&lt;/code&gt;:显示所有用户作业&lt;/p&gt;

&lt;p&gt;&lt;code&gt;bjobs -q queuename&lt;/code&gt; : 显示queuename队列作业&lt;/p&gt;

&lt;p&gt;&lt;code&gt;bjobs -r&lt;/code&gt;:显示运行中作业&lt;/p&gt;

&lt;p&gt;&lt;code&gt;bjobs -p&lt;/code&gt;:查看作业仍在排队等待的原因&lt;/p&gt;

&lt;p&gt;&lt;code&gt;bjobs -l 1234&lt;/code&gt;:查看作业的详细信息&lt;/p&gt;

&lt;h1 id=&#34;终止作业-bkill&#34;&gt;终止作业&lt;code&gt;bkill&lt;/code&gt;&lt;/h1&gt;

&lt;p&gt;&lt;code&gt;bkill 0&lt;/code&gt;: 可以杀掉自己所有作业&lt;/p&gt;

&lt;h1 id=&#34;其他命令&#34;&gt;其他命令&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;挂起作业&lt;code&gt;bstop&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;查看运行中作业的屏幕正常输出&lt;code&gt;bpeek&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;code&gt;bpeek -f JobID&lt;/code&gt; : 连续查看作业的连续屏幕输出&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;继续运行被挂起的作业&lt;code&gt;bresume&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;设置作业最先运行&lt;code&gt;btop&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;设置作业最后运行&lt;code&gt;bbot&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;修改排队中的作业选项&lt;code&gt;bmod&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;查看作业历史统计信息&lt;code&gt;bacct&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;查看某个作业的历史统计信息&lt;code&gt;baat -l&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;查看某时间段内作业历史统计信息&lt;code&gt;bacct -C -D -S&lt;/code&gt;（C:完成的；D:开始运行的；S:提交的）&lt;/p&gt;

&lt;p&gt;eg:&lt;code&gt;bacct -l -C 2014/03/01,2014/04/01&lt;/code&gt;&lt;/p&gt;

&lt;h1 id=&#34;常用变量&#34;&gt;常用变量&lt;/h1&gt;

&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;变量名&lt;/th&gt;
&lt;th&gt;说明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;

&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;%J&lt;/td&gt;
&lt;td&gt;作业号&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;%JG&lt;/td&gt;
&lt;td&gt;作业组&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;%I&lt;/td&gt;
&lt;td&gt;作业组中的索引&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;%EJ&lt;/td&gt;
&lt;td&gt;执行作业号&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;%EI&lt;/td&gt;
&lt;td&gt;作业组中的执行作业索引&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;%P&lt;/td&gt;
&lt;td&gt;作业名&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;%U&lt;/td&gt;
&lt;td&gt;用户名&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;%G&lt;/td&gt;
&lt;td&gt;用户组名&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;LS_JOBPID&lt;/td&gt;
&lt;td&gt;作业进程号&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;LSB_HOSTS&lt;/td&gt;
&lt;td&gt;存储系统分配的节点名&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;LSB_JOBFILENAME&lt;/td&gt;
&lt;td&gt;作业脚本文件名&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;LSB_JOBID&lt;/td&gt;
&lt;td&gt;作业号&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;LSB_QUEUE&lt;/td&gt;
&lt;td&gt;作业队列&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;LSB_JOBPGIDS&lt;/td&gt;
&lt;td&gt;作业进程组号组&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;LSB_JOBPIDS&lt;/td&gt;
&lt;td&gt;作业进程号组&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
- https://www.nech.top/posts/lsf/ - Copyright 2019~2021 www.nech.top.</description>
        </item>
    
    
    
        <item>
        <title>System Coupling 2.0</title>
        <link>https://www.nech.top/posts/ansys_sc_2/</link>
        <pubDate>Mon, 30 Dec 2019 00:00:00 +0000</pubDate>
        
        <guid>https://www.nech.top/posts/ansys_sc_2/</guid>
        <description>个人的网站学习记录 https://www.nech.top/posts/ansys_sc_2/ -

&lt;h1 id=&#34;working-with-the-system-coupling-data-model&#34;&gt;Working with the System Coupling Data Model&lt;/h1&gt;

&lt;p&gt;&lt;code&gt;System Coupling Data Model Settings&lt;/code&gt;包含以下四个部分：&lt;code&gt;CouplingControl&lt;/code&gt; &lt;code&gt;OutputControl&lt;/code&gt; &lt;code&gt;CouplingInterface&lt;/code&gt; &lt;code&gt;CouplingParticipant&lt;/code&gt;&lt;/p&gt;

&lt;h1 id=&#34;setting-up-a-coupled-analysis-in-workbench-for-a-command-line-run&#34;&gt;Setting Up a Coupled Analysis in Workbench for a Command-Line Run&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;Create a directory structure.&lt;/li&gt;
&lt;li&gt;Set up the coupled analysis.
注：对于Fluent来说就是要设置一个或多个边界条件，并设置动网格，Calculate下面的时间步长和时间步数不起作用，会被SC中的设置覆盖；
对于Mechanical来说就是要设置一个System Coupling Region，并注意一些其他设置（&lt;code&gt;End Time Specification&lt;/code&gt;、&lt;code&gt;Ramping of Data-Transfer Loads&lt;/code&gt;、&lt;code&gt;Ramping of Loads Within Mechanical&lt;/code&gt;、&lt;code&gt;Output Controls&lt;/code&gt;
），&lt;/li&gt;
&lt;li&gt;Generate participants&amp;rsquo; solver input files.
注意：Fluent中的input file需要在更新Workbench Solution之前 产生&lt;/li&gt;
&lt;li&gt;Export a System Coupling SCI file.
注意：在早前版本的Workbench下导出的SCI文件可能不含&lt;ParticipantType&gt;这一标签，这时就需要手动加入&lt;/li&gt;
&lt;/ol&gt;

&lt;h1 id=&#34;setting-up-a-command-line-coupled-analysis&#34;&gt;Setting Up a Command-Line Coupled Analysis&lt;/h1&gt;

&lt;h2 id=&#34;preparing-for-a-coupled-analysis&#34;&gt;Preparing for a Coupled Analysis&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;准备一个耦合分析的目录结构&lt;/li&gt;
&lt;li&gt;完成各个部件的设置
注：对于Fluent来说就是要设置一个或多个边界条件，并设置动网格，Calculate下面的时间步长和时间步数不起作用，会被SC中的设置覆盖；
对于Mechanical来说就是要设置一个System Coupling Region&lt;/li&gt;
&lt;li&gt;额外的组件设置
包括：Compatible material properties、Compatible topological properties、Appropriate motion definitions&lt;/li&gt;
&lt;li&gt;生成各组件文件，包括各组件的输入文件和scp文件&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id=&#34;creating-a-coupled-analysis&#34;&gt;Creating a Coupled Analysis&lt;/h2&gt;

&lt;h3 id=&#34;using-the-system-coupling-command-line-interface-cli&#34;&gt;Using the System Coupling Command-Line Interface (CLI)&lt;/h3&gt;

&lt;p&gt;打开Shell，根据操作系统的不同执行以下命令：&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-bat&#34;&gt;&amp;quot;%AWP_ROOT195%\SystemCoupling\bin\systemcoupling&amp;quot;
&lt;/code&gt;&lt;/pre&gt;

&lt;pre&gt;&lt;code class=&#34;language-shell&#34;&gt;&amp;quot;$AWP_ROOT195/SystemCoupling/bin/systemcoupling&amp;quot;
&lt;/code&gt;&lt;/pre&gt;

&lt;h3 id=&#34;getting-help-in-the-system-coupling-cli&#34;&gt;Getting Help in the System Coupling CLI&lt;/h3&gt;

&lt;pre&gt;&lt;code class=&#34;language-bat&#34;&gt;&amp;quot;%AWP_ROOT195%\SystemCoupling\bin\systemcoupling&amp;quot; --help 
&lt;/code&gt;&lt;/pre&gt;

&lt;pre&gt;&lt;code class=&#34;language-Python&#34;&gt;help(Initialize)
&lt;/code&gt;&lt;/pre&gt;

&lt;h2 id=&#34;loading-the-participants&#34;&gt;Loading the Participants&lt;/h2&gt;

&lt;pre&gt;&lt;code class=&#34;language-Python&#34;&gt;LoadParticipants(InputFiles = [&amp;quot;mechanical.scp&amp;quot;, &amp;quot;fluent.scp&amp;quot;])
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;随后会输出scp文件中的信息：&lt;code&gt;CouplingControl&lt;/code&gt;、&lt;code&gt;OutputControl&lt;/code&gt;、&lt;code&gt;CouplingParticipant&lt;/code&gt;
Tip：To load a single participant, you can use the &lt;code&gt;AddParticipant&lt;/code&gt; command.&lt;/p&gt;

&lt;h2 id=&#34;adding-a-coupling-interface&#34;&gt;Adding a Coupling Interface&lt;/h2&gt;

&lt;p&gt;运行命令&lt;code&gt;AddInterface&lt;/code&gt;以添加耦合交界面，This command allows you to create one interface at a time by specifying the internal object names of participants and regions to be to included in the interface.
Sample：&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-python&#34;&gt;AddInterface(SideOneParticipantName = [&amp;quot;AEDT-1&amp;quot;], SideOneRegionNames = [&amp;quot;Volume5&amp;quot;], SideTwoParticipantName = [&amp;quot;MAPDL-2&amp;quot;], SideTwoRegionNames = [&amp;quot;FVIN_1&amp;quot;])
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Tip: To specify participants and regions by object display names, use the AddInterfaceByDisplayName command.&lt;/p&gt;

&lt;h2 id=&#34;adding-a-data-transfer&#34;&gt;Adding a Data Transfer&lt;/h2&gt;

&lt;p&gt;To create a data transfer between the sides of an existing interface, run the &lt;code&gt;AddDataTransfer&lt;/code&gt; command.This command allows you to create a data transfer by specifying the interface, the target side of the transfer, and variables to be associated with each side of the interface. To create a two-way data transfer on an interface, you must run this command twice, once for each direction.
After creating data transfers, you can run the &lt;code&gt;GetErrors&lt;/code&gt; command to verify that no errors were introduced.&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-python&#34;&gt;AddDataTransfer(Interface = &amp;quot;Interface-1&amp;quot;,TargetSide = &amp;quot;Two&amp;quot;,SideOneVariable = &amp;quot;Loss&amp;quot;,SideTwoVariable = &amp;quot;HGEN&amp;quot;)
&lt;/code&gt;&lt;/pre&gt;

&lt;h2 id=&#34;setting-geometry-transformations-for-models-with-different-orientations&#34;&gt;Setting Geometry Transformations for Models with Different Orientations&lt;/h2&gt;

&lt;h1 id=&#34;running-a-command-line-coupled-analysis&#34;&gt;Running a Command-Line Coupled Analysis&lt;/h1&gt;

&lt;h2 id=&#34;starting-the-participants&#34;&gt;Starting the Participants&lt;/h2&gt;

&lt;p&gt;运行&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-Python&#34;&gt;StartParticipants()
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;code&gt;StartParticipants()&lt;/code&gt;为可选参数，可以忽略此参数直接运行之后的&lt;code&gt;Solve&lt;/code&gt; &lt;code&gt;Initialize&lt;/code&gt; &lt;code&gt;Step&lt;/code&gt;等命令，软件会自动地启动各个组件（除非是在&lt;code&gt;ExecutionControl&lt;/code&gt;设置为&lt;code&gt;ExternallyManaged&lt;/code&gt;这种情况下，软件无法自动启动各个组件），不过&lt;code&gt;StartParticipants()&lt;/code&gt;可以提供更多的控制选项&lt;/p&gt;

&lt;h2 id=&#34;starting-the-solution&#34;&gt;Starting the Solution&lt;/h2&gt;

&lt;p&gt;运行&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-Python&#34;&gt;Solve()
&lt;/code&gt;&lt;/pre&gt;

&lt;h2 id=&#34;monitoring-solution-progress&#34;&gt;Monitoring Solution Progress&lt;/h2&gt;

&lt;p&gt;求解开始后，耦合求解的输出会存到Transcript和Log File中&lt;/p&gt;

&lt;h2 id=&#34;reviewing-coupled-analysis-output&#34;&gt;Reviewing Coupled Analysis Output&lt;/h2&gt;

&lt;p&gt;求解好后，可以查看分析输出文件并进行相应的后处理&lt;/p&gt;

&lt;h1 id=&#34;advanced-workflows-for-command-line-system-coupling&#34;&gt;Advanced Workflows for Command—Line System Coupling&lt;/h1&gt;

&lt;h2 id=&#34;saving-a-command-line-coupled-analysis&#34;&gt;Saving a Command-Line Coupled Analysis&lt;/h2&gt;

&lt;p&gt;耦合分析会自动存到两个HDF5文件里面，如果需要手动保存，可以使用&lt;code&gt;Save&lt;/code&gt;命令。默认情况下，上次完成的结果文件会保存到&lt;code&gt;SyC&lt;/code&gt;目录下面&lt;/p&gt;

&lt;h2 id=&#34;stopping-a-command-line-coupled-analysis-run&#34;&gt;Stopping a Command-Line Coupled Analysis Run&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;在交互模式下，使用&lt;code&gt;Shutdown&lt;/code&gt;命令来停止，这是一种干净的Shutdown，可以生成一个Restart point&lt;/li&gt;
&lt;li&gt;在命令行模式下，可以在System Coupling工作目录下面创建一个名为scStop的文件来Interrupt(文件内容为数字0)或者Aboort(文件内容为数字1)计算&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id=&#34;restarting-a-command-line-coupled-analysis-run&#34;&gt;Restarting a Command-Line Coupled Analysis Run&lt;/h2&gt;

&lt;h3 id=&#34;creation-of-restart-points-for-command-line-system-coupling&#34;&gt;Creation of Restart Points for Command-Line System Coupling&lt;/h3&gt;

&lt;p&gt;Restart points可以以在以下几种情况下产生：
1. 可以通过&lt;code&gt;outputControl&lt;/code&gt; data model settings指定
2. 通过&lt;code&gt;CreateRestartPoint&lt;/code&gt;交互式命令指定
3. 分析干净退出时&lt;/p&gt;

&lt;h3 id=&#34;restarting-a-command-line-run-from-the-final-result&#34;&gt;Restarting a Command-Line Run from the Final Result&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;在System Coupling控制台，运行&lt;code&gt;open&lt;/code&gt;命令，System Coupling会默认找到最新的coupling step，载入需要的数据并从该时间步重新开始&lt;/li&gt;
&lt;li&gt;如果之前的分析已经求解完，可以通过使用&lt;code&gt;DurationControl&lt;/code&gt;设置来延长分析&lt;/li&gt;
&lt;li&gt;如果需要修改设置，可以在此时进行修改，在重启之前的设置都会写入到&lt;code&gt;Settings&lt;/code&gt;文件并在下次重算时使用&lt;/li&gt;
&lt;li&gt;使用你自己喜欢的求解过程（使用&lt;code&gt;Solve&lt;/code&gt;命令或者是交互式的求解命令）&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id=&#34;restarting-a-command-line-run-from-an-intermediate-result&#34;&gt;Restarting a Command-Line Run from an Intermediate Result&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;运行带有&lt;code&gt;CouplingStep&lt;/code&gt;参数的&lt;code&gt;open&lt;/code&gt;命令（注意，当从一个较早的重算点重算时，这之后的重算点都会被删除，如果还要这些重算点，可以在不同的目录下面保存重算点文件和Settings文件）&lt;/li&gt;
&lt;li&gt;如果需要修改设置，可以在此时进行修改，在重启之前的设置都会写入到&lt;code&gt;Settings&lt;/code&gt;文件并在下次重算时使用&lt;/li&gt;
&lt;li&gt;使用你自己喜欢的求解过程（使用&lt;code&gt;Solve&lt;/code&gt;命令或者是交互式的求解命令）&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id=&#34;using-interactive-solve-commands&#34;&gt;Using Interactive Solve Commands&lt;/h2&gt;

&lt;p&gt;一些主要的交互式命令：&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-Python&#34;&gt;PrintSetup
Initialize
Step
CreateRestartPoint
Shutdown
&lt;/code&gt;&lt;/pre&gt;

&lt;h2 id=&#34;using-parallel-processing-capabilities&#34;&gt;Using Parallel Processing Capabilities&lt;/h2&gt;

&lt;h3 id=&#34;并行运行流固耦合的流程&#34;&gt;并行运行流固耦合的流程&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Set up your analysis&lt;/li&gt;
&lt;li&gt;(Optional) To start System Coupling in parallel mode, use the parallel-specific startup options&lt;/li&gt;
&lt;li&gt;Set up your coupled analysis&lt;/li&gt;
&lt;li&gt;Edit your data model settings.&lt;/li&gt;
&lt;li&gt;(Optional) To run a coupling participant in parallel mode, use the &lt;code&gt;ParallelArguments&lt;/code&gt; ExecutionControl setting to specify details of the participant&amp;rsquo;s execution
Tip：Parallel arguments are not specified in the participant&amp;rsquo;s SCP file and must be entered directly into the data model.&lt;/li&gt;
&lt;li&gt;(Optional) Use the &lt;code&gt;PartitionParticipants&lt;/code&gt; command to specify how the participants are partitioned across compute resources. For more information, see Using Parallel Processing Capabilities.&lt;/li&gt;
&lt;li&gt;Run the solution.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id=&#34;parallel-processing-for-system-coupling&#34;&gt;Parallel Processing for System Coupling&lt;/h3&gt;

&lt;pre&gt;&lt;code class=&#34;language-bat&#34;&gt; &amp;quot;%AWP_ROOT195%\SystemCoupling\bin\systemcoupling&amp;quot; -t&amp;lt;NPROCS&amp;gt; [-p &amp;lt;INTERCONNECT&amp;gt;] 
[--mpi=&amp;lt;MPI&amp;gt;] [-cnf=&amp;lt;HOSTFILE&amp;gt;] 
&lt;/code&gt;&lt;/pre&gt;

&lt;pre&gt;&lt;code class=&#34;language-shell&#34;&gt;$AWP_ROOT195/SystemCoupling/bin/systemcoupling&amp;quot; -t&amp;lt;NPROCS&amp;gt; [-p &amp;lt;INTERCONNECT&amp;gt;] 
[--mpi=&amp;lt;MPI&amp;gt;] [-cnf=&amp;lt;HOSTFILE&amp;gt;] 
&lt;/code&gt;&lt;/pre&gt;

&lt;h3 id=&#34;participant-partitioning-examples&#34;&gt;Participant Partitioning Examples&lt;/h3&gt;

&lt;pre&gt;&lt;code class=&#34;language-python&#34;&gt;PartitionParticipants(AlgorithmName = &#39;SharedAllocateMachines&#39;,NamesAndFractions = [(&#39;PARTICIPANT-1&#39;, 1.0), (&#39;PARTICIPANT-2&#39;, 1.0),(&#39;PARTICIPANT-3&#39;, 1.0/5.0)]),MachineList = [{&#39;M0&#39; : &#39;host1&#39;, &#39;core-count&#39; : 12},{&#39;M1&#39; : &#39;host2&#39;, &#39;core-count&#39; : 12},{&#39;M2&#39; : &#39;host3&#39;, &#39;core-count&#39; : 12},{&#39;M3&#39; : &#39;host4&#39;, &#39;core-count&#39; : 7},{&#39;M4&#39; : &#39;host5&#39;, &#39;core-count&#39; : 6},{&#39;M5&#39; : &#39;host6&#39;, &#39;core-count&#39; : 3},{&#39;M6&#39; : &#39;host7&#39;, &#39;core-count&#39; : 3},{&#39;M7&#39; : &#39;host8&#39;, &#39;core-count&#39; : 1},{&#39;M8&#39; : &#39;host9&#39;, &#39;core-count&#39; : 1}])
&lt;/code&gt;&lt;/pre&gt;

&lt;h2 id=&#34;executing-a-command-line-run-of-a-coupled-analysis-set-up-in-workbench&#34;&gt;Executing a Command-Line Run of a Coupled Analysis Set Up in Workbench&lt;/h2&gt;

&lt;p&gt;You can execute a command-line run of a coupled analysis that was set up in Workbench.The execution process is similar to that of an analysis to be run from the command line, except that you&amp;rsquo;ll:
1. populate the data model with a System Coupling SCI file instead of multiple SCP files, and
2. set execution controls in the data model (because the SCI file doesn&amp;rsquo;t provide this information).
Note:
    1. The use of both SCI and SCP files in the same analysis is not supported.
    2. Restarts are not supported if the default participant names (as assigned in the SCI file: Solution, Solution 1, etc.) have been changed.&lt;/p&gt;

&lt;p&gt;To run your Workbench setup from the command line, perform the following steps:
1. Start System Coupling as described in Using the System Coupling Command-Line Interface (CLI).
2. Import the SCI file by running the &lt;code&gt;ImportSystemCouplingInputFile&lt;/code&gt;.&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-python&#34;&gt;ImportSystemCouplingInputFile(FilePath = &#39;scInput.sci&#39;)
&lt;/code&gt;&lt;/pre&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;To provide information not included in the SCI file, edit each participant&amp;rsquo;s ExecutionControl settings in the data model:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Set &lt;code&gt;WorkingDirectory&lt;/code&gt; to the participant&amp;rsquo;s coupling working directory.&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Set InitialInput to the name of the participant&amp;rsquo;s solver input file.
Example:Set execution controls for two participants&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-python&#34;&gt;DatamodelRoot().CouplingParticipant[&#39;Solution&#39;].ExecutionControl.InitialInput = &#39;structural.dat&#39;
DatamodelRoot().CouplingParticipant[&#39;Solution&#39;].ExecutionControl.WorkingDirectory = &#39;Struct&#39;
DatamodelRoot().CouplingParticipant[&#39;Solution 1&#39;].ExecutionControl.InitialInput = &#39;fluidFlow.cas&#39;
DatamodelRoot().CouplingParticipant[&#39;Solution 1&#39;].ExecutionControl.WorkingDirectory = &#39;Fluid&#39;
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Run the coupled analysis as described in Running a Command-Line Coupled Analysis.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;If desired, restart the coupled analysis as described in Restarting a Command-Line Coupled Analysis Run. Do not reissue the ImportSystemCouplingInputFile command.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h1 id=&#34;system-coupling-related-settings-in-mechanical&#34;&gt;System Coupling Related Settings in Mechanical&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;End Time Specification&lt;/li&gt;
&lt;li&gt;Ramping of Data-Transfer Loads&lt;/li&gt;
&lt;li&gt;Ramping of Loads Within Mechanical&lt;/li&gt;
&lt;li&gt;Output Controls&lt;/li&gt;
&lt;/ol&gt;

&lt;h1 id=&#34;脚本示例&#34;&gt;脚本示例&lt;/h1&gt;

&lt;p&gt;本脚本是在Workbench图形界面中将各部件中设置好后，导出各部件相应的输入文件和&lt;code&gt;sci&lt;/code&gt;文件，再在命令行模式下进行计算。
首先打开System Coupling CLI
Windows：&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-bat&#34;&gt;&amp;quot;%AWP_ROOT195%\SystemCoupling\bin\systemcoupling&amp;quot;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Linux:&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-shell&#34;&gt;&amp;quot;$AWP_ROOT195/SystemCoupling/bin/systemcoupling&amp;quot;
&lt;/code&gt;&lt;/pre&gt;

&lt;pre&gt;&lt;code class=&#34;language-Python&#34;&gt;# Import the SCI file
ImportSystemCouplingInputFile(FilePath = &#39;coupling.sci&#39;)


# To provide information not included in the SCI file, edit each participant&#39;s ExecutionControl settings in the data model:
DatamodelRoot().CouplingParticipant[&#39;Solution&#39;].ExecutionControl.InitialInput = &#39;struct.dat&#39;
DatamodelRoot().CouplingParticipant[&#39;Solution&#39;].ExecutionControl.WorkingDirectory = &#39;Struct&#39;

DatamodelRoot().CouplingParticipant[&#39;Solution 1&#39;].ExecutionControl.WorkingDirectory = &#39;Fluid&#39;
DatamodelRoot().CouplingParticipant[&#39;Solution 1&#39;].ExecutionControl.InitialInput = &#39;fluidFlow.jou&#39;

DatamodelRoot().CouplingParticipant[&#39;Solution 1&#39;].ExecutionControl.InitialInput = &#39;fluidFlow.cas&#39;
DatamodelRoot().CouplingParticipant[&#39;Solution 1&#39;].ExecutionControl.AdditionalArguments = &#39;-t 2 -mpi=intel&#39;

# Parallel Settings
PartitionParticipants(AlgorithmName = &#39;SharedAllocateMachines&#39;,NamesAndFractions = [(&#39;Solution&#39;, 0.5),(&#39;Solution 1&#39;, 1.0)], MachineList = [{&#39;machine-name&#39; : &#39;DESKTOP-szj&#39;, &#39;core-count&#39; : 2}])

#  Starting the Participants
StartParticipants()


# Starting the Solution
Solve()

# Restart the Solution
Open(FilePath = &#39;WorkingDirectoryWithResults&#39;, CouplingStep = 6)
DatamodelRoot().CouplingControl.AnalysisType.DurationControl.EndTime = &#39;15 [s]&#39;
# 另外各个部件也要完成相应的时间延长设置，如Mechanical中将struct.dat中的time延长。
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;一些可选命令&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-Python&#34;&gt;DatamodelRoot().CouplingControl.PrintState()
DatamodelRoot().CouplingParticipant.GetChildNames()
DatamodelRoot().CouplingParticipant[&#39;Solution 1&#39;].ExecutionControl.PrintState()

DatamodelRoot().OutputControl.Option = &#39;StepInterval&#39;
DatamodelRoot().OutputControl.OutputFrequency = &#39;50&#39;
DatamodelRoot().CouplingControl.AnalysisType.DurationControl.EndTime = &#39;10 [s]&#39;
DatamodelRoot().CouplingControl.AnalysisType.StepControl.TimeStepSize = &#39;1.0 [s]&#39;

GetErrors()
GetErrorsXML()
&lt;/code&gt;&lt;/pre&gt;
- https://www.nech.top/posts/ansys_sc_2/ - Copyright 2019~2021 www.nech.top.</description>
        </item>
    
    
    
        <item>
        <title>集群及PBS调度系统常用命令</title>
        <link>https://www.nech.top/posts/pbs/</link>
        <pubDate>Thu, 14 Nov 2019 11:25:05 -0400</pubDate>
        
        <guid>https://www.nech.top/posts/pbs/</guid>
        <description>个人的网站学习记录 https://www.nech.top/posts/pbs/ -

&lt;h1 id=&#34;使用environment-modules&#34;&gt;使用Environment Modules&lt;/h1&gt;

&lt;p&gt;在同一软件的不同版本之间切换，也可在同一功能的不同软件之间切换，以此来选择最合适的编程环境和运行环境。使用系统命令 module 可以快速地达到这一效果。&lt;/p&gt;

&lt;h2 id=&#34;常用module命令&#34;&gt;常用module命令&lt;/h2&gt;

&lt;pre&gt;&lt;code class=&#34;language-shell&#34;&gt;$ module list   //查看当前所载入的所有 module
$ module load &amp;lt;module name&amp;gt; //加载模块
$ module unload Name  //卸载模块
$ module spider name  //查询模块
$ module avail  //想要查看服务器中所有可用的 module
$ module avail &amp;lt;module name&amp;gt;  //查询模块&amp;lt;module name&amp;gt;的已装有的版本
$ module add &amp;lt;module name&amp;gt;  //从系统当前的所有 module 中进行添加
$ module remove &amp;lt;module name&amp;gt;  //把某个模块从系统环境中删掉
$ module swap anaconda/2 anaconda/3  //交换两个 module，从当前环境中卸载 anaconda/2 并载入 anaconda/3
$ module show name  //显示某模块的路径编译器信息等内容(相应模块的脚本文件内容)
&lt;/code&gt;&lt;/pre&gt;

&lt;h2 id=&#34;在pbs脚本中使用module&#34;&gt;在PBS脚本中使用module&lt;/h2&gt;

&lt;p&gt;module 命令仅作用在当前节点上，如果使用 PBS脚本提交任务，那么实际运行任务的 节点和当前节点是不同的，因此方便的做法是将 module 命令一并写在 PBS脚本中。&lt;/p&gt;

&lt;h2 id=&#34;定制你自己的默认载入-module&#34;&gt;定制你自己的默认载入 module&lt;/h2&gt;

&lt;p&gt;当你登录系统时，系统会默认载入一些 module。如果这些 module 不是你需要的，或者你 需要载入更多的 module，那么请直接在个人 HOME 目录下的 &lt;code&gt;.bash_profile&lt;/code&gt; 文件的 最后添加&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-shell&#34;&gt;module add &amp;lt;module name&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;即可。每个 module 的添加单独占一行。这样每次你登录系统之后系统就会自动加载你指定的 module。
更改&lt;strong&gt;.bash_profile&lt;/strong&gt;文件的同时，在你运行 PBS任务时也会自动载入这些 module， 因此无需在 PBS脚本中再次添加 module 命令！&lt;/p&gt;

&lt;h1 id=&#34;pbs作业控制&#34;&gt;PBS作业控制&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;qsub&lt;/code&gt;：提交作业&lt;/li&gt;
&lt;li&gt;&lt;code&gt;qdel&lt;/code&gt;：取消作业&lt;/li&gt;
&lt;li&gt;&lt;code&gt;qsig&lt;/code&gt;：给作业发送信号&lt;/li&gt;
&lt;li&gt;&lt;code&gt;qhold&lt;/code&gt;：挂起作业&lt;/li&gt;
&lt;li&gt;&lt;code&gt;qrls&lt;/code&gt;：释放挂起的作业&lt;/li&gt;
&lt;li&gt;&lt;code&gt;qrerun&lt;/code&gt;：重新运行作业&lt;/li&gt;
&lt;li&gt;&lt;code&gt;qmove&lt;/code&gt;：将作业移动到另一个队列&lt;/li&gt;
&lt;li&gt;&lt;code&gt;qalter&lt;/code&gt;： 更改作业资源属性&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&#34;pbs作业监测&#34;&gt;PBS作业监测&lt;/h1&gt;

&lt;h2 id=&#34;qstat-显示作业状态&#34;&gt;&lt;code&gt;qstat&lt;/code&gt;显示作业状态&lt;/h2&gt;

&lt;p&gt;命令格式：&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-shell&#34;&gt;qstat [-f][-a][-i][-n][-s][-R][-Q][-q][-B][-u]
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;参数说明：&lt;/p&gt;

&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th align=&#34;center&#34;&gt;参数&lt;/th&gt;
&lt;th align=&#34;center&#34;&gt;说明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;

&lt;tbody&gt;
&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;&lt;code&gt;-f&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;jobid 列出指定作业的信息&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;&lt;code&gt;-a&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;列出系统所有作业&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;&lt;code&gt;-i&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;列出不在运行的作业&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;&lt;code&gt;-n&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;列出分配给此作业的结点&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;&lt;code&gt;-s&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;列出队列管理员不 scheduler 所提供的建议&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;&lt;code&gt;-R&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;列出磁盘预留信息&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;&lt;code&gt;-Q&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;操作符是 destination id，指明请求的是队列状态&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;&lt;code&gt;-q&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;列出队列状态，并以 alternative 形式显示&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;&lt;code&gt;-au userid&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;列出指定用户的所有作业&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;&lt;code&gt;-B&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;列出 PBS Server 信息&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;&lt;code&gt;-r&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;列出所有正在运行的作业&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;&lt;code&gt;-Qf queue&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;列出指定队列的信息&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;&lt;code&gt;-u&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;若操作符为作业号，则列出其状态。若操作符为 destination id，则列出运行在其上的属于 user_list 中用户的作业状态。&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

&lt;h2 id=&#34;showq-查看所有作业&#34;&gt;&lt;code&gt;showq&lt;/code&gt; 查看所有作业&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;showq -u uid&lt;/code&gt; : 简要显示任务的信息&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&#34;pbs节点状态&#34;&gt;PBS节点状态&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;pbsnodes&lt;/code&gt;：列出集群中所有节点的状态和属性&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-shell&#34;&gt;pbsnodes -l free  //查看空闲节点(提交作业前需要查看一下各队列节点空闲状况)
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&amp;lsquo;qnodes&amp;rsquo; 查看多有节点&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&#34;pbs作业属性&#34;&gt;PBS作业属性&lt;/h1&gt;

&lt;p&gt;可以用两种方式设置 PBS 作业属性：
1.通过命令行参数传递给 qsub 命令；&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-shell&#34;&gt;qsub [-a date_time] [-A account_string] [-b secs] [-c checkpoint_options] [-C directive_prefix] [-d path] [-D path] [-e path] [-f] [-h] [-I] [-j join] [-k
       keep] [-l resource_list] [-m mail_options] [-M user_list] [-n node exclusive] [-N name] [-o path] [-p priority] [-P proxy_username[:group]] [-q destination]
       [-r c] [-S path_list] [-t array_request] [-T prologue/epilogue script_name] [-u user_list] [-v variable_list] [-V] [-w] path [-W additional_attributes] [-x]
       [-X] [-z] [script]
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;2.在 PBS 脚本中以 &lt;code&gt;#PBS&lt;/code&gt; 方式指定。
下表列出常用的 PBS 作业属性&lt;/p&gt;

&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th align=&#34;center&#34;&gt;属性&lt;/th&gt;
&lt;th align=&#34;center&#34;&gt;取值&lt;/th&gt;
&lt;th align=&#34;center&#34;&gt;说明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;

&lt;tbody&gt;
&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;&lt;code&gt;-l&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;以逗号分隔的资源列表&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;设定作业所需资源&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;&lt;code&gt;-I&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;以交互方式运行&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;&lt;code&gt;-N name&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;作业名称&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;设定作业名称&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;&lt;code&gt;-o&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;文件路径&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;设定作业的标准输出文件路径&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;&lt;code&gt;-e&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;文件路径&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;设定作业的标准错误文件路径&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;&lt;code&gt;-p&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;-1024 到 +1023 之间的整数&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;设定作业优先级，越大优先级越高&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;&lt;code&gt;-q&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;队列名称&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;设定作业队列名称&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;&lt;code&gt;-m mail_option&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;a b e&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;a:作业 abort 时给用户发信;b:开始;e:结束&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;&lt;code&gt;-M user_list&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;定义有关此作业的 mail 发给哪些用户&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;&lt;code&gt;-j join&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;oe eo&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;将标准输出信息与标准错误信息合并到一个文件 join 中&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;&lt;code&gt;-k keep&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;o e oe eo&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;p 定义在执行结点上保留标准输出和标准错误信息中的哪个文件&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;比较常用的作业资源如下：&lt;/p&gt;

&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th align=&#34;center&#34;&gt;资源&lt;/th&gt;
&lt;th align=&#34;center&#34;&gt;取值&lt;/th&gt;
&lt;th align=&#34;center&#34;&gt;说明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;

&lt;tbody&gt;
&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;&lt;code&gt;nodes&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;节点资源构型&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;设定作业所需计算节点资源&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;&lt;code&gt;walltime&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;hh:mm:ss&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;设定作业所需的最大 wallclock 时间&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;&lt;code&gt;cput&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;hh:mm:ss&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;设定作业所需的最大 CPU 时间&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;&lt;code&gt;mem&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;正整数，后面可跟 b，kb，mb，gb&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;设定作业所需的最大内存&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;&lt;code&gt;ncpus&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;正整数&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;设定作业所需的 CPU 数目&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

&lt;pre&gt;&lt;code class=&#34;language-shell&#34;&gt;pbsnodes -l free  //查看空闲节点(提交作业前需要查看一下各队列节点空闲状况)
qstat -a  //查看各个队列的排队情况
qstat -n  // 查看在哪个节点运行
qsub xxx.job  //提交任务，执行后会返回一个任务号，表示提交成功，否则会返回一些错误信息
showq  //显示当前集群正在运行、等待的所有任务及已占用的计算资源，注意，只能看到自己提交的任务列表，而不能看到其他用户提交的任务列表
qorder 123 124   //将ID124插入到ID123之前
qalter -p 1000 1  //将任务1优先级改为1000(优先级越高越先执行)
qdel  //终止任务，例如qdel 1234，即为终止1234号任务的意思，同样，每个用户也只能终止自己提交的任务； 
qpeek  //用以查看某个任务的输出，加上-f参数可以实时查看任务输出，否则每次运行只显示部分输出，用法为qpeek -f 1234； 
fetch-gpu, fetch-cpu, fetch-io  //用于查看某个计算结点的资源使用情况，例如fetch-gpu -n 1，查看1号结点的GPU使用情况
&lt;/code&gt;&lt;/pre&gt;

&lt;h1 id=&#34;pbs环境变量&#34;&gt;PBS环境变量&lt;/h1&gt;

&lt;p&gt;下表列出常用的 PBS 环境变量：&lt;/p&gt;

&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th align=&#34;center&#34;&gt;环境变量&lt;/th&gt;
&lt;th align=&#34;center&#34;&gt;说明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;

&lt;tbody&gt;
&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;&lt;code&gt;PBS_ENVIRONMENT&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;批处理作业为 PBS_BATCH，交互式作业为 PBS_INTERACTIVE&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;&lt;code&gt;PBS_JOBID&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;PBS 系统给作业分配的标识号&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;&lt;code&gt;PBS_JOBNAME&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;用户指定的作业名称&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;&lt;code&gt;PBS_NODEFILE&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;包含作业所用计算节点的文件名&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;&lt;code&gt;PBS_QUEUE&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;作业所执行的队列名称&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;&lt;code&gt;PBS_O_HOME&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;执行 qsub 命令的 HOME 环境变量值&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;&lt;code&gt;PBS_O_PATH&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;执行 qsub 命令的 PATH 环境变量值&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;&lt;code&gt;PBS_O_SHELL&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;执行 qsub 命令的 SHELL 环境变量值&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;&lt;code&gt;PBS_O_HOST&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;执行 qsub 命令节点名称&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;&lt;code&gt;PBS_O_SERVER&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;跑任务的服务器&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;&lt;code&gt;PBS_O_QUEUE&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;提交的作业的最初队列名称&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;&lt;code&gt;PBS_O_WORKDIR&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;center&#34;&gt;执行 qsub 命令所在的绝对路径&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

&lt;h1 id=&#34;提交批处理脚本&#34;&gt;提交批处理脚本&lt;/h1&gt;

&lt;p&gt;用以下命令形式提交批处理脚本&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-shell&#34;&gt;$ qsub [options] &amp;lt;control script&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;作业提交后一般会先排队等待，PBS 系统会根据作业的优先级和可用的计算资源来调度和执行作业。
PBS 脚本本质上是一个 Linux shell 脚本，在 PBS 脚本中可以用一种特殊形式的注释（#PBS）作为 PBS 指令以设定作业属性。下面是一个 PBS 脚本示例：&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-shell&#34;&gt;#!/bin/bash
#PBS -N task ##任务名
#PBS -l nodes=5:ppn=16               ##使用5个节点，每个节点使用16个核
#PBS -l walltime=9600:00:00         ##估计估计最大运算时间
#PBS -q low                                    ##使用low队列
#PBS -j oe                                       ##表示合并标准输出和标准错误输出至同一个文件
JOU_FILE=fluent.jou                      ##定义变量JOU_FILE
LOG_FILE=run.log                         ##定义变量LOG_FILE
cd $PBS_O_WORKDIR                 ##cd工作目录
nprocs=$(cat $PBS_NODEFILE | wc -l) ##计算核数
## 运行fluent的命令
## 如 fluent 2ddp -t20 -g -i fluent.jou
fluent 2ddp -t$nprocs -cnf=$PBS_NODEFILE -g -pib -i $JOU_FILE &amp;gt;&amp;amp; $LOG_FILE
&lt;/code&gt;&lt;/pre&gt;

&lt;h1 id=&#34;取消或停止作业&#34;&gt;取消或停止作业&lt;/h1&gt;

&lt;p&gt;要取消或停止一个作业，需要得到该作业的作业标识号 &lt;job ID &gt;，可以通过 &lt;code&gt;qstat&lt;/code&gt; 命令获得。&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-shell&#34;&gt;$ qdel &amp;lt;job ID &amp;gt;  //取消一个正在排队等待的作业
$ qsig -s KILL &amp;lt;job ID&amp;gt;  //要停止一个正在运行的作业，可用向其发送 KILL 信号
&lt;/code&gt;&lt;/pre&gt;

&lt;h1 id=&#34;交互式作业&#34;&gt;交互式作业&lt;/h1&gt;

&lt;p&gt;交互式的计算作业通过类似于下面的命令使用：&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-shell&#34;&gt;$ qsub -I [options]
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;例如要求 2 台计算节点，运行在 example-queue 队列上的交互式作业，执行如下命令：&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-shell&#34;&gt;$ qsub -I -l nodes=2 -q example-queue
$ qsub -I -X -V -N workbench -q post1 -l nodes=1:ppn=2 -l walltime=120:00:00
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;执行完以上命令，等 PBS 系统分配好资源后会进入所分配的第一台计算节点，可在其命令终端上执行交互式的计算任务，如要退出交互作业，可在终端输入 exit 命令，或使用按键 Ctrl+D。&lt;/p&gt;

&lt;h1 id=&#34;pbs脚本示例&#34;&gt;PBS脚本示例&lt;/h1&gt;

&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;#!/bin/bash
#PBS -q post1                  
#PBS -N mypbs            
#PBS -l nodes=1:ppn=18    
#PBS -l walltime=9600:00:00 
#PBS -V
#PBS -o job.log 
#PBS -e job.err 
###PBS -j oe
###PBS -m ae -M szj818@qq.com 

Version=3ddp    
JOU_FILE=test.jou
LOG_FILE=run.log 
ERR_FILE=run.err

echo &amp;quot;--- This job is:$PBS_JOBNAME(${PBS_JOBID%.*})@$PBS_QUEUE&amp;quot;  
echo &amp;quot;--- Current working directory is:${PBS_O_WORKDIR}&amp;quot;
nprocs=$(cat ${PBS_NODEFILE} | wc -l) 
nprocss=$(($nprocs*2))
echo &amp;quot;--- Running on ${nprocs} processes (cores) on the following nodes:&amp;quot; &amp;amp;&amp;amp; cat $PBS_NODEFILE | uniq
echo &amp;quot;--- Starting job at:`date`&amp;quot;

cd $PBS_O_WORKDIR 
fluent  $Version -t$nprocss -cnf=$PBS_NODEFILE -g -pib -i $JOU_FILE 1&amp;gt; $LOG_FILE 2&amp;gt; $ERR_FILE
##fluent -pethernet -g $Version -t$ncpus -cnf=pnodes -i $INPUT &amp;gt;$OUTPUT 2&amp;gt;&amp;amp;1

echo &amp;quot;--- Job finished at:`date`&amp;quot;
qstat | grep $PBS_JOBNAME | awk &#39;{print &amp;quot;--- Total CPU hours:&amp;quot;$4}&#39;
&lt;/code&gt;&lt;/pre&gt;

&lt;h1 id=&#34;参考&#34;&gt;参考&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href=&#34;http://bicmr.pku.edu.cn/~wenzw/pages/index.html&#34;&gt;北京大学国际数学中心微型工作站&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.jianshu.com/p/2f6c799ca147&#34;&gt;PBS 作业管理系统&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://gohom.win/2015/06/07/PBS-commands/&#34;&gt;PBS集群相关命令&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.osc.edu/book/export/html/2773&#34;&gt;osc.edu-ANSYS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www0.sun.ac.za/hpc/index.php?title=HOWTO_submit_jobs#Fluid-Structure_Interaction&#34;&gt;**HOWTO submit jobs&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
- https://www.nech.top/posts/pbs/ - Copyright 2019~2021 www.nech.top.</description>
        </item>
    
    
    
        <item>
        <title>Slurm作业系统常用命令</title>
        <link>https://www.nech.top/posts/slurm/</link>
        <pubDate>Thu, 14 Nov 2019 00:00:00 +0000</pubDate>
        
        <guid>https://www.nech.top/posts/slurm/</guid>
        <description>个人的网站学习记录 https://www.nech.top/posts/slurm/ -

&lt;h1 id=&#34;sbatch-提交作业&#34;&gt;&lt;code&gt;sbatch&lt;/code&gt;提交作业&lt;/h1&gt;

&lt;p&gt;提交一个批脚本到作业调度系统中：&lt;/p&gt;

&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th align=&#34;left&#34;&gt;参数&lt;/th&gt;
&lt;th align=&#34;left&#34;&gt;介绍&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;

&lt;tbody&gt;
&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;&lt;code&gt;--help&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;显示sbatch命令的使用帮助信息；&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;&lt;code&gt;-A&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;指定计费账户；&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;&lt;code&gt;-D, --chdir=&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;指定工作目录；&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;&lt;code&gt;--get-user-env&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;获取用户的环境变量；&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;&lt;code&gt;--gres=&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;使用gpu这类资源，如申请两块gpu则&amp;ndash;gres=gpu:2&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;&lt;code&gt;-J, --job-name=&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;指定该作业的作业名；&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;&lt;code&gt;--mail-type=&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;指定状态发生时，发送邮件通知，有效种类为（NONE, BEGIN, END, FAIL, REQUEUE, ALL）；&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;&lt;code&gt;--mail-user=&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;发送给对应邮箱；&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;&lt;code&gt;-n, --ntasks=&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;sbatch并不会执行任务，当需要申请相应的资源来运行脚本，默认情况下一个任务一个核心，&amp;ndash;cpus-per-task参数可以修改该默认值；&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;&lt;code&gt;-c, --cpus-per-task=&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;每个任务所需要的核心数，默认为1；&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;&lt;code&gt;--ntasks-per-node=&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;每个节点的任务数，&amp;ndash;ntasks参数的优先级高于该参数，如果使用&amp;ndash;ntasks这个参数，那么将会变为每个节点最多运行的任务数；&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;&lt;code&gt;-o, --output=&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;输出文件，作业脚本中的输出将会输出到该文件；&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;&lt;code&gt;-p, --partition=&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;将作业提交到对应分区；&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;&lt;code&gt;-q, --qos=&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;指定QOS；&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;&lt;code&gt;-t, --time=&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;设置限定时间；&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

&lt;h1 id=&#34;sinfo-节点状态查看&#34;&gt;&lt;code&gt;sinfo&lt;/code&gt;节点状态查看&lt;/h1&gt;

&lt;p&gt;&lt;code&gt;sinfo&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sinfo show node node05&lt;/code&gt; ：节点信息查看&lt;/p&gt;

&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th align=&#34;center&#34;&gt;参数&lt;/th&gt;
&lt;th align=&#34;left&#34;&gt;介绍&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;

&lt;tbody&gt;
&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;&lt;code&gt;--help&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;显示sinfo命令的使用帮助信息；&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;&lt;code&gt;-d&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;查看集群中没有响应的节点；&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;&lt;code&gt;-i&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;每隔相应的秒数，对输出的分区节点信息进行刷新&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;&lt;code&gt;-n&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;显示指定节点的信息，如果指定多个节点的话用逗号隔开；&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;&lt;code&gt;-N&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;按每个节点一行的格式来显示信息；&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;&lt;code&gt;-p&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;显示指定分区的信息，如果指定多个分区的话用逗号隔开；&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;&lt;code&gt;-r&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;只显示响应的节点；&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;&lt;code&gt;-R&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;显示节点不正常工作的原因；&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;&lt;code&gt;-o&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;显示指定的输出信息，指定的方式为%[[.]size]type，“.”表示右对齐,不加的话表示左对齐；size表示输出项的显示长度；type为需要显示的信息。可以指定显示的常见信息如下；&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;&lt;code&gt;%a&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;是否可用状态&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;&lt;code&gt;%A&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;以&amp;rdquo;allocated/idle&amp;rdquo;的格式来显示节点数，不要和&amp;rdquo;%t&amp;rdquo; or &amp;ldquo;%T&amp;rdquo;一起使用&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;&lt;code&gt;%c&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;节点的核心数&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;&lt;code&gt;%C&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;“allocated/idle/other/total”格式显示核心总数&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;&lt;code&gt;%D&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;节点总数&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;&lt;code&gt;%E&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;节点不可用的原因&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;&lt;code&gt;%m&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;每个节点的内存大小（单位为M）&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;&lt;code&gt;%N&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;节点名&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;&lt;code&gt;%O&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;CPU负载&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;&lt;code&gt;%P&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;分区名,作业默认分区带“*”&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;&lt;code&gt;%r&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;只有root可以提交作业（yes/no）&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;&lt;code&gt;%R&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;分区名&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;&lt;code&gt;%t&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;节点状态（紧凑形式）&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;center&#34;&gt;&lt;code&gt;%T&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;节点的状态（扩展形式）&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;例：&lt;code&gt;sinfo -o &amp;quot;%.15P %.5a %.10l %.6D %.6t %N&amp;quot;&lt;/code&gt;&lt;/p&gt;

&lt;h1 id=&#34;scontrol-综合查询和控制&#34;&gt;&lt;code&gt;scontrol&lt;/code&gt;综合查询和控制&lt;/h1&gt;

&lt;p&gt;&lt;code&gt;scontrol show &amp;lt;command&amp;gt;&lt;/code&gt; 查看状态和配置命令：&lt;/p&gt;

&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th align=&#34;left&#34;&gt;COMMAND&lt;/th&gt;
&lt;th align=&#34;left&#34;&gt;解释&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;

&lt;tbody&gt;
&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;&lt;strong&gt;job&lt;/strong&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;显示作业信息&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;&lt;strong&gt;node&lt;/strong&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;显示节点信息&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;&lt;strong&gt;partition&lt;/strong&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;显示队列信息&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;&lt;strong&gt;config&lt;/strong&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;显示配置信息&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;&lt;code&gt;scontrol&lt;/code&gt; 控制作业命令&lt;/p&gt;

&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th align=&#34;left&#34;&gt;COMMAND&lt;/th&gt;
&lt;th align=&#34;left&#34;&gt;解释&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;

&lt;tbody&gt;
&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;&lt;strong&gt;scontrol suspend jobid&lt;/strong&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;挂起作业&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;&lt;strong&gt;scontrol resume jobid&lt;/strong&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;恢复作业&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;&lt;strong&gt;scontrol requeue jobid&lt;/strong&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;作业重新排队&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;&lt;strong&gt;scontrol hold id/name&lt;/strong&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;保留作业&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;&lt;strong&gt;scontrol release id/name&lt;/strong&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;释放作业&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

&lt;h1 id=&#34;squeue-用于查看作业队列中作业的信息&#34;&gt;&lt;strong&gt;&lt;code&gt;squeue&lt;/code&gt;&lt;/strong&gt;:用于查看作业队列中作业的信息&lt;/h1&gt;

&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th align=&#34;left&#34;&gt;参数&lt;/th&gt;
&lt;th align=&#34;left&#34;&gt;介绍&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;

&lt;tbody&gt;
&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;&lt;code&gt;--help&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;显示squeue命令的使用帮助信息；&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;&lt;code&gt;-A&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;显示指定账户下所有用户的作业，如果是多个账户的话用逗号隔开；&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;&lt;code&gt;-i&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;每隔相应的秒数，对输出的作业信息进行刷新&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;&lt;code&gt;-j&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;显示指定作业号的作业信息，如果是多个作业号的话用逗号隔开；&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;&lt;code&gt;-n&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;显示指定节点上的作业信息，如果指定多个节点的话用逗号隔开；&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;&lt;code&gt;-t&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;显示指定状态的作业信息，如果指定多个状态的话用逗号隔开；&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;&lt;code&gt;-u&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;显示指定用户的作业信息，如果是多个用户的话用逗号隔开；&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;&lt;code&gt;-w&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;显示指定节点上运行的作业，如果是多个节点的话用逗号隔开；&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;&lt;code&gt;-o&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;显示指定的输出信息，指定的方式为%[[.]size]type，size表示输出项的显示长度，type为需要显示的信息。可以指定显示的常见信息如下；&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;&lt;code&gt;%a&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;账户信息&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;&lt;code&gt;%C&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;核心数&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;&lt;code&gt;%D&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;节点数&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;&lt;code&gt;%i&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;作业ID&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;&lt;code&gt;%j&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;作业名&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;&lt;code&gt;%l&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;作业时限&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;&lt;code&gt;%P&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;分区&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;&lt;code&gt;%q&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;优先级&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;&lt;code&gt;%R&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;状态PD作业显示原因，状态R的作业显示节点&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

&lt;h1 id=&#34;scancel-取消作业&#34;&gt;&lt;code&gt;scancel&lt;/code&gt;取消作业&lt;/h1&gt;

&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th align=&#34;left&#34;&gt;参数&lt;/th&gt;
&lt;th align=&#34;left&#34;&gt;介绍&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;

&lt;tbody&gt;
&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;&lt;code&gt;--help&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;显示scancel命令的使用帮助信息；&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;&lt;code&gt;-A&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;取消指定账户的作业，如果没有指定job_id,将取消所有；&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;&lt;code&gt;-n&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;取消指定作业名的作业；&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;&lt;code&gt;-p&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;取消指定分区的作业；&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;&lt;code&gt;-q&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;取消指定qos的作业；&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;&lt;code&gt;-t&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;取消指定作态的作业，&amp;rdquo;PENDING&amp;rdquo;, &amp;ldquo;RUNNING&amp;rdquo; 或 &amp;ldquo;SUSPENDED&amp;rdquo;；&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;&lt;code&gt;-u&lt;/code&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;取消指定用户下的作业；&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

&lt;h1 id=&#34;作业提交和控制&#34;&gt;作业提交和控制&lt;/h1&gt;

&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;sbatch  ## 提交脚本排队执行，批处理模式
salloc  ## 创建资源申请并启动shell用于运行作业，交互模式
srun  ## 创建资源申请并启动作业步（通常是MPI作业）
sattach  ## 连接正在运行的作业步的标准输出和错误等
scancel  ## 取消作业或作业步
&lt;/code&gt;&lt;/pre&gt;

&lt;h1 id=&#34;系统状态&#34;&gt;系统状态&lt;/h1&gt;

&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;sinfo   ## 查看节点和分区的状态
squeue   ## 查看作业和作业步的状态
scontrol  ## 查看或更新各种对象（如集群、分区、作业、作业步、预约等）的状态
 
&lt;/code&gt;&lt;/pre&gt;

&lt;h1 id=&#34;记账统计&#34;&gt;记账统计&lt;/h1&gt;

&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;sacct  ## 报告作业/作业步的记账信息
sstat  ## 报告正在运行的作业/作业步的信息，包含状态采集
sreport  ## 从集群、分区、用户、账号等角度统计资源使用情况
&lt;/code&gt;&lt;/pre&gt;

&lt;h1 id=&#34;调度配置&#34;&gt;调度配置&lt;/h1&gt;

&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;sacctmgr  ##调度数据库配置管理工具，包括集群、用户、账号等增删，以及资源限制策略的配置
sprio  ## 查看作业优先级的具体构成因素
sshare  ## 查看个账号的公平共享相关数据
sdiag  ## 显示调度模块的操作统计信息，包括运行周期、作业状态统计、RPC类型统计等等
&lt;/code&gt;&lt;/pre&gt;

&lt;h1 id=&#34;其他命令&#34;&gt;其他命令&lt;/h1&gt;

&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;sbcast  ## 在作业中传输特定的文件到分配的计算节点中
strigger  ## 事件触发器管理工具
smap  ## 图像化的查看作业、节点等状态信息
sview  ## 图像化的查看系统（作业、分区、预约等）的状态1，修改系统配置
&lt;/code&gt;&lt;/pre&gt;

&lt;h1 id=&#34;slurm脚本示例之fluent&#34;&gt;Slurm脚本示例之Fluent&lt;/h1&gt;

&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;#!/bin/bash
#SBATCH --job-name=fluentest
#SBATCH --nodes=1
#SBATCH --ntasks=8
###SBATCH --ntasks-per-node=8
###SBATCH --gres=gpu:1
#SBATCH --partition=low
#SBATCH --output=job.log
#SBATCH --error=job.err
###SBATCH --begin=12:00
###SBATCH -t 24:00:00
###SBATCH --mem=220G

Version=3ddp    
JOU_FILE=test.jou
LOG_FILE=run.log 
ERR_FILE=run.err

echo &amp;quot;--- This job is:$SLURM_JOB_NAME($SLURM_JOBID)&amp;quot;  
echo &amp;quot;--- Current working directory is:${PWD}&amp;quot;
NTASKS=`echo $SLURM_TASKS_PER_NODE | cut -c1-2`
NPROCS=`expr $SLURM_NNODES \* $NTASKS`
echo &amp;quot;--- Running on ${NPROCS} processes (cores) on the following nodes:&amp;quot; 
FLUENTNODES=&amp;quot;$(scontrol show hostnames)&amp;quot;
echo $FLUENTNODES
echo &amp;quot;--- Starting job at:`date`&amp;quot;

module purge
module load /etc/modulefiles/mpi/openmpi-x86_64
export PATH=/public/software/ansys/v182/fluent/bin:$PATH
fluent $Version -t$NPROCS -mpi=intel -g -pid -cnf=$FLUENTNODES -i $JOU_FILE 1&amp;gt; $LOG_FILE 2&amp;gt; $ERR_FILE
#fluent $Version -t$NPROCS -g -pid -cnf=$FLUENTNODES -i $JOU_FILE 1&amp;gt; $LOG_FILE 2&amp;gt; $ERR_FILE
##fluent -pethernet -g $Version -t$ncpus -cnf=pnodes -i $INPUT &amp;gt;$OUTPUT 2&amp;gt;&amp;amp;1
echo &amp;quot;--- Job finished at:`date`&amp;quot;
squeue | grep $SLURM_JOB_NAME | awk &#39;{print &amp;quot;--- Total CPU hours:&amp;quot;$4}&#39;
&lt;/code&gt;&lt;/pre&gt;

&lt;h1 id=&#34;slurm脚本示例之cfx&#34;&gt;Slurm脚本示例之CFX&lt;/h1&gt;

&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;#!/bin/bash
#SBATCH --job-name=cfxtest
#SBATCH --nodes=1
#SBATCH --ntasks=8
###SBATCH --ntasks-per-node=8
###SBATCH --gres=gpu:1
#SBATCH --partition=low
#SBATCH --output=job.log
#SBATCH --error=job.err
#SBATCH -t 24:00:00
###SBATCH --begin=12:00
###SBATCH -t 24:00:00
###SBATCH --mem=220G

echo &amp;quot;--- This job is:$SLURM_JOB_NAME($SLURM_JOBID)&amp;quot;  
echo &amp;quot;--- Current working directory is:${PWD}&amp;quot;
NTASKS=`echo $SLURM_TASKS_PER_NODE | cut -c1-2`
NPROCS=`expr $SLURM_NNODES \* $NTASKS`
echo &amp;quot;--- Running on ${NPROCS} processes (cores) on the following nodes:&amp;quot; 
CFXNODES=&amp;quot;$(scontrol show hostnames)&amp;quot;
echo $CFXNODES
echo &amp;quot;--- Starting job at:`date`&amp;quot;

export cfxinstall=&#39;/public/software/ansys/v182/CFX/bin&#39;
export Jrun=`pwd`

$cfxinstall/cfx5solve  -fullpath  $Jrun/Unnamed0.9st -def  $Jrun/Unnamed0.9st.def  -ini $Jrun/Unnamed0.9.res  -part $NPROCS  -par-dist &amp;quot;$CFXNODES&amp;quot; -parallel -start-method &amp;quot;Intel MPI Distributed Parallel&amp;quot; 
##$cfxinstall/cfx5solve  -fullpath  $Jrun/UnnamedST   -def $Jrun/UnnamedST.def    -part $ncpus  -par-dist &amp;quot;$pnodes&amp;quot;  -start-method   &amp;quot;Intel MPI Distributed Parallel&amp;quot;

echo &amp;quot;--- Job finished at:`date`&amp;quot;
squeue | grep $SLURM_JOB_NAME | awk &#39;{print &amp;quot;--- Total CPU hours:&amp;quot;$4}&#39;
&lt;/code&gt;&lt;/pre&gt;

&lt;h1 id=&#34;参考资料&#34;&gt;参考资料&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href=&#34;https://www.tchpc.tcd.ie/node/123&#34;&gt;Fluent | Research IT | Trinity College Dublin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://wiki.rc.usf.edu/index.php/ANSYS&#34;&gt;ANSYS - Research Computing Documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://wiki.hpc.uconn.edu/index.php/Fluent_Guide&#34;&gt;Fluent Guide - Storrs HPC Wiki&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://fsc.fzu.edu.cn/html/yhfw/Slurmxt/1.html&#34;&gt;福建省超级计算中心- Slurm系统 &lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
- https://www.nech.top/posts/slurm/ - Copyright 2019~2021 www.nech.top.</description>
        </item>
    
    
    
        <item>
        <title>ANSYS System Coupling</title>
        <link>https://www.nech.top/posts/ansys_sc/</link>
        <pubDate>Thu, 07 Nov 2019 00:00:00 +0000</pubDate>
        
        <guid>https://www.nech.top/posts/ansys_sc/</guid>
        <description>个人的网站学习记录 https://www.nech.top/posts/ansys_sc/ -

&lt;p&gt;在用命令行运行SystemCoupling之前，需要先在Workbench平台上设置好Transient Structural、Fluid(Fluent)和Systemcoupling三个模块&lt;!-- more --&gt;，并分别导出文件&lt;code&gt;structural.dat&lt;/code&gt;、&lt;code&gt;fluidFlow.cas&lt;/code&gt;、&lt;code&gt;coupling.sci&lt;/code&gt;(名字可以不用按照这个取，关键是有这三个类型的文件)。之后需要新建三个文件夹&lt;code&gt;Structural_CmdLine&lt;/code&gt;,&lt;code&gt;Fluid_CmdLine&lt;/code&gt;,&lt;code&gt;Coupling_CmdLine&lt;/code&gt;,并把上述的三个文件分别放入。
&lt;img src=&#39;https://i.loli.net/2019/11/04/MpfJyNlAHrG8u3x.png&#39; title=&#39;创建三个文件夹&#39; /&gt;&lt;/p&gt;

&lt;p&gt;另外在&lt;code&gt;Fluid_CmdLine&lt;/code&gt;文件夹下还要再新建一个journal文件，用于Fluent相应的操作，包含以下内容：&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;file/start-transcript &amp;quot;Solution 1.trn&amp;quot;
file set-batch-options , yes ,
file/read-case/fluidFlow.cas
s i i
(sc-solve)
wcd FLUENTRestart.cas.gz
exit
ok
&lt;/code&gt;&lt;/pre&gt;

&lt;h1 id=&#34;run-the-initial-analyse-windows&#34;&gt;Run the initial analyse(Windows)&lt;/h1&gt;

&lt;pre&gt;&lt;code class=&#34;language-bat&#34;&gt;&amp;quot;C:\Program Files\ANSYS Inc\v182\aisol\workbench.bat&amp;quot; -cmd ansys.services.systemcoupling.exe -inputFile coupling.sci
在这之后会启动Systemcoupling.exe并在目录下生成`scServer.scs`，需要记住端口号和`hostname`之后重新开启两个CMD分别用于运行Fluent和ANSYS，如下：
&amp;quot;C:\Program Files\ANSYS Inc\v182\fluent\ntbin\win64\fluent.exe&amp;quot; 3ddp -hidden -driver null -scport=62391 -schost=DESKTOP-szj -scname=&amp;quot;Solution 1&amp;quot; -i fluidFlow.jou&amp;gt;FLUENT.out
&amp;quot;C:\Program Files\ANSYS Inc\v182\ansys\bin\winx64\ANSYS182.exe&amp;quot; -b -scport 62391 -schost DESKTOP-szj -scname &amp;quot;Solution&amp;quot; -i ..\structural.dat -o ANSYS.out
&lt;/code&gt;&lt;/pre&gt;

&lt;h1 id=&#34;restart-the-anslyse-windows&#34;&gt;Restart the anslyse(Windows)&lt;/h1&gt;

&lt;p&gt;重算之前，需要准备一些必要的文件，首先是&lt;code&gt;journal&lt;/code&gt;文件需修改并含有以下内容：&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;file/start-transcript &amp;quot;Solution 2.trn&amp;quot;
file set-batch-options , yes ,
rcd/fluidFlow-1-00050.cas   ##依据实际情况选择要重新开始的计算点
(sc-solve)
exit
ok
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;其次是在&lt;code&gt;structural.dat&lt;/code&gt;文件的基础上新建文件&lt;code&gt;structuralRestart.dat&lt;/code&gt;，需&lt;strong&gt;包含&lt;/strong&gt; 以下内容：&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;/batch
/solu
/gst,on,on
antype,4,rest,50,1,continue  ##依据实际情况选择重新开始的计算点
solve
save
finish
/exit
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;之后便可以在某个计算保存点重新计算了：&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-bat&#34;&gt;&amp;quot;C:\Program Files\ANSYS Inc\v182\aisol\workbench.bat&amp;quot; -cmd ansys.services.systemcoupling.exe -inputFile coupling.sci  –resultFile scResult_01_000050.scr
&amp;quot;C:\Program Files\ANSYS Inc\v182\fluent\ntbin\win64\fluent.exe&amp;quot; 3ddp -hidden -driver null -scport=64965 -schost=DESKTOP-szj -scname=&amp;quot;Solution 1&amp;quot;  -i  fluidFlowRestart.jou&amp;gt;FLUENTRestart.out
&amp;quot;C:\Program Files\ANSYS Inc\v182\ansys\bin\winx64\ANSYS182.exe&amp;quot; -b -scport 64965 -schost DESKTOP-szj -scname &amp;quot;Solution&amp;quot; -i structuralRestart.dat -o ANSYSRestart.out
&lt;/code&gt;&lt;/pre&gt;

&lt;h1 id=&#34;后处理&#34;&gt;后处理&lt;/h1&gt;

&lt;p&gt;后处理可以在CFD-POST中进行，只需要在导入结果时，勾选&lt;code&gt;select Keep current cases loaded&lt;/code&gt;，取消勾选&lt;code&gt;Open in new view&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;details&gt;
    &lt;summary&gt;Details&lt;/summary&gt;
    Something small enough to escape casual notice.
&lt;/details&gt;&lt;/p&gt;

&lt;h2 id=&#34;linux-sh脚本&#34;&gt;Linux sh脚本&lt;/h2&gt;

&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;#!/bin/bash
COUPLING=coupling.sci
STRUCTURALDATA=structural.dat
JOURNAL=fluidFlow.jou
Version=3d   ## Set Dimension of Fluent
LOG_FILE=run.log  ## fluent run log file
ERR_FILE=run.err  ## fluent run error file
PBS_O_WORKDIR=~/fsi   ##需要在家目录下新建fsi目录
#echo &amp;quot;--- Starting job at:`date`&amp;quot;
# number of processors for Ansys
NPA=1
#the number of processors for Fluent
NPF=1
# make sure I&#39;m the only one that can read my output
#umask 0077

cd ${PBS_O_WORKDIR}
mkdir Structural Fluid Coupling
# Start coupling program
mv ${COUPLING} Coupling/
cd Coupling/
/usr/ansys_inc/v182/aisol/.workbench -cmd ansys.services.systemcoupling.exe -inputFile ${COUPLING} &amp;amp;

# Wait until scServer.scs is created
TIMEOUT=60
while [ ! -f scServer.scs -a $TIMEOUT -gt 0 ]; do
    TIMEOUT=$((TIMEOUT-1))
    sleep 2
done                            
if [ -f scServer.scs ]; then
    # Parse the data in scServer.scs
    readarray JOB &amp;lt; ${PBS_O_WORKDIR}/Coupling/scServer.scs
    HOSTPORT=(${JOB[0]//@/ })

    # Run Fluent
    mv ${PBS_O_WORKDIR}/${JOURNAL} ${PBS_O_WORKDIR}/*.cas*  ${PBS_O_WORKDIR}/Fluid/
    cd ${PBS_O_WORKDIR}/Fluid/
    fluent ${Version} -g -t${NPF} -driver null -ssh -scport=${HOSTPORT[0]} -schost=${HOSTPORT[1]} -scname=&amp;quot;${JOB[4]}&amp;quot; -i ${JOURNAL} 1&amp;gt; ${LOG_FILE} 2&amp;gt; ${ERR_FILE} &amp;amp;

    # Run Ansys
    mv ${PBS_O_WORKDIR}/${STRUCTURALDATA} ${PBS_O_WORKDIR}/Structural/
    cd ${PBS_O_WORKDIR}/Structural/
    ansys182 -b -scport=${HOSTPORT[0]} -schost=${HOSTPORT[1]} -scname=&amp;quot;${JOB[2]}&amp;quot; -i ${STRUCTURALDATA} -o ansys.out -np ${NPA}
fi
echo &amp;quot;--- Job finished at:`date`&amp;quot;                                                   
&lt;/code&gt;&lt;/pre&gt;

&lt;h2 id=&#34;注意&#34;&gt;注意&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;在windows下用默认文本编辑器编辑sh脚本时，由于其换行符为\r\n，转到Linux平台运行sh时会出现错误，此时需要用dos2unix工具转换，或者用非默认文本编辑器编辑&lt;/li&gt;
&lt;li&gt;经过测试，分配给Fluent的核数不能是偶数，否则计算过程会出现问题&lt;/li&gt;
&lt;/ol&gt;

&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th align=&#34;left&#34;&gt;总逻辑核数&lt;/th&gt;
&lt;th align=&#34;left&#34;&gt;结构求解器使用核数&lt;/th&gt;
&lt;th align=&#34;left&#34;&gt;Fluent使用核数&lt;/th&gt;
&lt;th align=&#34;left&#34;&gt;精度&lt;/th&gt;
&lt;th align=&#34;left&#34;&gt;CPU时间&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;

&lt;tbody&gt;
&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;8&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;1&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;7&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;3d&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;24.54&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;8&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;3&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;5&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;3ddp&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;19.17&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;8&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;1&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;7&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;3ddp&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;27.3&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;8&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;4&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;4&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;不行&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;7&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;2&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;5&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;3d&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;19.03&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;7&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;3&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;4&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;不行&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

&lt;h1 id=&#34;pbs脚本&#34;&gt;PBS脚本&lt;/h1&gt;

&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;#!/bin/bash
 
#PBS -q post1                 
#PBS -N fsi_test           
#PBS -l nodes=1:ppn=3   
#PBS -l walltime=9600:00:00
#PBS -V
#PBS -o job.log
#PBS -e job.err
###PBS -j oe
###PBS -m ae -M szj818@qq.com
 
COUPLING=coupling.sci
STRUCTURALDATA=structural.dat
JOURNAL=fluidFlow.jou
Version=3d   ## Set Dimension of Fluent
LOG_FILE=run.log  ## fluent &amp;amp; ansys run log file
ERR_FILE=run.err  ## fluent &amp;amp; ansys run error file
 
echo &amp;quot;--- This job is:$PBS_JOBNAME(${PBS_JOBID%.*})@$PBS_QUEUE&amp;quot; 
echo &amp;quot;--- Current working directory is:${PBS_O_WORKDIR}&amp;quot;
#echo &amp;quot;--- Running on ${nprocs} processes (cores) on the following nodes:&amp;quot; &amp;amp;&amp;amp; cat $PBS_NODEFILE | uniq
echo &amp;quot;--- Starting job at:`date`&amp;quot;
 
# number of processors for Ansys
NPA=2
# Automatically calculate the number of processors left over for Fluent
NP=$(cat ${PBS_NODEFILE} | wc -l)
NP=$((NP*2))
NPF=$((NP-NPA))
 
# make sure I&#39;m the only one that can read my output
#umask 0077
 
cd $PBS_O_WORKDIR
mkdir Structural  Fluid  Coupling
# Start coupling program
mv $COUPLING Coupling/
cd Coupling/
/cluster/apps/ansys/18.2/ansys_inc/v182/aisol/.workbench -cmd ansys.services.systemcoupling.exe -inputFile ${COUPLING} &amp;amp;
 
# Wait until scServer.scs is created
TIMEOUT=60
while [ ! -f scServer.scs -a $TIMEOUT -gt 0 ]; do
    TIMEOUT=$((TIMEOUT-1))
    sleep 2
done
 
if [ -f scServer.scs ]; then
 
    # Parse the data in scServer.scs
    readarray JOB &amp;lt; $PBS_O_WORKDIR/Coupling/scServer.scs
    HOSTPORT=(${JOB[0]//@/ })
 
    # Run Fluent
    mv $PBS_O_WORKDIR/$JOURNAL $PBS_O_WORKDIR/*.cas*  $PBS_O_WORKDIR/Fluid/
    cd $PBS_O_WORKDIR/Fluid/
    fluent $Version -g -t${NPF} -driver null -ssh -scport=${HOSTPORT[0]} -schost=${HOSTPORT[1]} -scname=&amp;quot;${JOB[4]}&amp;quot; -i ${JOURNAL} 1&amp;gt; $LOG_FILE 2&amp;gt; $ERR_FILE &amp;amp;
 
    # Run Ansys
    mv $PBS_O_WORKDIR/$STRUCTURALDATA $PBS_O_WORKDIR/Structural/
    cd $PBS_O_WORKDIR/Structural/
    ansys182 -b -scport=${HOSTPORT[0]} -schost=${HOSTPORT[1]} -scname=&amp;quot;${JOB[2]}&amp;quot; -i ${STRUCTURALDATA} -o ansys.out -np ${NPA}
 
fi
 
echo &amp;quot;--- Job finished at:`date`&amp;quot;
qstat | grep $PBS_JOBNAME | awk &#39;{print &amp;quot;--- Total CPU hours:&amp;quot;$4}&#39;
date &amp;gt;&amp;gt; $HOME/sun/fluent_flag
 
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;附上算例文件及源码&lt;a href=&#34;https://share.weiyun.com/5n9s8Sa&#34;&gt;链接&lt;/a&gt;&lt;/p&gt;

&lt;h1 id=&#34;参考文献&#34;&gt;参考文献&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href=&#34;https://share.weiyun.com/5v1PtGA&#34;&gt;官方ANSYS18.2 SystemCoupling Tutorial&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www0.sun.ac.za/hpc/index.php?title=HOWTO_submit_jobs#Fluid-Structure_Interaction&#34;&gt;sun.ac.za&amp;mdash;-Fluid-Structure Interaction &lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
- https://www.nech.top/posts/ansys_sc/ - Copyright 2019~2021 www.nech.top.</description>
        </item>
    
    
    
        <item>
        <title>一些专业软件的学习途径</title>
        <link>https://www.nech.top/posts/methods_for_learning/</link>
        <pubDate>Thu, 07 Nov 2019 00:00:00 +0000</pubDate>
        
        <guid>https://www.nech.top/posts/methods_for_learning/</guid>
        <description>个人的网站学习记录 https://www.nech.top/posts/methods_for_learning/ -

&lt;!-- more --&gt;

&lt;h1 id=&#34;cad软件之solidworks&#34;&gt;CAD软件之SolidWorks&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.bilibili.com/video/av63809883&#34;&gt;B站-【SolidWorks从入门到精通】&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://study.163.com/course/courseMain.htm?courseId=665020&#34; title=&#34;网易云课堂-SolidWorks零件与装配体官方课程&#34;&gt;网易云课堂-SolidWorks零件与装配体官方课程&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&#34;cfd前处理之pointwise&#34;&gt;CFD前处理之Pointwise&lt;/h1&gt;

&lt;p&gt;资料较少，可以直接看官方教程
- &lt;a href=&#34;http://v.qq.com/vplus/1d640bcc61e9db498cd6e6189ae90664?page=video&#34; title=&#34;腾讯视频&#34;&gt;腾讯视频&lt;/a&gt;&lt;/p&gt;

&lt;h1 id=&#34;cfd前处理之icem-cfd&#34;&gt;CFD前处理之ICEM CFD&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://book.duxiu.com/bookDetail.jsp?dxNumber=000015146732&amp;amp;d=C6FC1556783FF2DF432EE52E73817E87&amp;amp;fenlei=13011601080231&amp;amp;sw=ANSYS+ICEM+CFD&#34;&gt;书籍-ANSYS ICEM CFD工程实例详解-胡坤，李振北编著&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://fangzhenxiuxiu.com/course/4360&#34;&gt;仿真秀-ANSYS ICEM CFD 结构化网格功能学习&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;B站流沙大哥ICEM系列教程&lt;a href=&#34;https://www.bilibili.com/video/av20723765&#34;&gt;上1&lt;/a&gt;，&lt;a href=&#34;https://www.bilibili.com/video/av20726422&#34;&gt;上2&lt;/a&gt;，&lt;a href=&#34;https://www.bilibili.com/video/av20765043&#34;&gt;下&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&#34;cfd求解器之fluent&#34;&gt;CFD求解器之Fluent&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.bilibili.com/video/av23427042/?p=1&#34; title=&#34;B站-Fluent教学视频&#34;&gt;B站-Fluent教学视频&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.fangzhenxiuxiu.com/course/132475&#34;&gt;仿真秀-Fluent 动网格软件功能介绍&lt;/a&gt;    (需付费，可以到这里：&lt;a href=&#34;https://share.weiyun.com/57ZMGEw&#34;&gt;https://share.weiyun.com/57ZMGEw&lt;/a&gt; 密码：w28vbn)&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.fangzhenxiuxiu.com/course/95605&#34;&gt;仿真秀-Fluent 网格自适应(adapt)功能介绍（基于 2019 R1 版本）&lt;/a&gt;（需付费，可以到这里：&lt;a href=&#34;https://share.weiyun.com/5w7dz02)&#34;&gt;https://share.weiyun.com/5w7dz02)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;仿真秀UDF培训之&lt;a href=&#34;http://www.fangzhenxiuxiu.com/course/1016&#34;&gt;概述&lt;/a&gt;，&lt;a href=&#34;http://www.fangzhenxiuxiu.com/course/1039&#34;&gt;编译代码&lt;/a&gt;，&lt;a href=&#34;http://www.fangzhenxiuxiu.com/course/1052&#34;&gt;常用宏命令&lt;/a&gt;，&lt;a href=&#34;http://www.fangzhenxiuxiu.com/course/48873&#34;&gt;并行计算&lt;/a&gt;(需付费)&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.fangzhenxiuxiu.com/course/10595&#34;&gt;仿真秀-Fluent嵌套网格&lt;/a&gt;(需付费)&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&#34;cfd求解之comsol&#34;&gt;CFD求解之COMSOL&lt;/h1&gt;

&lt;p&gt;&lt;a href=&#34;https://www.bilibili.com/video/av50008996/?p=2&#34;&gt;B站-COMSOL流体模块&lt;/a&gt;&lt;/p&gt;

&lt;h1 id=&#34;cfd后处理之tecplot&#34;&gt;CFD后处理之Tecplot&lt;/h1&gt;

&lt;p&gt;&lt;a href=&#34;http://v.qq.com/vplus/1d640bcc61e9db498cd6e6189ae90664&#34;&gt;腾讯视频-pointwise&lt;/a&gt;
看官方HELP文件。官方Windturbineblades算例：链接：&lt;a href=&#34;https://share.weiyun.com/5WQ65Xk&#34;&gt;https://share.weiyun.com/5WQ65Xk&lt;/a&gt; 密码：ddvutg&lt;/p&gt;

&lt;h1 id=&#34;cfd后处理之cfd-post&#34;&gt;CFD后处理之CFD-post&lt;/h1&gt;

&lt;h1 id=&#34;cfd后处理之paraview&#34;&gt;CFD后处理之Paraview&lt;/h1&gt;

&lt;p&gt;看官方教程，资料较少&lt;/p&gt;

&lt;h1 id=&#34;originlab&#34;&gt;OriginLab&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.bilibili.com/video/av6372037&#34; title=&#34;origin中文教程 65集 白东升版&#34;&gt;B站-origin中文教程 65集 白东升版&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://my.originlab.com/forum/forum.asp?FORUM_ID=28&#34; title=&#34;Originlab中文论坛&#34;&gt;Originlab中文论坛&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&#34;ansys-workbench&#34;&gt;ANSYS Workbench&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;http://www.fangzhenxiuxiu.com/course/7407&#34;&gt;ANSYS WORKBENCH分析应用基础&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.jishulink.com/college/video/c12106&#34; title=&#34;技术邻-ANSYS WORKBENCH入门培训系列视频&#34;&gt;技术邻-ANSYS WORKBENCH入门培训系列视频&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.bilibili.com/video/av47794960?from=search&amp;amp;seid=2874630274153416823&#34; title=&#34;www.bilibili.com&#34;&gt;B站-ANSYS-Workbench基础视频教程&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.fangzhenxiuxiu.com/course/7407&#34;&gt;仿真秀-ANSYS WORKBENCH分析应用基础&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&#34;ansys建模工具之designmodeler&#34;&gt;ANSYS建模工具之DesignModeler&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.bilibili.com/video/av55321038/?p=1&#34;&gt;B站-ANSYS Design Modeler建模视频教程&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&#34;ansys建模工具之spaceclaim-scdm&#34;&gt;ANSYS建模工具之SpaceClaim(SCDM)&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.bilibili.com/video/av47088689&#34;&gt;B站-SpaceClaim&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.fangzhenxiuxiu.com/course/825&#34;&gt;仿真秀-ANSYS 直接建模软件 SCDM 基础培训（流体方向）&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&#34;fea软件之ansys-workbench-mechanical-mechanical-apdl&#34;&gt;FEA软件之ANSYS Workbench Mechanical / Mechanical APDL&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;http://www.fangzhenxiuxiu.com/course/6545&#34;&gt;仿真秀-ANSYS Mechanical基础培训&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.fangzhenxiuxiu.com/course/2190&#34;&gt;ANSYS Mechanical APDL 结构分析通用课程&lt;/a&gt;(需付费，可以到这里：&lt;a href=&#34;https://share.weiyun.com/5GAzvST&#34;&gt;https://share.weiyun.com/5GAzvST&lt;/a&gt; 密码：ntl4z8)&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.fangzhenxiuxiu.com/course/6545&#34;&gt;仿真秀-ANSYS Mechanical基础培训&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.jishulink.com/college/video/c12631&#34; title=&#34;ANSYS 接触分析讲解&#34;&gt;技术邻-ANSYS 接触分析讲解&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.iqiyi.com/w_19rt3e9ue5.html&#34; title=&#34;爱奇艺-ansys有限元分析视频教程-高清-接触分析&#34;&gt;爱奇艺-ansys有限元分析视频教程-高清-接触分析&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.fangzhenxiuxiu.com/course/2190?learnId=230776&#34; title=&#34;仿真秀-ANSYS Mechanical APDL 结构分析通用课程&#34;&gt;仿真秀-ANSYS Mechanical APDL 结构分析通用课程&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://lefang.ke.qq.com/&#34; title=&#34;乐坊-腾讯课堂&#34;&gt;乐坊-腾讯课堂&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;在Workbench Mechanical中默认是采用的workbench meshing进行网格划分的，以下是网格划分的教程(实际上也是可以调用ICEM进行网格划分的，见&lt;a href=&#34;http://blog.sina.com.cn/s/blog_599d8faa010120o0.html&#34;&gt;Workbench中直接调用ICEM CFD进行网格划分&lt;/a&gt;):&lt;/p&gt;

&lt;h2 id=&#34;ansys-workbench-meshing&#34;&gt;ANSYS workbench meshing&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.bilibili.com/video/av63809883&#34;&gt;B站-ANSYS workbench meshing系列精品课程第一讲核心功能介绍&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.bilibili.com/video/av61288273&#34;&gt;B站-ANSYS workbench meshing系列精品课程第二讲核心功能介绍&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
- https://www.nech.top/posts/methods_for_learning/ - Copyright 2019~2021 www.nech.top.</description>
        </item>
    
    
    
        <item>
        <title>Git学习</title>
        <link>https://www.nech.top/posts/git/</link>
        <pubDate>Thu, 10 Oct 2019 00:00:00 +0000</pubDate>
        
        <guid>https://www.nech.top/posts/git/</guid>
        <description>个人的网站学习记录 https://www.nech.top/posts/git/ -

&lt;h1 id=&#34;git基本操作-版本控制&#34;&gt;git基本操作、版本控制&lt;/h1&gt;

&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;git config --global user.email &amp;quot;email&amp;quot;
git config --global user.name &#39;username&#39;
rm -rf .git
git config --global core.autocrlf false
git init
git add readme.txt
git commit -m &#39;add readme file&#39;
git status
git diff readme.txt
git log
git reflog 
git reset --hard HEAD^ or ID ##版本回退
git checkout -- readme.txt    ##把readme.txt文件在工作区的修改全部撤销
git reset HEAD readme.txt   ##git reset命令既可以回退版本，也可以把暂存区的修改回退到工作区。当我们用HEAD时，表示最新的版本
git rm readme.txt ---&amp;gt; git commit -m &#39;delete file&#39;
&lt;/code&gt;&lt;/pre&gt;

&lt;h1 id=&#34;远程仓库&#34;&gt;远程仓库&lt;/h1&gt;

&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;git remote add origin git@github.com:user/learngit.git ##添加远端项目地址
ssh-keygen -t rsa -C &amp;quot;username&amp;quot;  ##之后将生成的id_rsa.pub粘贴到github中
ssh -T git@github.com
git remote -v  ##查看远端项目地址
git remote rm origin  ## 删除远端项目地址
git remote set-url origin git@github.com:user/leangit.git
git push -u origin master
git clone git@github.com:user/gitskills.git
&lt;/code&gt;&lt;/pre&gt;

&lt;h2 id=&#34;出现的问题&#34;&gt;出现的问题&lt;/h2&gt;

&lt;p&gt;1. ping不通github.com 需要修改host文件&lt;/p&gt;

&lt;h1 id=&#34;分支管理&#34;&gt;分支管理&lt;/h1&gt;

&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;git checkout -b dev 相当于这两句  git branch dev &amp;amp;&amp;amp; git checkout dev  ##创建并切换到dev分支
git branch ## 查看(当前)分支
git checkout master  &amp;amp;&amp;amp; git merge dev ##切换回master分支并合并分支dev
git branch -d dev  ## 删除分支dev
推荐用switch替代checkout：
git switch -c dev ## 创建并切换到新的dev分支
git switch master ##直接切换到已有的master分支
git log --graph --pretty=oneline --abbrev-commit  ##查看分支合并图
git merge --no-ff -m &amp;quot;merge with no-ff&amp;quot; dev ##合并分支时默认采用fast forward模式，此时删除分支后会丢掉分支信息。若要保留分支信息，在merge时要添加参数no-ff
git stash ## 把当前工作现场“储藏”起来，等以后恢复现场后继续工作
git stash list
git stash pop = git stash apply &amp;amp;&amp;amp; git stash drop
git stash apply stash@{0}  ##多次stash后恢复指定的stash
git cherry-pick commit_id  ##复制commit所做的修改
git remote -v ##显示远程库的信息

git checkout -b dev origin/dev  ## 创建dev和远程分支dev
git branch --set-upstream-to=origin/dev dev  ## 设置本地dev分支和远程分支dev的链接
&lt;/code&gt;&lt;/pre&gt;

&lt;h2 id=&#34;分支策略&#34;&gt;分支策略&lt;/h2&gt;

&lt;p&gt;在实际开发中，我们应该按照几个基本原则进行分支管理：
首先，&lt;code&gt;master&lt;/code&gt;分支应该是非常稳定的，也就是仅用来发布新版本，平时不能在上面干活；
那在哪干活呢？干活都在&lt;code&gt;dev&lt;/code&gt;分支上，也就是说，&lt;code&gt;dev&lt;/code&gt;分支是不稳定的，到某个时候，比如1.0版本发布时，再把dev分支合并到&lt;code&gt;master&lt;/code&gt;上，在master分支发布1.0版本；
你和你的小伙伴们每个人都在&lt;code&gt;dev&lt;/code&gt;分支上干活，每个人都有自己的分支，时不时地往&lt;code&gt;dev&lt;/code&gt;分支上合并就可以了。
所以，团队合作的分支看起来就像这样：
&lt;img src=&#39;https://i.loli.net/2019/10/10/DHeqxoftbUFgvuM.png&#39; title=&#39;分支策略&#39; style=&#34;zoom:;&#34; /&gt;
1. 首先，可以试图用&lt;code&gt;git push origin &amp;lt;branch-name&amp;gt;&lt;/code&gt;推送自己的修改；
2. 如果推送失败，则因为远程分支比你的本地更新，需要先用&lt;code&gt;git pull&lt;/code&gt;试图合并；
3. 如果合并有冲突，则解决冲突，并在本地提交；
4. 没有冲突或者解决掉冲突后，再用&lt;code&gt;git push origin &amp;lt;branch-name&amp;gt;&lt;/code&gt;推送就能成功！&lt;/p&gt;

&lt;p&gt;如果&lt;code&gt;git pull&lt;/code&gt;提示&lt;code&gt;no tracking information&lt;/code&gt;，则说明本地分支和远程分支的链接关系没有创建，用命令&lt;code&gt;git branch --set-upstream-to &amp;lt;branch-name&amp;gt; origin/&amp;lt;branch-name&amp;gt;&lt;/code&gt;。
这就是多人协作的工作模式，一旦熟悉了，就非常简单。&lt;/p&gt;

&lt;h1 id=&#34;标签关联&#34;&gt;标签关联&lt;/h1&gt;

&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;git checkout master
git tag V1.0
git tag v0.9 f52c633
git tag
git show v0.9 ##查看标签信息
git tag -a v0.1 -m &amp;quot;version 0.1 released&amp;quot; 1094adb  ## 创建带有说明的标签，-a指定标签名，-m指定说明文字
git tag -d v0.1 ## 标签删除
git push origin &amp;lt;tagname&amp;gt;  ## 推送某个标签到远程
git push origin --tags  ## 一次性推送到远程的本地标签
git push origin :refs/tags/&amp;lt;tagname&amp;gt;  ## 删除一个远程标签，需先删除本地标签
&lt;/code&gt;&lt;/pre&gt;

&lt;h1 id=&#34;自定义git&#34;&gt;自定义git&lt;/h1&gt;

&lt;p&gt;1. 设置别名&lt;code&gt;git config --global alias.lg &amp;quot;log --color --graph --pretty=format:&#39;%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)&amp;lt;%an&amp;gt;%Creset&#39; --abbrev-commit&amp;quot;&lt;/code&gt;
2. 配置文件都放在&lt;code&gt;.git/config&lt;/code&gt;中
3. 忽略特殊文件，需要配置&lt;code&gt;.gitignore&lt;/code&gt;文件&lt;/p&gt;

&lt;h1 id=&#34;参考资料&#34;&gt;参考资料&lt;/h1&gt;

&lt;p&gt;1. &lt;a href=&#34;https://www.liaoxuefeng.com/wiki/896043488029600/898732864121440&#34;&gt;廖雪峰的官方网站&lt;/a&gt;
2. &lt;a href=&#34;https://www.cnblogs.com/ayseeing/p/4445194.html&#34;&gt;生成多个git ssh密钥&lt;/a&gt;&lt;/p&gt;
- https://www.nech.top/posts/git/ - Copyright 2019~2021 www.nech.top.</description>
        </item>
    
    
  </channel>
</rss> 