PS2200 (6) バッチ処理時間を計測
デマンド端末で少し遊んで終わりにするつもりでしたが、最後に、大量のバッチ処理がどのくらいの時間で終わるのかの計測です。というのも、現役時代に数百個のバッチ処理テストが当時の超大型機1100/90で5~6時間必要で、テープのマウントやジャーナルの整理を含め徹夜のマシンタイムが楽しい(?)イベントだったからです。昔の汎用機と今のパソコンとではどのくらいスピードが違うのでしょうか。やってみました。
ROSモードで、「(4) プログラムの翻訳と実行」と同じCOBOLのコンパイル~実行を行う300個のバッチ・ランを作り、並行処理を行います。
いきなり大量のバッチを走らせるのは乱暴なので、試しに一つだけ動かします。
USER画面(ROS)
@ELT,ID BATCH.BATCH/SINGLE
@RUN RUNS,0,PS2200 - (1)
@UCOB,S TEST.PROG,OBJ - (2)
@XQT OBJ - (3)
@END
バッチのランストリーム(1)~(3)をBATCHファイル内にエレメントBATCH/SINGLEの名前で作ります。
バッチ・ランを構成するEXEC制御文はデマンド・ランと同じで、IBM系のジョブステップに相当する書き方はありません。リソースのデッドロックを防ぐには、プログラム実行前に@ASG制御文でファシリティ(≒リソース)を割り当てておき、実行後に@FREE制御文で解放します。これをファシリティ・ブロックと呼びます。IBM系のTSO(Time Sharing Option)のALLOCATE/FREEと似た使い方です。今回はデッドロックの心配がないので、@ASG/@FREEは省略してあります。
バッチの起動は、システム・コンソールからSTキーインを入力する方法と、別のランから@START制御文を実行する方法があります。ここでは、先ほど作ったランストリームを@START制御文で起動します。
USER画面(ROS)
@START BATCH.BATCH/SINGLE
ROSコンソール
RUNS START RUNS FIN SQ PR * PR: RUNS PR 3 EPGS M
正常終了しました。3ページのプリントファイルができています。ROSにはプリンタがコンフィグされていないので、SOSのPR2にキューして印刷します。デマンドからPS2200の拡張機能であるP22PRINTを使います。
USER画面(ROS)
@P22PRINT RUNS,PR2
このPDFが作られました。
さて、本題の大量バッチの実行です。システム・コンソールで最大バッチ数を500に増やし、コーススケジュラーを一旦ホールドします。
ROSコンソール
B 500 CS H
デマンド端末からSSGプロセッサを使い300個のランストリームを作成して起動します。次の内容のエレメントを用意して、@ADD制御文で実行しました。
USER画面(ROS)
@ASG,T PR @BRKPT PRINT$,PR @SSG,I SKEL *INCREMENT SEQ TO 300 #ELT,ID BATCH.BATCH/[*SEQ] #RUN RUN[*SEQ],0,PS2200 #UCOB,S TEST.PROG,OBJ #XQT OBJ #END #START BATCH.BATCH/[*SEQ] *LOOP @EOF @EOF @BRKPT PRINT$
300個のバッチ・ランが待ち状態になっています。
コーススケジュラーをアクティブにします。
ROSコンソール
CS A
すると、バッチ・ランが順次実行に移り300個が同時に動いています(注:301個の内の一つはRSIOをシミュレートする常駐バッチP22SIO)。IP利用率が99%に達しています。こんな数字、以前には見たことがありません。
Windowsの状態は、次の通りです。CS AキーインをしてしばらくはCPUに山がありますが、バックログが捌けてからは15~20%を推移しています。ディスク(Cドライブ、SSD)は、ほとんどゼロです。
300個のバッチ処理が終了するまでの時間は、僅か3分でした。冒頭に書いたようなマシンタイムで徹夜した時代が嘘のようです。最近のメインフレームは最上位機種までもがインテルベースであることを納得させられる結果になりました。もちろん、市販されているメインフレームは、可用性や信頼性などがパソコンと比較にならないほど高く作られていることは言うまでもありません。
まとめ
ライセンスの取得からインストール、ROSモードを中心とした簡単な動作を確認しました。今回は試せていませんが、PS2200にはトランザクション処理のTIP(Transaction Interface Package)も備わっています。興味がある方は挑戦してみては如何でしょうか。
(おわり)