アフィリエイト広告を利用しています
G-QVESCNWRVH

2020年06月27日

単一レベル記憶・・・・について (Part 3)

前回・・・AS400を開発したIBMのマジック・・・

高速なメモリも低速な周辺記憶装置もCPUから見たら同じレベルの高速なメモリとして扱えるようにしちゃったんです。

で終わりました。

では、このマジックの種明かしは・・・

その前に、比喩としてこんな状況を想定してみましょう。

あなたはCPUです。
あなたが仕事をするためには書類を読んだり、書類を改訂したりすることが必要です。
そして、その書類を置くための机が必要です。
書類は重ねて机の上にはおけません。
しかし、机の上の書類は近くのものも遠くのものも同じように読んだり書いたりできます。
あなたはとっても視力が良く、また手が必要に応じて伸び縮みします。
あっ!そうそう、書類はA4サイズです。縦31cm 横25.7cm・・・ぐらいですね。

さて、このような状況の中で、あなたが効率よく働けるためには、どうしたらいいでしょうか。
机は標準的な70cm X 140cmが置かれています。
この机にA4書類は何枚置けるでしょうか。
計算すると10枚でした。

あなたは10枚にはほとんどロスタイムなしにアクセスできます。

さて、あなたのボスが書類を100枚持ってきて、『この書類を処理してくれ・・・』と言いながらあなたの机の引き出しに入れて去っていきました。

あなたは、どのように処理するでしょう。
(1)引き出しから書類を10枚取り出して、机の上に並べます。
(2)机の上に並べた書類を処理します。
(3)机の上の書類を引き出しに片付けます。
(4)引き出しから次の10枚の書類を取り出して机の上に並べます。
(5)机の上に並べた書類を処理します。
(6)机の上の書類を引き出しに片付けます。
(7)引き出しから次の10枚の書類を取り出して机の上に並べます。
(8)机の上に並べた書類を処理します。
(9)机の上の書類を引き出しに片付けます。
と、これを100枚処理が完了するまで繰り返します。

さて、半分くらい処理を終えたところでボスが来て、『出来たか?』
あなたは、『一生懸命、頑張ってますが、まだ半分です。』と答えます。
すると、ボスは『君の処理能力ならとっくに済んでいるはずだがなぁ・・・』『さぼっているわけでも無さそうだし・・・』
あなたは、ひらめきました。『ボス、机を今の10倍の大きさにしてください。』
ボスは『うむ、それで君の仕事が早く終わるんなら安いもんだ!』

次の日、同じようにボスが『この書類100枚を処理してくれ』と引き出しに入れて去っていきました。
あなたは、『ようし・・・パッパッと仕上げてしまおう』と意気込み、
(1)引き出しから書類を100枚取り出して、机の上に並べます。
(2)机の上に並べた書類を処理します。
(3)机の上の書類を引き出しに片付けます。
終わりっ!
もう、一瞬で終わってしまって、ボスが来ることを待つまでも無く、ボスのところへ行き、『ボス、完了しました!』と誇らしげに報告しました。
ボスは、『えっ? もう? 君はすごいなぁ!』と褒めちぎりました。

さて、この比喩は、
あなた・・・CPU
机の上・・・メモリ
引出し・・・周辺記憶装置(ハードディスクなど)
を表しています。

パソコンを早くする方法の一つにメモリを増設する手がありますね。
それは、上記の比喩、そのまんまです。
コンピュータの世界では、
 机の上の書類の処理速度 : 引き出しから出し入れ処理速度
=メモリアクセススピード : HDDアクセススピード
=100 : 1
ぐらいです。
100倍も差があるんですよね。

この事を頭にいれて、さっきのあなたの仕事ぶりを振り返ってみましょう。
ここで、書類1枚の処理に1秒かかるとしましょう。

(1)引き出しから書類を10枚取り出して、机の上に並べます。    1000秒
(2)机の上に並べた書類を処理します。                10秒
(3)机の上の書類を引き出しに片付けます。            1000秒
(4)引き出しから次の10枚の書類を取り出して机の上に並べます。  1000秒
(5)机の上に並べた書類を処理します。                10秒
(6)机の上の書類を引き出しに片付けます。            1000秒
(7)引き出しから次の10枚の書類を取り出して机の上に並べます。  1000秒
(8)机の上に並べた書類を処理します。                10秒
(9)机の上の書類を引き出しに片付けます。            1000秒
★(7)から(9)をあと7回繰り返します。
全て合計すると、20,100秒ですね。 5時間35分です。
ってことは余談ですが、ボスは 2時間17分ぐらい経ったころにに来たわけですね。

