継続開発を最適化するモデルのモジュール化

Pythonで学ぶ離散事象シミュレーション

Diogo Costa (PhD, MSc)

Adjunct Professor, University of Saskatchewan, Canada & CEO of ImpactBLUE-Scientific

モデルのスケーラビリティとは?

  • 時間とともに機能を拡張する
  • 性能低下や破綻なしに

「スケーラブル」モデル

  • 一般的な意味: 需要に応じて容量を増やせる
  • 離散事象モデル: 拡張しても安定を維持できる

重要性

  • 長期的な成功と価値に不可欠
  • 進化できること
  • モデルのモジュール化など良いコーディング慣行
Pythonで学ぶ離散事象シミュレーション

スケーラブル vs 非スケーラブル

スケーラブルなモデル

コードを適切に分割し、構造を変えずにモジュールの追加・削除・置換が容易なため、よりスケーラブルなモジュール型モデルの図。

スケーラビリティが低いモデル

コードの分割が不十分で、構造変更なしにモジュールの追加・削除・置換が難しく、スケーラビリティが低い非モジュール型モデルの図。

Pythonで学ぶ離散事象シミュレーション

モデルのモジュール化

  • 交換可能なコンポーネント(モジュール)

  • プロセスを個別の関数に分割

  • モジュールを複数回呼び出す

  • 同じコードの複製は作らない

7つの関数で構成されたモデルで、アップグレードにより「func_b」を「func_b1」に置換し、「func_c」と「func_d」の間に「func_f」を追加した図。

Pythonで学ぶ離散事象シミュレーション

例: モジュールの置換と追加

旧バージョン

with counter.request() as request:
    yield request

    def func_a()
    def func_b()
    def func_c()
    def func_d()
    def func_e()

更新版

with counter.request() as request:
  yield request

  def func_a()
  # def func_b() # Module replaced by
  def func_b1()  # Module replacement
  def func_c()
  def def func_f()   # New module added
  def func_d()
  def func_e()
Pythonで学ぶ離散事象シミュレーション

演習に進みましょう!

Pythonで学ぶ離散事象シミュレーション

Preparing Video For Download...