Intel DevCloud for the Edge を使い倒す(その4)

Intel DevCloud for the Edge を使い倒す(その3) から続く記事の4回目です
今回は実際に実行してみます
( Intel DevCloudの記事はこちら

DevCloud for Edge内でのEdge Serverでの実行は処理をQueueに入れて実行させる形式となります
こちらのQueueを取り扱うQueueサーバーも存在しますが、あまり気にする必要は無く、Queueに入れるコマンドが扱えればユーザーにとっては問題になりません

Queueを扱うコマンド群
pbsnodes: 使用可能なサーバーの列挙
qsub: queueの登録
qstat: 自分が実行したqueueの状態
qdel: queueの削除

他にもありますが、これだけ覚えておくとなんとかなります
詳しくはここにあります

勘のいい人は Development ServerとEdge Serverのデータのやり取りはどうするの?と疑問になりますが、これはストレージが共有されているので、Edge Server上ではDevelopment Serverのストレージが見えることとなります
下記のIntelからの図のリンクだとStorageは離れているように見えるのですが、Edge ServerとNFSで接続されているようです

https://devcloud.intel.com/edge/get_started/devcloud/ より

では、実際にqueueに処理を投げてみましょう、の前に処理をスクリプトにしてください
シェルスクリプトであれば、標準出力はファイルにしてくれるのであまり何も考えなくて良いと思います
まずはテストとして、test.bashというスクリプトを作成して実行してみましょう

#!/bin/bash

echo "@@@"
lscpu
echo "@@@"

下記が実際にqueueに処理を投げたところです
まず、qsub -l nodes=1:idc008u2g test.bashとして処理を投げます
nodes=1:idc008u2gはおまじないのように見えますが、idc008u2gは同じスペックのマシンに付けられた名前です
ですので、空いている idc008u2g に処理を投げることができます
他にもskylakeというようにpbsnodesで得られた文字列で実行の指定ができます

実行がqstatで3209というjobが登録されているのが分かります
しばらくすると、実行ディレクトリにtest.bash.o3209と言うファイルが生成されますので、それを見てみると、指定したスペックのマシンで実行した結果が得られます

u41585@s099-n003:~$ qsub -l nodes=1:idc008u2g test.bash
 3209.v-qsvr-2.devcloud-edge
 u41585@s099-n003:~$ qstat
 Job ID                    Name             User            Time Use S Queue
 3109.v-qsvr-2              …ub-singleuser u41585          00:00:59 R jupyterhub     
 3209.v-qsvr-2              test.bash        u41585                 0 R batch          
 u41585@s099-n003:~$ qstat
 Job ID                    Name             User            Time Use S Queue
batch          
 3109.v-qsvr-2              …ub-singleuser u41585          00:00:59 R jupyterhub     

 u41585@s099-n003:~$ less test.bash.o3209
 u41585@s099-n003:~$ cat test.bash.o3209
 #
 Date:           Fri May  1 22:08:18 PDT 2020
 Job ID:           3209.v-qsvr-2.devcloud-edge
 User:           u41585
 Resources:           neednodes=1:idc008u2g,nodes=1:idc008u2g,walltime=01:00:00
 #
 [setupvars.sh] OpenVINO environment initialized
 @@@
 Architecture:        x86_64
 CPU op-mode(s):      32-bit, 64-bit
 Byte Order:          Little Endian
 CPU(s):              4
 On-line CPU(s) list: 0-3
 Thread(s) per core:  1
 Core(s) per socket:  4
 Socket(s):           1
 NUMA node(s):        1
 Vendor ID:           GenuineIntel
 CPU family:          6
 Model:               92
 Model name:          Intel(R) Atom(TM) Processor E3950 @ 1.60GHz
 Stepping:            9
 CPU MHz:             1171.636
 CPU max MHz:         2000.0000
 CPU min MHz:         800.0000
 BogoMIPS:            3187.20
 Virtualization:      VT-x
 L1d cache:           24K
 L1i cache:           32K
 L2 cache:            1024K
 NUMA node0 CPU(s):   0-3
 Flags:               fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc a
 rt arch_perfmon pebs bts rep_good nopl xtopology tsc_reliable nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 ds_cpl vmx est tm2 ssse3 sdbg cx16 xtpr pdcm sse4_1 sse4_
 2 x2apic movbe popcnt tsc_deadline_timer aes xsave rdrand lahf_lm 3dnowprefetch cpuid_fault cat_l2 ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust smep erms m
 px rdt_a rdseed smap clflushopt intel_pt sha_ni xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts md_clear arch_capabilities
 @@@
 #
 End of output for job 3209.v-qsvr-2.devcloud-edge
 Date: Fri May  1 22:08:19 PDT 2020
 #
 skipping application metrics
 Your telemetry account is not created
 skipping telemetry
 u41585@s099-n003:~$ 

ここまできたらあとは処理をスクリプトに書いて、どんどん作成すれば良いことになります

つづく