さて、大きくなった机ではどうでしょうか。

(1)引き出しから書類を100枚取り出して、机の上に並べます。   10000秒
(2)机の上に並べた書類を処理します。                100秒
(3)机の上の書類を引き出しに片付けます。            10000秒

合計で20100秒ですね。

あれっ?高速化できてません・・・

実は、このような逐次処理の場合は、それほど効果は表れません。

しかし、コンピュータプログラムでは、逐次処理はあまりありません。繰り返し処理の方が圧倒的に多いです。
すると、引き出しの中から出し入れする回数が飛躍的に増えます。

ちょっとややこしいので割愛しますが、例えば、書類100枚をすべて1000回ずつ処理するとした場合、計算してみると、
前のパターンでは、20,100,000秒
後のパターンでは、    30,000秒
となります。
大幅に違いますよね。

単純なキャッシュでもこれほどの効果が上がります。

IBMの単一レベル記憶では・・・

実は単純なキャッシュは、CPUであるあなた自身が引き出しの中と机の上の書類の出し入れを行います。
しかし、単一レベル記憶では、別な誰かが、あなたがそろそろこの書類を処理しそうだと判断して、あらかじめ引き出しから机の上に出してくれます。そして、処理し終えた書類は別な誰かがその書類を引き出しに片付けてくれます。

そうです、あなたは書類の処理だけに専念できるのです。

このために、最速で処理が行えるわけです。

このような単一レベル記憶は、IBMのSystem/38の時から導入され、AS/400, iSeries, PowerSystemsへと受け継がれてきています。

そして、これらはプログラムやデータベースのアクセス速度の改善に大きく役立っています。
その素晴らしさを体験すると、とりこになってしまうこと間違いなしです。

2020年06月26日

単一レベル記憶・・・について (Part 2)

前回はAS400の単一レベル記憶のおかげで、データベースアクセスがめちゃくちゃ早いっていうことをお話ししました。

そして、この単一レベル記憶はスーパー進化したキャッシュみたいなものだとも言いました。

キャッシュはご存じですよね。もし、ご存じなかったら・・・コメントください。個別説明します

さて、CPUコアにもキャッシュが存在しています。
CPUはどんどん進化し高速化してきていますが、メモリはそれほど高速化されていません。
ましてやハードディスクなどは・・・今ではオールフラッシュもありますが・・・

コンピューターを高速化するには、まずCPUを高速化し、メモリを高速化し、周辺記憶装置を高速化していけば、確かに早くなります。 ただ、CPUだけを高速化してもメモリや周辺記憶装置が遅ければ、全体として遅くなるのは目に見えています

それは、こんな感じです。 軽トラにF1のエンジンを積んでも時速300キロはでませんよね。
タイヤが持ちません。エンジンの大パワーが路面とタイヤの摩擦力を上回って、タイヤが虚しく空回りするだけです。
CPUを高速化しただけのコンピューターもそうです。 CPUだけでは動きません。メモリに格納されている命令(機械語)を読み出し、それに従ってメモリや周辺記憶装置をアクセスしにいくんです。 CPUがメモリに、このアドレスのデータをくれ!って指示しても、メモリはなかなかデータを渡してくれません。CPUはひたすらそのデータが来るのを待つばかりです。これが繰り返されるのです。しかして、ある時間のうち実際にCPUが働いている時間はごくわずか。残りは待機しているのです。
まさしくCPUが空回り
では、どうすればいいでしょうか?

メモリを極限まで高速化すればいいんです。 CPUを待機させないぐらいに高速なメモリに・・・
ただし、早くはなるけど、べらぼうにコストがかかりますねー

えっ? じゃあどうすればー?

そこで、キャッシュの登場です。

CPUの近くには高速なメモリを少し、その次には少し高速なメモリを少し多めに、残りは低速な周辺記憶装置をたっぷりと。

