「業務と関数精度」問題、「業務とrandom関数」問題 昔、あった本当の話。

By 岡田 - Posted: 2016/07/08 Last updated: 2016/07/09 - Leave a Comment
印刷用ページの表示 印刷用ページの表示
もう、20年以上前の話です。

顧客で稼動していた業務で関数精度とrandom関数について対応した事を思い出しました

業務と関数精度問題

本件は先日書いた「GWX問題」で思い出しました。

私が担当していた、コンピュータシステム(計画技術計算システム)で発生した問題です。

VOS3のFORTRAN言語「OFORT77 E2」のバージョンアップで関数精度が向上されました。
(具体的なバージョンまでは忘れましたが、、)

しかし、これが担当顧客に指摘をされたのです。FORTRANのバージョンアップによって関数精度が向上された結果、計算結果が大きく変ってしまったと、、

顧客曰く、計算結果が大きく変ると、対応方法が今までと違う形となるため、困るのだそうです
(具体的な話は教えていただけませんでしたが、プリンタ用紙には計算結果と思われる数字(小数点第12位)がずらりと並んでいた記憶があります

FORTRANの開発部署は良かれと思って実行したことが、担当顧客には伝わらない結果となったのです。

開発部署を顧客先に呼び、顧客と自分たちを含めた会議が続きました。

結論として、今後OFORT77 E2を関数精度向上直前のバージョン(旧バージョン)と、関数精度向上後のバージョン(新バージョン)の2つのバージョンを同じコンピュータシステムで共存させていくという「2バージョン管理」になりました

実行時ライブラリ、コンパイル・リンケージ等のカタログドプロシジャ等ほぼ全てのデータセット・メンバを分けて管理する事になり、以後のOSバージョンアップ時にかかる労力が2倍に、SUT(PTF)も2つのバージョンについて調査・管理が必要となりました。管理側だった私たちは、異なる製品を管理している感覚に陥りました。

業務とrandom関数問題

私と同じ部署のメンバーが主担当だった顧客で発生した問題です
こちらの顧客は上記と異なり異業種ですが、業務とrandom関数という関係がユニークなので書きたいと思います。

始めに、、
random関数は乱数を発生させる関数で、ゲームに欠かせない関数です。
利用者が意図しない「想定外な結果」(プログラムで制御できる範囲で)が必要な時に用います。

当顧客ではあるデータを一覧にする際、公平性を保持するためプログラム内でrandom関数を発生させた結果で並び順を決め、一覧を作成する業務がありました。

ある時、random関数のアルゴリズムが「本当に公平性を持っているのか?」と顧客に問われた事がありました。
言語は「COBOL85」だったと思います

結果として顧客は日立が提供しているCOBOL85のrandom関数が公平性を持っている事を認めてくれました。


私は最初、上記の内容を知った時「random関数」(想定外の事をしたい)と「業務」(プログラム・JCLで記述した想定通りの事を処理したい)という言葉がまったく結びつかなかったので、20年以上経った今でも記憶していました。

当時まだ、random関数を「公平性」という視点から考えることができませんでした。
「random関数=ゲーム」という概念がずっと頭の中に染み付いているためです
コンピュータに関わって長いですが、(ゲームでない)仕事でrandom関数が議論されたのは本件だけです。
Posted in つぶやき・雑感 • • Top Of Page