... | ... |
@@ -10,9 +10,13 @@ title: 'Intel Compiler Classic' |
10 | 10 |
|
11 | 11 |
Version | Module file Name | System B/C | System G | Cloud Systems | Notes |
12 | 12 |
--- | --- | --- | --- | --- | --- |
13 |
-2022.3 | intel/2022.3 | + | - | + | Introduced in November 2022 |
|
13 |
+2022.3 (default) | intel/2022.3 | + | - | + | Introduced in November 2022. Intel compiler + MKL + TBB |
|
14 |
+2022.3 | intel/2022.3-rt | + | - | + | Introduced in November 2022. runtime libraries |
|
15 |
+ |
|
16 |
+Note: The Intel compilers are listed in the comprehensive version of Intel OneAPI, not in the individual Intel compiler versions. |
|
14 | 17 |
|
15 | 18 |
\+ : Available for all users |
19 |
+ |
|
16 | 20 |
\- : Not available |
17 | 21 |
|
18 | 22 |
In system B, C and Cloud, the Intel compiler is set by default when you log into the system. The Intel compiler is not available in system G. |
... | ... |
@@ -51,6 +55,7 @@ moduleコマンドの詳細は [Modules](/config/modules) をご覧ください |
51 | 55 |
|-shared-intel |Dynamically link all Intel-provided libraries. | |
52 | 56 |
|-fpic |Generates position-independent code.| |
53 | 57 |
|-qopenmp |Enable OpenMP directive and compile.| |
58 |
+| -qmkl | Link MKL library.| |
|
54 | 59 |
|-parallel | Performs automatic parallelization | |
55 | 60 |
|-O0/-O1/-O2/-O3 |Specifies the level of optimization (default is -O2).| |
56 | 61 |
|-fast |Optimizes the program for maximum execution speed. -fast option gives the following options.<br>`-ipo, -O3, -no-prec-div, -static, -fp-model fast=2 -xHost `| |
... | ... |
@@ -59,6 +64,10 @@ moduleコマンドの詳細は [Modules](/config/modules) をご覧ください |
59 | 64 |
|-qopt-report |Displays information about the performed optimization.| |
60 | 65 |
|-xHost|Generates the code corresponded to the most significant instruction set which available in a processor.| |
61 | 66 |
|-xCORE-AVX512/-xCORE-AVX2/-xSSE4.2/-xSSE3|IntelGenerates the optimized code corresponded to the specified instruction set, for Intel processor. | |
67 |
+| -static-intel | Statically links libraries provided by Intel. Static linking has the effect of reducing the load of dynamic library search at program startup. | |
|
68 |
+| -Bstatic | Statically links all libraries on the command line following the -Bstatic option. However, if the -Bdynamic option is found in the process, the link will be dynamically linked thereafter.| |
|
69 |
+| -Bdynamic | Dynamically links all libraries on the command line following the -Bdynamic option. However, if the -Bstatic option is found in the process, the link will be statically thereafter.| |
|
70 |
+ |
|
62 | 71 |
|
63 | 72 |
#### Options for using more than 2 GB of memory |
64 | 73 |
|
... | ... |
@@ -98,6 +107,53 @@ When executing a compiled program, if you specify the number of parallelisms for |
98 | 107 |
$ tssrun --rsc p=1:t=8:c=8 ./a.out # Execute with the number of parallels specified as 8. |
99 | 108 |
``` |
100 | 109 |
|
110 |
+### Using Coarray{#coarray} |
|
111 |
+Coarray is a function added in Fortran 2008 for program parallelization. |
|
112 |
+You can enable Coarray by compiling as follows. |
|
113 |
+If you use srun to execute coarray, you must specify **coarray=single** when compiling. |
|
114 |
+If you run the program without using the srun command in a batch process, you can run the program by specifying shared or distributed. |
|
115 |
+ |
|
116 |
+```nohighlight |
|
117 |
+## When srun is used |
|
118 |
+$ ifort -coarray=single coarray.f90 |
|
119 |
+ |
|
120 |
+## When srun is not used (except for interactive processing) |
|
121 |
+$ ifort -coarray=distributed coarray.f90 |
|
122 |
+``` |
|
123 |
+When executing the compiled program, if you specify the number of parallels in p with the --rsc option, the program will be executed with the number of parallels. If the -coarray option is set to 'shared' or 'distributed', you must specify the number of parallels in the environment variable named FOR_COARRAY_NUM_IMAGES. |
|
124 |
+Please note that due to a bug when using IntelMPI via Infiniband, you must set to "0" in the environment variable named ** MPIR_CVAR_CH4_OFI_ENABLE_RMA ** to run a job. (Information as of June 2023) |
|
125 |
+ |
|
126 |
+<!-- |
|
127 |
+```nohighlight |
|
128 |
+$ export MPIR_CVAR_CH4_OFI_ENABLE_RMA=0 |
|
129 |
+$ tssrun --rsc p=2 ./test_coarray # When the number of parallelism is set to "2". |
|
130 |
+``` |
|
131 |
+--> |
|
132 |
+ |
|
133 |
+```nohighlight |
|
134 |
+#!/bin/bash |
|
135 |
+#============ Slurm Options =========== |
|
136 |
+#SBATCH -p gr19999b # Specify the job queue (partition). You need to change to the name of the queue which you want to submit. |
|
137 |
+#SBATCH -t 1:00:00 # Specify the elapsed time (Example of specifying 1 hour). |
|
138 |
+#SBATCH --rsc p=2 # Specify the requested resource (Example of executing Coarray with two parallels). |
|
139 |
+#SBATCH -o %x.%j.out # Specify the standard output file for the job.The '%x' is replaced by the job name and '%j' is replaced by the job ID. |
|
140 |
+#============ Shell Script ============ |
|
141 |
+# (optional) If you specify 'set -x', you can easily keep track of the execution progress of the job scripts. |
|
142 |
+set -x |
|
143 |
+ |
|
144 |
+# Supports when using IntelMPI via Infiniband |
|
145 |
+export MPIR_CVAR_CH4_OFI_ENABLE_RMA=0 |
|
146 |
+ |
|
147 |
+# Set the number of parallels to an environment variable |
|
148 |
+export FOR_COARRAY_NUM_IMAGES=${SLURM_DPC_NPROCS} |
|
149 |
+ |
|
150 |
+# Job execution (when -coarray=single) |
|
151 |
+srun ./a.out |
|
152 |
+ |
|
153 |
+#Note: When '-coarray=distributed' or '-coarray=shared', please run without srun because the compiled executable file itself calls mpiexec internally. |
|
154 |
+``` |
|
155 |
+ |
|
156 |
+ |
|
101 | 157 |
## Messages When Compiling{#compile_message} |
102 | 158 |
The Intel compiler outputs messages with the following format when there is a program error or information to be notified. |
103 | 159 |
|
... | ... |
@@ -139,6 +195,58 @@ compilation aborted for sample.f90 (code 1) |
139 | 195 |
|
140 | 196 |
## Available Libraries{#library} |
141 | 197 |
|
198 |
+### Runtime library{#runtime} |
|
199 |
+The Intel compiler is installed in /opt/system/app/intel, which is a shared storage. |
|
200 |
+Since a common file can be referenced from all nodes, storage capacity can be saved and manageability can be improved. |
|
201 |
+ |
|
202 |
+On the other hand, there is **a problem that access from all nodes concentrated in a shared storage**. |
|
203 |
+ |
|
204 |
+To solve this problem, the runtime libraries of the intel compiler (a group of libraries that do not include compilation functions) are installed in the local storage of the computing nodes of System A/B/C. |
|
205 |
+When a runtime library is used to execute a large MPI program, to start a large number of programs by array job, or to repeatedly execute a program for a short period of time, it reduces the load on /opt/system and speeds up program startup. |
|
206 |
+ |
|
207 |
+**Please try this simple method by specifying a following command to switch modules in your job script.** |
|
208 |
+Static linking at compile time has the same effect, but there are cases where only dynamic linking is possible. |
|
209 |
+ |
|
210 |
+#### Command to switch Intel compiler to runtime library |
|
211 |
+Switch to the same version of the runtime library as at the time of compilation. |
|
212 |
+Runtime libraries are module files with "-rt" at the end of the version number. |
|
213 |
+ |
|
214 |
+It is necessary to force module switch with the -f option. |
|
215 |
+ |
|
216 |
+```nohighlight |
|
217 |
+module switch -f intel/2022.3 intel/2022.3-rt -f |
|
218 |
+or |
|
219 |
+module switch -f intel/2022.3-rt |
|
220 |
+``` |
|
221 |
+ |
|
222 |
+#### Command to switch Intel MPI to runtime library |
|
223 |
+As with the Intel compiler, it is necessary to force module switch with the -f option. |
|
224 |
+ |
|
225 |
+```nohighlight |
|
226 |
+module switch -f intelmpi/2022.3 intelmpi/2022.3-rt |
|
227 |
+or |
|
228 |
+module switch -f intelmpi/2022.3-rt |
|
229 |
+``` |
|
230 |
+ |
|
231 |
+#### Example using runtime libraries |
|
232 |
+ |
|
233 |
+The following example shows the elapsed time required to complete a job for an MPI program started in 4096 parallel. |
|
234 |
+When the arithmetic part of the program is timed, both are completed within 8 seconds, but in the elapsed time of the entire job, which can be checked in sacct, the elapsed time of the job is reduced by more than 1 minute by using the run-time library. |
|
235 |
+ |
|
236 |
+```nohighlight |
|
237 |
+## Job without runtime library (1 min 26 sec) |
|
238 |
+$ sacct -X -j 234069 -o jobid,elapsed |
|
239 |
+JobID Elapsed |
|
240 |
+------------ ---------- |
|
241 |
+234069 00:01:26 |
|
242 |
+ |
|
243 |
+## Job using runtime library (17 sec) |
|
244 |
+$ sacct -X -j 234060 -o jobid,elapsed |
|
245 |
+JobID Elapsed |
|
246 |
+------------ ---------- |
|
247 |
+234060 00:00:17 |
|
248 |
+``` |
|
249 |
+ |
|
142 | 250 |
### MPI Library{#mpi_library} |
143 | 251 |
The Intel MPI library is available. Please refer to [Intel MPI Library](/compilers/intelmpi) on how to compile, link and execute MPI programs. |
144 | 252 |
|
... | ... |
@@ -8,14 +8,18 @@ title: 'Intelコンパイラ クラシック' |
8 | 8 |
|
9 | 9 |
### 利用できるバージョン・システム{#version} |
10 | 10 |
|
11 |
-バージョン | モジュールファイル名 | システムB/C | システムG | クラウドシステム | 備考 |
|
12 |
-2022.3 | intel/2022.3 | + | - | + | 2022年11月導入 |
|
11 |
+バージョン | モジュールファイル名 | システムB/C | システムG | クラウドシステム | 備考 |
|
12 |
+--- | --- | --- | --- | --- | --- |
|
13 |
+2022.3 (default) | intel/2022.3 | + | - | + | 2022年11月導入. Intelコンパイラ + MKL + TBB |
|
14 |
+2022.3-rt | intel/2022.3-rt | + | - | + | 2022年11月導入. ランタイムライブラリ |
|
15 |
+ |
|
16 |
+注:Intelコンパイラの個別のバージョンではなく、Intel OneAPI の包括的なバージョンで記載しています。 |
|
17 |
+ |
|
13 | 18 |
|
14 | 19 |
\+ : すべてのユーザが利用可能 |
15 | 20 |
\- : 利用不可 |
16 | 21 |
|
17 |
-システムB、C、クラウドでは、システムにログインした時点でIntelコンパイラがデフォルトで設定されています。システムGではIntelコンパイラは使えません。 |
|
22 |
+システムB、C、クラウドシステムでは、システムにログインした時点でIntelコンパイラがデフォルトで設定されています。システムG は、動作検証をしていません。 |
|
18 | 23 |
|
19 | 24 |
```nohighlight |
20 | 25 |
$ module list |
... | ... |
@@ -37,28 +41,32 @@ moduleコマンドの詳細は [Modules](/config/modules) をご覧ください |
37 | 41 |
## コンパイル方法{#usage} |
38 | 42 |
|
39 | 43 |
### コマンド{#command} |
40 |
-| 言語 | コマンド | 実行形式 | |
|
41 |
-| - | - | - | |
|
42 |
-| C | icc | icc [オプション] ファイル名 | |
|
43 |
-| C++ | icpc | icpc [オプション] ファイル名 | |
|
44 |
-| Fortran | ifort | ifort [オプション] ファイル名 | |
|
44 |
+| 言語 | コマンド | 実行形式 | |
|
45 |
+| - | - | - | |
|
46 |
+| C | icc | icc [オプション] ファイル名 | |
|
47 |
+| C++ | icpc | icpc [オプション] ファイル名 | |
|
48 |
+| Fortran | ifort | ifort [オプション] ファイル名 | |
|
45 | 49 |
|
46 | 50 |
### オプション{#option} |
47 |
-|オプション名 |説明| |
|
48 |
-|-|-| |
|
49 |
-|-o FILENAME |オブジェクトファイルの名前を指定します。| |
|
50 |
-|-mcmodel=medium |2Gbyteを超えてメモリを利用できるようになります。| |
|
51 |
-|-shared-intel |インテルが提供するライブラリをすべて動的にリンクします。 | |
|
52 |
-|-fpic |位置に依存しないコードを生成します。| |
|
53 |
-|-qopenmp |OpenMP指示子を有効にしてコンパイルします。| |
|
54 |
-|-parallel | 自動並列化を行います。 | |
|
55 |
-|-O0/-O1/-O2/-O3 |最適化のレベルを指定します(デフォルトは-O2)。| |
|
56 |
-|-fast |プログラムの実行速度が最大になるように最適化します。-fast オプションにより、次のオプションが付与されます。<br>`-ipo, -O3, -no-prec-div, -static, -fp-model fast=2 -xHost `| |
|
57 |
-|-ip |単一ファイル内で、手続き間の処理を最適化します。 | |
|
58 |
-|-ipo |複数ファイル間で、手続き間の処理を最適化します。| |
|
59 |
-|-qopt-report |実施した最適化についての情報を表示します。| |
|
60 |
-|-xHost|プロセッサで利用可能な最上位の命令セット向けのコードを生成します。| |
|
61 |
-|-xCORE-AVX512/-xCORE-AVX2/-xSSE4.2/-xSSE3|Intelプロセッサ向けに,指定した命令セットに対応した最適化コードを生成します。| |
|
51 |
+| オプション名 | 説明 | |
|
52 |
+| - | - | |
|
53 |
+| -o FILENAME | オブジェクトファイルの名前を指定します。| |
|
54 |
+| -mcmodel=medium | 2Gbyteを超えてメモリを利用できるようになります。| |
|
55 |
+| -shared-intel | インテルが提供するライブラリをすべて動的にリンクします。 | |
|
56 |
+| -fpic | 位置に依存しないコードを生成します。| |
|
57 |
+| -qopenmp | OpenMP指示子を有効にしてコンパイルします。| |
|
58 |
+| -qmkl | MKLライブラリをリンクします。| |
|
59 |
+| -parallel | 自動並列化を行います。 | |
|
60 |
+| -O0 / -O1 / -O2 / -O3 | 最適化のレベルを指定します(デフォルトは-O2)。| |
|
61 |
+| -fast | プログラムの実行速度が最大になるように最適化します。-fast オプションにより、次のオプションが自動で付与されます。<br>`-ipo, -O3, -no-prec-div, -static, -fp-model fast=2 -xHost `| |
|
62 |
+| -ip | 単一ファイル内で、手続き間の処理を最適化します。 | |
|
63 |
+| -ipo | 複数ファイル間で、手続き間の処理を最適化します。コンパイルに要する時間が大幅に増加します。| |
|
64 |
+| -qopt-report | 実施した最適化についての情報を表示します。| |
|
65 |
+| -xHost | コンパイルするホスト上のプロセッサで利用可能な最上位の命令セット向けのコードを生成します。| |
|
66 |
+| -xCORE-AVX512<br/>-xCORE-AVX2 | Intelプロセッサ向けに,指定した命令セットに対応した最適化コードを生成します。| |
|
67 |
+| -static-intel | インテルが提供するライブラリを静的にリンクします。静的リンクすることで、プログラム起動時の動的ライブラリ探索の負荷を下げる効果があります。 | |
|
68 |
+| -Bstatic | -Bstatic オプションに続くコマンドライン上のすべてのライブラリを静的にリンクします。ただし、-Bdynamic オプションが途中で見つかった場合は、それ以降は動的にリンクします。| |
|
69 |
+| -Bdynamic | -Bdynamic オプションに続くコマンドライン上のすべてのライブラリを動的にリンクします。ただし、-Bstatic オプションが途中で見つかった場合は、それ以降は静的にリンクします。| |
|
62 | 70 |
|
63 | 71 |
#### 2GB以上のメモリを使う場合のオプション |
64 | 72 |
|
... | ... |
@@ -98,6 +106,59 @@ $ icc -qopenmp test.c |
98 | 106 |
$ tssrun --rsc p=1:t=8:c=8 ./a.out # 並列数8を指定して実行 |
99 | 107 |
``` |
100 | 108 |
|
109 |
+### Coarrayの利用{#coarray} |
|
110 |
+Coarrayは、Fortran 2008で追加された、プログラム並列化に関する機能です。 |
|
111 |
+以下のようにコンパイルすることで、Coarrayを有効化することができます。 |
|
112 |
+なお、srunを使ってcoarrayを実行する場合は、コンパイル時に |
|
113 |
+**-coarray=single** と指定してください。 |
|
114 |
+バッチ処理でsrunコマンドを使用せずに、プログラムを実行する場合は、 |
|
115 |
+sharedやdistributedを指定して実行することも可能です。 |
|
116 |
+ |
|
117 |
+```nohighlight |
|
118 |
+## srunを使用する場合 |
|
119 |
+$ ifort -coarray=single coarray.f90 |
|
120 |
+ |
|
121 |
+## srunを使用しない場合(会話型処理を除く) |
|
122 |
+$ ifort -coarray=distributed coarray.f90 |
|
123 |
+``` |
|
124 |
+ |
|
125 |
+コンパイルしたプログラムを実行する際は、--rscオプションで pに並列数を指定すると、 |
|
126 |
+その並列数でプログラムが実行されます。 |
|
127 |
+-coarrayオプションにsharedやdistributedを設定した場合は、FOR_COARRAY_NUM_IMAGES という環境変数に並列数を |
|
128 |
+指定する必要があります。 |
|
129 |
+また、IntelMPIをInfiniband経由で使用する場合の不具合により、** MPIR_CVAR_CH4_OFI_ENABLE_RMA ** という |
|
130 |
+環境変数を「0」に設定した上で,ジョブを実行する必要があります。(2023年6月時点の情報) |
|
131 |
+<!-- |
|
132 |
+```nohighlight |
|
133 |
+$ export MPIR_CVAR_CH4_OFI_ENABLE_RMA=0 |
|
134 |
+$ tssrun --rsc p=2 ./test_coarray # 並列数を「2」とする場合。 |
|
135 |
+``` |
|
136 |
+--> |
|
137 |
+ |
|
138 |
+```nohighlight |
|
139 |
+#!/bin/bash |
|
140 |
+#============ Slurm Options =========== |
|
141 |
+#SBATCH -p gr19999b # ジョブキュー(パーティション)の指定。投入したいキュー名に適宜変更が必要。 |
|
142 |
+#SBATCH -t 1:00:00 # 経過時間の指定(1時間を指定する例)。 |
|
143 |
+#SBATCH --rsc p=2 # 要求リソースの指定(Coarrayを2並列で実行する場合の例)。 |
|
144 |
+#SBATCH -o %x.%j.out # ジョブの標準出力ファイルの指定。%xはジョブ名、%j はジョブIDに置換されます。 |
|
145 |
+#============ Shell Script ============ |
|
146 |
+# (任意) set -x を指定するとジョブスクリプトの実行経過を把握しやすくなります。 |
|
147 |
+set -x |
|
148 |
+ |
|
149 |
+# IntelMPIをInfiniband経由で使用する場合の不具合対応 |
|
150 |
+export MPIR_CVAR_CH4_OFI_ENABLE_RMA=0 |
|
151 |
+ |
|
152 |
+# 並列数を環境変数に設定 |
|
153 |
+export FOR_COARRAY_NUM_IMAGES=${SLURM_DPC_NPROCS} |
|
154 |
+ |
|
155 |
+# ジョブの実行 (-coarray=single の場合) |
|
156 |
+srun ./a.out |
|
157 |
+ |
|
158 |
+# 補足: -coarray=distributed や -coarray=shared の場合は、コンパイルした実行ファイル自体が |
|
159 |
+# 内部的にmpiexecを呼び出すため、srun を使用せずに実行してください。 |
|
160 |
+``` |
|
161 |
+ |
|
101 | 162 |
## コンパイル時メッセージ{#compile_message} |
102 | 163 |
Intel コンパイラは、プログラムの誤りや通知すべき情報があるときに、以下に示す形式でメッセージを出力します。 |
103 | 164 |
### C/C++{#message_c} |
... | ... |
@@ -138,6 +199,59 @@ compilation aborted for sample.f90 (code 1) |
138 | 199 |
|
139 | 200 |
## 利用可能なライブラリ{#library} |
140 | 201 |
|
202 |
+### ランタイムライブラリ{#runtime} |
|
203 |
+Intelコンパイラは共有ストレージである /opt/system/app/intel にインストールしています。 |
|
204 |
+全ノードから共通のファイルを参照することができるため、ストレージ容量の節約と管理性の向上を図ることが可能です。 |
|
205 |
+ |
|
206 |
+一方で、**全ノードからのアクセスが共有ストレージに集中する問題**があります。 |
|
207 |
+ |
|
208 |
+この問題を解決するために、 システムA/B/Cの計算ノードのローカルストレージには、intelコンパイラのランタイムライブラリ(コンパイル機能を含まないライブラリ群)をインストールしてあります。 |
|
209 |
+大規模なMPIプログラムの実行、アレイジョブによる大量のプログラムの起動、短時間のプログラムを繰り返し実行する場合等にランタイムライブラリを利用すると、/opt/system の負荷を軽減し、プログラムの起動を早める効果があります。 |
|
210 |
+ |
|
211 |
+**ジョブスクリプトに次に示すmodule を切り替えるコマンドを記載いただくことで、簡易にご利用いただけますので、是非お試しください。** |
|
212 |
+コンパイル時に静的リンクすることでも、同様な効果がありますが、動的リンクしかできないケースもありますので、そのような場合に是非ご利用ください。 |
|
213 |
+ |
|
214 |
+ |
|
215 |
+#### Intelコンパイラをランタイムライブラリに切り替えるコマンド |
|
216 |
+コンパイル時と同じバージョンのランタイムライブラリに切り替えてください。 |
|
217 |
+ランタイムライブラリは、バージョン番号の末尾に「-rt 」が記載されているモジュールファイルです。 |
|
218 |
+ |
|
219 |
+module switch に -f オプションをつけて強制的にswitchする必要があります。 |
|
220 |
+ |
|
221 |
+```nohighlight |
|
222 |
+module switch -f intel/2022.3 intel/2022.3-rt -f |
|
223 |
+もしくは |
|
224 |
+module switch -f intel/2022.3-rt |
|
225 |
+``` |
|
226 |
+ |
|
227 |
+#### Intel MPI をランタイムライブラリに切り替えるコマンド |
|
228 |
+Intelコンパイラと同様に、module switch に -f オプションをつけて強制的にswitchする必要があります。 |
|
229 |
+ |
|
230 |
+```nohighlight |
|
231 |
+module switch -f intelmpi/2022.3 intelmpi/2022.3-rt |
|
232 |
+もしくは |
|
233 |
+module switch -f intelmpi/2022.3-rt |
|
234 |
+``` |
|
235 |
+ |
|
236 |
+#### ランタイムライブラリを使った例 |
|
237 |
+ |
|
238 |
+以下の例は、4096並列で起動したMPIプログラムのジョブの完了までに要した経過時間を記載しています。 |
|
239 |
+プログラムの演算部分を時間計測するとどちらも8秒以内に完了していますが、sacctで確認できるジョブ全体の経過時間では、ランタイムライブラリを使用することで、ジョブの経過時間が1分以上短縮されています。 |
|
240 |
+ |
|
241 |
+```nohighlight |
|
242 |
+## runtime ライブラリを未使用のジョブ(1分26秒) |
|
243 |
+$ sacct -X -j 234069 -o jobid,elapsed |
|
244 |
+JobID Elapsed |
|
245 |
+------------ ---------- |
|
246 |
+234069 00:01:26 |
|
247 |
+ |
|
248 |
+## runtime ライブラリを使用したジョブ (17秒) |
|
249 |
+$ sacct -X -j 234060 -o jobid,elapsed |
|
250 |
+JobID Elapsed |
|
251 |
+------------ ---------- |
|
252 |
+234060 00:00:17 |
|
253 |
+``` |
|
254 |
+ |
|
141 | 255 |
### MPIライブラリ{#mpi_library} |
142 | 256 |
Intel MPIライブラリが利用できます。MPIプログラムのコンパイル、リンク、実行方法については、[Intel MPIライブラリ](/compilers/intelmpi) をご覧ください。 |
143 | 257 |
|
... | ... |
@@ -17,6 +17,7 @@ external_links: |
17 | 17 |
Version | Module file Name | System B/C | System G | Cloud System| Notes |
18 | 18 |
--- | --- | --- | --- | --- | --- |
19 | 19 |
2022.3 | intelmpi/2022.3 | + | - | + | Introduced in November 2022 |
20 |
+2022.3-rt | intelmpi/2022.3-rt | + | - | + | Introduced in November 2022. runtime library |
|
20 | 21 |
|
21 | 22 |
<!-- |
22 | 23 |
注:Intel CompilerとIntel MPIのバージョンは一致しない場合があります |
... | ... |
@@ -14,9 +14,12 @@ external_links: |
14 | 14 |
|
15 | 15 |
## 利用環境{#enviroment} |
16 | 16 |
### 利用できるバージョン・システム{#version} |
17 |
-バージョン | モジュールファイル名 | システムB/C | システムG | クラウドシステム | 備考 |
|
18 |
-2022.3 | intelmpi/2022.3 | + | - | + | 2022年11月導入 |
|
17 |
+バージョン | モジュールファイル名 | システムB/C | システムG | クラウドシステム | 備考 |
|
18 |
+--- | --- | --- | --- | --- | --- |
|
19 |
+2022.3 (default) | intelmpi/2022.3 | + | - | + | 2022年11月導入 |
|
20 |
+2022.3-rt | intelmpi/2022.3-rt | + | - | + | 2022年11月導入. ランタイムライブラリ |
|
21 |
+ |
|
22 |
+注:Intel MPIの個別のバージョンではなく、Intel OneAPI の包括的なバージョンで記載しています。 |
|
19 | 23 |
|
20 | 24 |
<!-- |
21 | 25 |
注:Intel CompilerとIntel MPIのバージョンは一致しない場合があります |
... | ... |
@@ -25,12 +25,16 @@ Please refer to [Modules](/config/modules) for details. |
25 | 25 |
|
26 | 26 |
You can check a list of available module files with the module avail command. |
27 | 27 |
|
28 |
-Version | Module File Name | System B/C/G | Cloud System |
|
28 |
+Version | Module File Name | System B/C/G | Cloud System |
|
29 | 29 |
--------------- | ----- | ----- | ----- |
30 |
+ 2023R1.4 | ansysmcfd/2023R1.4 | KU | - |
|
31 |
+ 2022R2.2 | ansysmcfd/2022R2.2 | KU | - |
|
30 | 32 |
2022R2 (default) | ansysmcfd/2022R2 | KU | - |
31 | 33 |
|
32 | 34 |
\+ : Available for all users |
35 |
+ |
|
33 | 36 |
KU : Available for academic users only |
37 |
+ |
|
34 | 38 |
\- : Not available |
35 | 39 |
|
36 | 40 |
**License Type** |
... | ... |
@@ -197,39 +201,56 @@ By default, ANSYS performs the processing interactively by using a GUI, but it c |
197 | 201 |
$ tssrun ansys222 [options] < input-file > output-file |
198 | 202 |
※The ending of the execution command name (version number) differs depending on the version. |
199 | 203 |
``` |
204 |
+ |
|
205 |
+ |
|
206 |
+Options | Description |
|
207 |
+---------------------------------- | -------------------------------- |
|
208 |
+-j JobName | Specifying a job name |
|
209 |
+-d Switch | Specifying a device type(X11, X11c, 3D) |
|
210 |
+-m Size | Specifying a memory: work space(unit: MB), it is automatically set by default. |
|
211 |
+-db Size | Specifying a memory: database space(unit: MB), it is automatically set by default. |
|
212 |
+-p Prod | Specifying a product |
|
213 |
+-g | Starts in a GUI mode |
|
214 |
+-np NCPUS | Number of process parallelization (When '-smp' is specified or '-dis' is not specified) |
|
215 |
+-np NTHREAD | Number of threads parallelization (When '-dis' is specified) |
|
216 |
+-smp | SMP parallelization |
|
217 |
+-dis | MPI parallelization |
|
218 |
+-dir Dir | Specifying a work directory |
|
200 | 219 |
|
201 | 220 |
|
202 |
-Options | Description |
|
203 |
--j JobName | Specifying a job name |
|
204 |
--d Switch | Specifying a device type(X11, X11c, 3D) |
|
205 |
--m Size | Specifying a memory: work space(unit: MB), it is automatically set by default. |
|
206 |
--db Size | Specifying a memory: database space(unit: MB), it is automatically set by default. |
|
207 |
--p Prod | Specifying a product |
|
208 |
--g | Starts in a GUI mode |
|
209 |
--np NCPUS | Number of process parallelization |
|
210 |
--np NTHREAD | Number of threads parallelization |
|
211 |
--dis | MPI parallelization |
|
212 |
--dir Dir | Specifying a work directory |
|
213 |
- |
|
221 |
+### How to Use in Batch Job{#batch_job} |
|
214 | 222 |
|
223 |
+You need to prepare an Batch file to run ANSYS by Batch job. |
|
224 |
+Write the commands in the script as you execute on the command line, and submit the job with the sbatch command. |
|
215 | 225 |
|
216 |
-### How to Use in Batch Job{#batch_job} |
|
226 |
+The execute command of the ANSYS will automatically calls mpiexec inside the command, so the srun command is unnecessary. |
|
217 | 227 |
|
218 |
-You need to prepare an Batch file to run ANSYS by Batch job. Write a script of the same commands as you execute on the command line and submit the job by the qsub command. |
|
219 | 228 |
|
229 |
+#### Example of Job Script 1: SMP |
|
230 |
+```nohighlight |
|
231 |
+#!/bin/bash |
|
232 |
+#============ LSF Options ============ |
|
233 |
+#SBATCH -q gr19999b |
|
234 |
+#SBATCH -t 1:00:00 |
|
235 |
+#SBATCH --rsc p=1:t=4:c=4 |
|
236 |
+#============ Shell Script ============ |
|
237 |
+module load ansysmcfd/2022R2 |
|
238 |
+ansys222 -j test_${SLURM_JOBID} -b -smp -np ${SLURM_DPC_THREADS} -i test.dat |
|
239 |
+``` |
|
240 |
+※The ending of the execution command name (version number) differs depending on the ANSYS version. |
|
220 | 241 |
|
242 |
+#### Example of Job Script 2: MPI |
|
221 | 243 |
```nohighlight |
222 | 244 |
#!/bin/bash |
223 | 245 |
#============ LSF Options ============ |
224 | 246 |
#SBATCH -q gr19999b |
225 | 247 |
#SBATCH -t 1:00:00 |
226 |
-#SBATCH --rsc p=1:t=1:c=1 |
|
248 |
+#SBATCH --rsc p=4:t=1:c=1 |
|
227 | 249 |
#============ Shell Script ============ |
228 | 250 |
module load ansys |
229 |
-ansys222 -j test_${SLURM_JOBID} -b -dis -np ${SLURM_DPC_NPROCS} -nt ${SLURM_DPC_THREADS} -i test.dat |
|
251 |
+ansys222 -j test_${SLURM_JOBID} -b -dis -np ${SLURM_DPC_NPROCS} -i test.dat |
|
230 | 252 |
``` |
231 |
-※The ending of the execution command name (version number) differs depending on the version. |
|
253 |
+※The ending of the execution command name (version number) differs depending on the ANSYS version. |
|
232 | 254 |
|
233 | 255 |
## References{#references} |
234 | 256 |
|
... | ... |
@@ -24,9 +24,11 @@ Modulesソフトウェアパッケージは、アプリケーションの利用 |
24 | 24 |
|
25 | 25 |
module avail コマンドにて、利用できるモジュールファイル一覧が確認できます。 |
26 | 26 |
|
27 |
-バージョン | モジュールファイル名 | システムB/C/G | クラウドシステム |
|
28 |
- 2022R2 (default) | ansysmcfd/2022R2 | KU | - |
|
27 |
+バージョン | モジュールファイル名 | システムB/C/G | クラウドシステム |
|
28 |
+--------------- | ----- | ----- | ----- |
|
29 |
+ 2023R1.4 | ansysmcfd/2023R1.4 | KU | - |
|
30 |
+ 2022R2.2 | ansysmcfd/2022R2.2 | KU | - |
|
31 |
+ 2022R2 (default) | ansysmcfd/2022R2 | KU | - |
|
29 | 32 |
|
30 | 33 |
\+ : すべてのユーザが利用可能 |
31 | 34 |
KU : 京都大学構成員限定で利用可能 |
... | ... |
@@ -195,18 +197,19 @@ $ tssrun ansys222 [options] < input-file > output-file |
195 | 197 |
``` |
196 | 198 |
|
197 | 199 |
|
198 |
-オプション | 概要 |
|
199 |
--j JobName | ジョブ名を指定できます。 |
|
200 |
--d Switch | デバイスタイプを指定します。 X11, X11c, 3D |
|
201 |
--m Size | メモリの指定:ワークスペース領域(単位:MB) 標準は自動設定 |
|
202 |
--db Size | メモリの指定:データベース領域(単位:MB) 標準は自動設定 |
|
203 |
--p Prod | プロダクトの指定 |
|
204 |
--g | GUIモードで起動 |
|
205 |
--np NCPUS | プロセス並列数 |
|
206 |
--np NTHREAD | スレッド並列数 |
|
207 |
--dis | MPI並列 |
|
208 |
--dir Dir | 作業ディレクトリの指定 |
|
200 |
+オプション | 概要 |
|
201 |
+---------------------------------- | -------------------------------- |
|
202 |
+-j JobName | ジョブ名を指定できます。 |
|
203 |
+-d Switch | デバイスタイプを指定します。 X11, X11c, 3D |
|
204 |
+-m Size | メモリの指定:ワークスペース領域(単位:MB) 標準は自動設定 |
|
205 |
+-db Size | メモリの指定:データベース領域(単位:MB) 標準は自動設定 |
|
206 |
+-p Prod | プロダクトの指定 |
|
207 |
+-g | GUI モードで起動 |
|
208 |
+-np NCPUS | プロセス並列数 (-smp 指定時または -dis 未指定時) |
|
209 |
+-np NTHREAD | スレッド並列数 (-dis 指定時) |
|
210 |
+-smp | SMP 並列 |
|
211 |
+-dis | MPI 並列 |
|
212 |
+-dir Dir | 作業ディレクトリの指定 |
|
209 | 213 |
|
210 | 214 |
|
211 | 215 |
### バッチジョブでの利用方法{#batch_job} |
... | ... |
@@ -214,18 +217,37 @@ $ tssrun ansys222 [options] < input-file > output-file |
214 | 217 |
バッチジョブで実行するためには、バッチファイルを用意する必要があります。 |
215 | 218 |
スクリプト内でコマンドラインで実行するのと同様にコマンドを記述し、sbatch コマンドでジョブを投入します。 |
216 | 219 |
|
220 |
+ansysの実行コマンドは、コマンドの内部で mpiexec を自動で呼び出すので、srun コマンドは不要です。 |
|
217 | 221 |
|
222 |
+ |
|
223 |
+#### ジョブスクリプトの例1: SMP |
|
218 | 224 |
```nohighlight |
219 | 225 |
#!/bin/bash |
220 | 226 |
#============ LSF Options ============ |
221 | 227 |
#SBATCH -q gr19999b |
222 | 228 |
#SBATCH -t 1:00:00 |
223 |
-#SBATCH --rsc p=1:t=1:c=1 |
|
229 |
+#SBATCH --rsc p=1:t=4:c=4 |
|
230 |
+#============ Shell Script ============ |
|
231 |
+module load ansysmcfd/2022R2 |
|
232 |
+ansys222 -j test_${SLURM_JOBID} -b -smp -np ${SLURM_DPC_THREADS} -i test.dat |
|
233 |
+``` |
|
234 |
+※ ANSYSのバージョンにより実行コマンド名の語尾(バージョン番号)が異なります。 |
|
235 |
+ |
|
236 |
+ |
|
237 |
+#### ジョブスクリプトの例2: MPI |
|
238 |
+```nohighlight |
|
239 |
+#!/bin/bash |
|
240 |
+#============ LSF Options ============ |
|
241 |
+#SBATCH -q gr19999b |
|
242 |
+#SBATCH -t 1:00:00 |
|
243 |
+#SBATCH --rsc p=4:t=1:c=1 |
|
224 | 244 |
#============ Shell Script ============ |
225 | 245 |
module load ansys |
226 |
-ansys222 -j test_${SLURM_JOBID} -b -dis -np ${SLURM_DPC_NPROCS} -nt ${SLURM_DPC_THREADS} -i test.dat |
|
246 |
+ansys222 -j test_${SLURM_JOBID} -b -dis -np ${SLURM_DPC_NPROCS} -i test.dat |
|
227 | 247 |
``` |
228 |
-※バージョンにより実行コマンド名の語尾(バージョン番号)が異なります。 |
|
248 |
+※ ANSYSのバージョンにより実行コマンド名の語尾(バージョン番号)が異なります。 |
|
249 |
+ |
|
250 |
+ |
|
229 | 251 |
|
230 | 252 |
|
231 | 253 |
## 参考資料{#references} |
232 | 254 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,96 @@ |
1 |
+--- |
|
2 |
+title: Paraview |
|
3 |
+--- |
|
4 |
+ |
|
5 |
+[toc] |
|
6 |
+ |
|
7 |
+## Environment Settings{#enviroment} |
|
8 |
+ |
|
9 |
+### Software Version and System Requirements{#version} |
|
10 |
+ |
|
11 |
+The Paraviews shown in the table below are available. |
|
12 |
+ |
|
13 |
+|Version | Module File Name | System B/C | System G | Cloud System | Note |
|
14 |
+|--- | --- | --- | --- | --- | --- |
|
15 |
+|1.1.2 | paraview/5.11.0 | + | + | + | |
|
16 |
+ |
|
17 |
+\+ : Available for all users |
|
18 |
+ |
|
19 |
+\- : Not available |
|
20 |
+ |
|
21 |
+## Software Overview {#overview} |
|
22 |
+Paraview is an open source software that allows users to analyze and visualize data. |
|
23 |
+It can read a wide variety of data formats, and by using the server/client method, it can also process large data sets. |
|
24 |
+ |
|
25 |
+## How to Use{#usage} |
|
26 |
+### Setting Up Environment (Executing the module Command) |
|
27 |
+Set up the environment by executing the `module` command. (Load the version of the module file which you want to use.) |
|
28 |
+```nohighlight |
|
29 |
+$ module load paraview |
|
30 |
+``` |
|
31 |
+ |
|
32 |
+### How to Start (stand-alone method) {#run_standalone} |
|
33 |
+Execute the following command to start Paraview. Please refer to Interactive Processing (/run/interactive) for details on the tssrun command. |
|
34 |
+```nohighlight |
|
35 |
+$ tssrun -p gr19999b --x11 paraview |
|
36 |
+## The part *gr19999b* in the example must be changed to your own queue name. |
|
37 |
+## If you are not a personal or group course user, please enter "eb". |
|
38 |
+``` |
|
39 |
+ |
|
40 |
+#### Use of threaded parallel computing {#openmp} |
|
41 |
+If you want to start Paraview using multiple cores or threads, you can use the --rsc |
|
42 |
+option to specify the number of cores to be used and number of threads in parallel. |
|
43 |
+```nohighlight |
|
44 |
+## Example: When starting with 4 cores and 4 threads |
|
45 |
+$ tssrun -p gr19999b --rsc c=4:t=4 --x11 paraview |
|
46 |
+## The part *gr19999b* in the example must be changed to your own queue name. |
|
47 |
+## If you are not a personal or group course user, please enter "eb". |
|
48 |
+``` |
|
49 |
+ |
|
50 |
+### How to Start (server-client method) {#run_server_client} |
|
51 |
+ParavView's server-client mode can reduce the time required to analyze / visualize large data sets and expands the amount of data that can be analyzed / visualized at one time. |
|
52 |
+ |
|
53 |
+1. Execute the following command to start Paraview's server function. |
|
54 |
+```nohighlight |
|
55 |
+## 4 processes in MPI parallel, 10 cores per process and 4 threads allocated |
|
56 |
+$ tssrun -p gr19999b --rsc p=4:c=10:t=10 pvserver --force-offscreen-rendering |
|
57 |
+## The part *gr19999b* in the example must be changed to your own queue name. |
|
58 |
+## If you are not a personal or group course user, please enter "eb". |
|
59 |
+``` |
|
60 |
+If the server function starts without problems, the console outputs the followings. |
|
61 |
+```nohighlight |
|
62 |
+Waiting for client... |
|
63 |
+Connection URL: cs://xb9999:11111 |
|
64 |
+Accepting connection(s): xb9999:11111 |
|
65 |
+``` |
|
66 |
+The `Connection URL: cs://xb9999:11111` displayed is the host name and port information where the Paraview server function is running. |
|
67 |
+Please keep this information as it will be used in Section 5. |
|
68 |
+ |
|
69 |
+2. Launch a new console and start Paraview's client functions. |
|
70 |
+```nohighlight |
|
71 |
+## Example: Starting with 4 cores and 4 threads |
|
72 |
+$ tssrun -p gr19999b --rsc c=4:t=4 --x11 paraview |
|
73 |
+## The part *gr19999b* in the example must be changed to your own queue name. |
|
74 |
+## If you are not a personal or group course user, please enter "eb". |
|
75 |
+``` |
|
76 |
+ |
|
77 |
+3. Once ParaView is started, press the area circled in blue and display the Window for connecting to the server. |
|
78 |
+![](01_paraview_base.png?lightbox=80%&resize=500) |
|
79 |
+ |
|
80 |
+4. The administration screen of the server to be connected will be displayed, press the area circled in red. |
|
81 |
+![](02_choose_server.png?lightbox=80%&resize=500) |
|
82 |
+ |
|
83 |
+5. The new setup screen of the server will be displayed.In the text box labeled Host, |
|
84 |
+if the information displayed in Section 1. is **cs://xb9999:11111**, enter `xb9999-ib0` ( **hostname** + **-ib0**) . |
|
85 |
+In the text box labeled Port, if the information displayed in Section 1. is **cs://xb9999:11111**, enter `11111` (standby port number). |
|
86 |
+After completing the input, click the button marked "Configure" (circled in red). |
|
87 |
+![](03_edit_serverinfo.png?lightbox=80%&resize=500) |
|
88 |
+ |
|
89 |
+6. When the client is started, a screen for selecting whether or not to automatically connect to the server is displayed. |
|
90 |
+Select "Manual (default)" for "Startup Type" and click the button marked "Save" (circled in red). |
|
91 |
+![](04_save_serverinfo.png?lightbox=80%&resize=500) |
|
92 |
+ |
|
93 |
+7. When you return to the server selection screen, make sure that the server set in Section 5 is selected, and click on "Connect" (circled in red). |
|
94 |
+![](05_connect_server.png?lightbox=80%&resize=500) |
|
95 |
+ |
|
96 |
+With the above steps, some of the analysis/visualization processes will be available using a server launched with MPI parallelism. |