こうすると、CPUは近くの高速メモリをアクセスして待機時間がみじかくなり、満足します。
しかし、高速メモリはちょっぴりなので、CPUが必要とするデータをいつも保持しているわけではありません。
CPUが要求したデータがないと、CPUは少し高速な方から読んでこんかい!って指示を出して、待機します。その後は満足げに仕事をします。
ただ、少し高速なメモリも少し多めにあるだけなので、大量のデータを扱う処理をCPUがしている場合は、すぐにCPUに要求データを返せない状態になります。そうすると、もっと低速な周辺記憶装置から読み込まなくてはいけません。ここでまた待機時間が発生しますよね。これがCPUのパフォーマンスを下げる要因になります。

そこで、IBMは考えました。
全部、高速なメモリにしちゃえ!
そうすると、CPUはデータを欲しいときに得ることができ、待ち時間を最小限にできるから、CPUをとことんこき使うことができる

でも、最初に言った通り、そんなことしたらお客さんが居なくなるほど高価なコンピュータになっちゃうでしょう。
そこで・・・CPUにはぜーーーーんぶメモリが乗っているように勘違いさせて、実はメモリの向こうに周辺記憶装置があるような仕組みを考えちゃいました。
それが単一レベル記憶です。
何が単一レベルかと言うと、高速なメモリも低速な周辺記憶装置もCPUから見たら同じレベルの高速なメモリとして扱えるようにしちゃったんです。

あっれー! 長くなり過ぎたので、続きは次回に・・・

posted by Y.Taki@AS400 at 21:05| Comment(0) | TrackBack(0) | AS/400

2020年06月25日

単一レベル記憶………に付いて

AS400を使っていて不思議に思うこと………

昨晩の投稿で、レコード数が十億を越えてるのにそれを感じさせないアクセススピード!

AS400ちゃんは手を抜くわけでもなくきちんと仕事をしてくれる

結果は正しく返してくれる!
早くて正しい仕事、見習いたいものだ(*^▽^*)

冗談はさておき、ほんと、良くできたOSとデータベースです!

さて、新しいシステムを作るとき非機能要件ってのがあって、これを決めないと、出来上がってきたシステムがもしかしたら使い物にならない場合がありますよね!

例えば、有る仕事をコンピューターにさせるため、仕様書を作ってプログラムを作ってもらうとします。

ただ、入力がこんなで出力がこんなプログラムを作ってって頼むとその通りに出来上がってくるでしょう!

ただ、それを使ってみたら、今まで処理時間が2時間もかかってて、それじゃ遅すぎるから頼んだのに、出来上がったプログラムを動作させると4時間かかった_| ̄|〇 なんてことになると、プログラムを作ってくれた人にお金を払うどころかどつきたくなりますよね(*^▽^*)

なので、入力がこんなで出力がこんなで………の他に非機能要件として、例えば10分以内で完了することって要件を提示するんです。

以前、当社の基幹システムを別システムに置き換えようとした動きがありました。これは当然当社のシステムを嫌いなグループ親会社の人間の陰謀です(笑)

当然、現在の機能はそのままにすること………が最低条件ですね。当然です。親会社はソフトウェア外注(自分で作らない・・・作れない)なんです。
つまり、お金がかかるわけです。
せっかくお金をかけるんだったら、こんな機能やあんな機能やそんな機能が欲しくなりますよね。全く同じ昨日ならお金をかける意味がないですから。
ただ、その陰謀はとにかくAS400を排除したかったんです。

まぁ、百歩譲ってそれもありとしましょう。すると、置き換えるにあたって現在の機能はそのままにするとともに、所要時間の制限を加えることにしました!当然ですよね!

で、困ったのはそこからです。
測定可能な時間をかけて動作する処理プログラムを探し始めたんですが、なかなか見つかりません。もちろん、通常の処理データ量でです。丸一日かけて見つけました!
そのプログラムは開始してから終了するまで3分ほどかかったのを覚えています!

やったー!
って思いました!
時間のかかるプログラムを見つけて喜ぶのも変ですがね(*^▽^*)

で、時間を正確に計るためにもう2回計ることにしました。パソコンと違って、多数のジョブが平行に稼働しているホストコンピューターでは他のジョブの影響も受けるだろうから、三回計測して平均を出そうと!

そしてプログラムを呼び出し、さっきと同じデータ量で処理させる範囲を設定し、実行を指示!

あれっ!

何故か2秒ちょっと???

範囲を間違えたのか?と思い確認したけれども、ミスはない!
もう一度!

