シミュレーションとプログラミング言語
シミュレーションの仕事をしていると、大量の計算作業が発生する事があります。少しずつパラメータを変更して、効果の検討であったり、単に複数条件の検討だったりと、1つ1つの変更箇所は少ないのですが、これが数十パターンにも及ぶとかなりの手間になります。また、うっかりミスですべての計算をやり直すような危険もあるので、それなりにストレスの溜まる作業です。
計算案件が大量にやってきた
先日、とある仕事で数十パターンの計算の実行と、さらに計算結果を加工する案件が発生しました。内容を検討すると計算の回数は多いものの、すべて一定の規則で条件を変更、繰り返し処理できる内容でした。
繰り返しは得意
この手の繰り返しパターンはコンピュータが得意とする分野です。
早速、数十行ほどのプログラムを試作したところうまく処理できそうなことが分りました。
プログラミング言語には計算処理に向いているもの、テキスト処理に向いているもの、Webサイトの構築用など、用途によって様々なものあります。環境工学の分野の計算ではFORTRANがよく使われています。
今回の案件では既存プログラムを使うので、C#を使って計算パターンごとに計算に必要なデータや設定を自動生成しました。そして、実際の計算はバッチファイルを書き出して間接的にプログラムを実行する方法です。この手法は化石クラスの古典的なやり方ですが繰り返し計算には効果絶大です。※
対応の幅を広げる
一過性のプロジェクトなので、人海戦術で対応する方法もあったのですが、後から条件が増えたり、設定をミスって振出しに戻ることもあり得ます。
前者はクライアントの依頼などでありがちですが、数十計算を終えた後にうっかり間違いに気づいた時の精神的なダメージは計り知れません。(いやほんと、絶望的な気分になります)
プログラムで仕組みを整えておくと、ちょっとした変更で再計算に臨めるため、かなりストレスが軽減されます。手作業による間違いも防げます。結果的に作業のログとして残るので、何か問題があっても検証がしやすくなります。
なにより気軽に変更できるので対応の幅が広がります。計算結果を検討して試行錯誤もやりやすくなるので、最終的にはクライアントの利益にもなります。
プログラミング言語
シミュレーションツールは便利なツールですが、合わせてプログラミング言語も何かしら覚えておくと応用が効きます。
プログラミング言語は用途によって向き不向きはありますが、基本的な考え方は同じです。何でも良いので1つ憶えておくと良いでしょう。
個人的には今回使ったC#なんかデスクトップからスマホまで使えてお勧めですが、ちかごろはPythonなんかも面白そうでお勧めです。