あれっ!やっぱり2秒ちょっと!

何でやーって………ふと、AS400のアーキテクチャーで単一レベル記憶ってのが有ったことに気付きました!いや、思い出しました!

まぁ、ざっくり言うとキャッシュメモリのスーパー進化版みたいなもんですね!
ざっくり過ぎましたか(笑)

単一レベル記憶の説明は次回に・・・
posted by Y.Taki@AS400 at 19:42| Comment(0) | TrackBack(0) | AS/400

あらら………二重投稿

昨晩、十億越え………を2回も投稿しちゃってました

やっぱり寝る前のぼけぼけの頭では訳の分からんことをしてしまいますね

お許しくださいませ

2020年06月24日

おーーーー十億越え

今日も、新システムのための会議にどっぷりつかっていました

その新システムに私の会社の基幹システムをも包含してしまう予定なので、コンサルより主要データベースの容量とレコード数を調査してほしいと要望されました。

そこで、AS400の(IBM i オペレーティングシステム)のツールで、ちょこちょこと運用中のデータベースのうち主要なものの容量(サイズですね)と、レコード数を調べました。

で、一覧にしていると、サイズの一番大きいので 229GByte、レコード数の一番多いので10億レコード

おー! 遂に10億レコードを超えるデータベースができちゃったかー(笑)

それでも、アクセススピードは・・・全然遅くない・・・どんなつくりになっているのかなー???
って思っちゃうぐらい早い!!!

このうなるような性能のデータベース DB/400 がOSに無料でついてくる・・・・お得やと思うのになぁ

って思いながら資料を作り提出しましたー
posted by Y.Taki@AS400 at 23:58| Comment(0) | TrackBack(0) | AS/400

2020年06月23日

またまた、やられてしまった・・・・

何のために、京都から横浜まで来ているのだろう。

私の会社は京都にあり、AS400を核としたデータベース一元管理システムなんです。

横浜にあるグループ本社のシステムは汎用コンピューターが核にあるのはいいけれど、周辺にたくさんのウインドウズサーバーがあり、それぞれにデータベースを持っているので、データを同期するためにバケツリレー

そんなグループに新受付システムを導入しようと、いま要件定義の真っ最中(要件定義・・・どんなシステムにしようかとドラフトを作ること)。

その会議に参加するために横浜に来ているのに、グループではまだしたことがないこと・・・でも私の会社では何年も前からしていること・・・に言及したとき、どうしようか迷っていたので、私の会社の運用を発言したところ、上司が『いいから、話さないで』と身振りで私を制した・・・・

なんでー?

私の参加意義は何なのー?

なぜ、先行している私の会社のノウハウを知ろうとしないのー?

こりゃ・・・・幸先悪いな
posted by Y.Taki@AS400 at 22:43| Comment(0) | TrackBack(0) | AS/400

ゆううつな火曜日・・・から木曜日(笑)

毎週火曜日から木曜日は、横浜のグループ本社で新しい依頼受付登録システムの要件定義を行う会議に参加することになっています。

しかし、私の所属する会社はAS400を基幹システムとして、DBの一元管理をしているのに、グループの他社(本社も含めて)は、機能ごとにサーバーを立てて、それこそデータのバケツリレーを行っています。
この機能ごとのサーバーというのが、Windows系のサーバーで、ご存じの通りデータベース機能はありません。なので外部データベースエンジンを導入して運用することになります。
今回の新しい依頼受付登録システムにはOracle DB Enterprise Editionをベンダーから進められています。

さて、皆さんは、どちらがいいと思いますか?

A.AS400で全機能をまかなう
B.機能ごとにサーバーを立てて分業させる。

私は思うんです。
1.1台のコンピューターで全機能をまかなえたら(能力的に)DBは一元管理の方がデータを管理しやすい
2.1台のコンピューターで全機能をまかなえたら、ハードウェアが少なくてすむ。
3.1台のコンピューターで全機能をまかなえたら、システム部員がコンピューターのおもりをする時間が減る
4.1台のコンピューターで全機能をまかなえたら、開発が楽

しかし、これを実現するためにはある一つの制約があります。
それは、

自分でアプリケーションの開発ができること

1から4の恩恵を受けるためには必須です。
そして、アプリケーションの自社開発ができれば何がいいかというと、

1.現場からの要望に即応できる
2.アプリケーション開発コストは0(しいて言えばシステム部員の人件費のみ)

どうでしょう?

最初に述べたAとBのどちらが理想的?でしょうか。

私はAで運営してきた会社からBで運営する他社の機能の一つの開発のために毎週火曜日から木曜日まで横浜にて勤務しています。 結構、疲れますね。 なので火曜日が憂鬱なんです。

できれば、コメントを頂けたらありがたいですm(__)m
posted by Y.Taki@AS400 at 05:03| Comment(0) | TrackBack(0) | AS/400

2020年06月22日

週初めから・・飛ばしてる

今日もAS400のおひざ元で仕事しています。

なぜか、安心するのはなぜかしら

今、抱えている案件の為の変更で、先週2回ほど不具合を出しちゃって凹んでます

しかし、部下が直ぐに対応してくれたので事無きを

これもAS400の良さですよね。
他人のプログラムでも、共通基盤が有れば簡単に解読できて対応できる・・・

さて、これからもう少し安心してバグをだそー!

失敗を恐れては何も出来ないからー
posted by Y.Taki@AS400 at 16:48| Comment(0) | TrackBack(0) | AS/400

2020年06月21日

さて・・・今日も仕事しようかな・・・

今、抱えている案件がかなりなんです。

本当なら0000;">3か月ぐらいかかるような案件なんです。

しかし、社内SEという立場上、現場からの要望は極力聞かなきゃならないんで、今月中に仕上げないと・・・

コロナのせいで、在宅勤務とかリモートワークとかを知らない人が居ないぐらい有名になりましたが、私の方はずーーーーーーーーーっと前から、20世紀のころから(笑)やってます。あくまで緊急時のみですけどね。

さて、頑張ります。
posted by Y.Taki@AS400 at 17:42| Comment(0) | TrackBack(0) | AS/400

日曜日・・・フリータイム?

おはようございます。

今日は日曜日・・・フリータイムの日です。

しかし、昨今、全くのフリータイムを過ごしておられる方はどれだけおられるでしょうか?
かく言う私も日曜日には、毎週決まったスケジュールを持っており、フリータイム・・・とは言えないかも。

しかし、日曜日のスケジュールは自分で選んだものであり、その観点から行くと、そのスケジュールをこなす自由、こなさない(破棄する)自由があるといえば、フリータイムなのでしょう

さて、日曜日に持っている計画とは、教会に行くことです。
私はクリスチャンなので毎日曜日に教会に行き、礼拝をささげています。

そして、教会では会計を担当しています。
教会は宗教法人なので、それなりに会計をきちんとしていないとダメなんです。

消費税が無い(非課税)なので、その分楽なんでしょうが・・・

さて、会計をするうえで必要なものは紙と鉛筆・・・ではなくて、パソコンですね。
会計処理をするために使用しているソフトは、Microsoft Excelです。

一年間の全出納を入力しても2000行にも満たない小さなファイルです。

でも、収支報告書やPL図などを自動的に作り上げられるようにしているので、セルにはたくさんの数式、そしてたくさんのマクロが存在しています。

なので、1個のセルを変更すると、『うっ』って一秒まではいかないですが、待たされます。
これが、結構ストレスになります。

そんな時にふと頭をよぎるのは・・・
・VBで作り直そう
・AS400があったらなぁ〜〜
です。
どちらでも作れるのですが、
 VB:プログラムがめんどくさい。 でも、開発環境は無料で手に入る
 AS400:DBが超早い。プログラミングも簡単すぎる。  でも、宗教法人ごときにおいそれと買える代物ではない
と、言うことで、VBで作り始めはしているものの、気力がわかず、つい最初のフォームだけ

あ〜あ! どこかにAS400が落ちていないかなぁ〜〜
posted by Y.Taki@AS400 at 07:19| Comment(0) | TrackBack(0) | AS/400
ファン
検索
<< 2020年06月 >>
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30        
最新記事
写真ギャラリー
最新コメント
タグクラウド
カテゴリーアーカイブ
プロフィール
Y.Taki@AS400さんの画像
Y.Taki@AS400
IBM AS/400で稼働するシステムの開発・追加を担当して30年以上になります。使えば使うほどこの AS/400 が好きになりました。 こんなSEがいろいろな視点から様々な業務などについて語ります。
プロフィール