表示調整
閉じる
挿絵表示切替ボタン
▼配色
▼行間
▼文字サイズ
▼メニューバー
×閉じる

ブックマークに追加しました

設定
0/400
設定を保存しました
エラーが発生しました
※文字以内
ブックマークを解除しました。

エラーが発生しました。

エラーの原因がわからない場合はヘルプセンターをご確認ください。

ブックマーク機能を使うにはログインしてください。
空想科学オカルト小説 南方呪術島の冒険  作者: 雲居 残月
第一章 南海の孤島リベーラ
4/56

第四話 二万ミリ秒からの高速化

 メンデス・ロボット・ラボラトリの建物は、アイスホッケー場ほどの大きさだった。外側は灰色のコンクリートがむき出しで、一階はトラックが通れそうな金属製の扉がいくつかある。二階の窓からは棚や机が見えた。

 一階が工房で、二階が事務所なのだろう。建物と塀のあいだは庭になっており、雑草がきれいに刈り取られていた。


 車寄せの屋根の下で車は停まった。入り口の周辺には、椰子が植えてある。レオナルドは降りるように言われて、扉を開けて地面に立った。


「こっちだ」


 ギレルモが建物に入る。ノートパソコンを抱えたカルロスがあとに続く。レオナルドもあとを追い、階段を上る。


 廊下を進み、会議室に通された。室内にはホワイトボードがあり、木製の机や椅子が並んでいる。

 ホワイトボードに近い机に、パソコンが一台あった。ギレルモに促されて前に座る。自分のノートパソコンを使うのではないのか。持ってこさせたのにと疑問に思う。


「次の試験だ。まずは開いているファイルのプログラムを実行しろ」


 レオナルドはモニターを見る。画面に統合開発環境のウィンドウがある。レオナルドはソースコードを確認した。forでループが回してある。回数は一万回。そのあいだに、百行を超えるプログラムが書いてある。


 マウスを握ったレオナルドは、実行ボタンをクリックした。開始時間が画面に出て、しばらくしたあとに計算結果が出力される。その下に、先ほどの時間からの経過時間が表示される。

 二万ミリ秒。秒に直すと二十秒だ。一ループあたりの消費時間は二ミリ秒。かなり重い処理だ。


「このプログラムを高速化しろ。制限時間は十分だ」


 ギレルモは腕時計を見て告げた。どこまで高速化しろという指示はない。どのレベルまでできるのか見るということか。


 レオナルドは考える。時間は十分しかない。一度の実行テストには最大二十秒かかる。十回テストをおこなえば二百秒、三分以上の時間を失う。

 まずはループの回数を書き換えて、繰り返し回数を五百回にした。一度の実行テストが一秒になる。これで、効率よくテストができる。

 試しに一度実行する。想定したとおり一秒で終わった。最後に一万回に戻すのを忘れないように、ソースコードにメモを書いておく。


 処理の全体をながめ、ボトルネックになっている部分を探す。計算量が多い。アルゴリズム――処理の方法――を変えれば、劇的に減らすことができる。


 五分かけてプログラムを書き換える。実行すると〇・一秒になった。九十パーセントの時間削減。普通のプログラムなら、これで満足する。しかし今回は違う。実力を見せるためのものだ。お行儀のよい書き方をする必要はない。手練手管を尽くして、処理時間を削ろう。


 配列へのアクセスを工夫して時間を稼ぐ。再帰処理をやめてループにする。浮動小数点数を使っている場所を、もっと軽い型に変える。計算順番を変更する。そうした細かな対策とともに、コンパイルの設定を変えて、過剰な最適化をおこなった。


 さらに邪道な方法にも手を染める。メモリの確保と解放の処理を可能な限り省略する。お行儀の悪い、処理時間のみに特化したプログラムにする。


 レオナルドは時計を見ながら、どこで作業を打ち切るか考える。

 残り一分。実行すると〇・〇七七秒になった。繰り返し回数を一万回に戻して実行する。処理時間は一・五四秒。これでよいだろう。そこで十分が終了した。


 ギレルモとカルロスが背後に来た。画面には、ごちゃごちゃとしたコードが表示されている。ギレルモは実行ボタンを押す。十三倍近く速くなっていることを二人は確かめた。


「合格だ」


 不満そうにギレルモは言う。まるで不合格だった方がよかったような言い種だ。


「それで仕事は、なにをするんですか?」


 こちらのプログラミング能力は示した。今度はギレルモが、どんな仕事なのか説明する番だ。


「ノートパソコンやスマートフォンは持ってきたか?」


「ええ」


「出してみろ」


 レオナルドは、鞄からノートパソコンと壊れたスマートフォンを出して、机に置いた。


「カルロス。取り上げろ」


「はい」


 カルロスは机の上の機械を奪い、距離を取る。


「なっ!」


 レオナルドは取り返そうとして席を立つ。ギレルモが大きな手で、レオナルドの顔をつかみ、力を込めた。レオナルドは苦痛の声を漏らす。


「仕事が終わったら返してやる。それまでは黙って仕事をしろ」


 ギレルモは手を開き、レオナルドを解放した。頭蓋骨が割れるかと思った。レオナルドは顔を抑えながら痛みが引くのを待った。


「僕は帰る。パソコンとスマートフォンを返せ!」


 レオナルドは、怒りに任せて怒鳴る。


「ガタガタ言うな! 俺だって人数を増やすのは嫌なんだ。だがプログラマが足らず、探してきて雇えと命じられて、仕方なくおまえを試験したんだ。

 島の人間を使うと噂になって困るからな。おまえは、おあつらえ向きなんだよ。しばらく缶詰めになってもらうぞ」


 ギレルモの言葉を無視して、ノートパソコンに手を伸ばす。ギレルモが素早く動き、拳を振った。レオナルドは腹に一撃を食らい、体をくの字にして悶絶する。


「カルロス。ロープを持って来い」


「はい」


 カルロスは、返事とともに部屋の外に飛び出した。ギレルモはレオナルドの髪をつかみ、コンクリートの床に押しつける。


「おまえのような外部の者を、イバーラさまのところに連れて行くのは嫌なんだよ。いいか、屋敷に着いたら面倒を起こすな。もし逃げたら、二度とプログラムが書けないように腕を切り落としてやる」


 レオナルドは動くことができず、その場で体をよじり続ける。


 カルロスが部屋に戻ってきた。レオナルドは手足を縛られて、ギレルモの肩に担ぎ上げられる。


 一階に下り、玄関から出る。先ほど乗ってきた車の後部座席に放り込まれた。ギレルモが運転席に、カルロスが助手席に乗り込む。

 車は工場を出発する。工業地帯を抜けて、北へと向かう道に入る。


 車は無舗装の荒い道を、ガタガタと揺れながら進んでいく。レオナルドは徐々に落ち着きを取り戻してきた。体を起こして、これまで得た情報を整理する。


 ギレルモはイバーラさまのところに連れて行くと言った。島の有力者でイバーラという名前の人物をレオナルドは知っている。

 フランシスコ・イバーラ。大富豪で、この島の実質的な支配者だ。リベーラ島を近代化した立て役者でもある。そして、住民のあいだに大きな格差を作ったと、デモの参加者たちが非難している人物だ。


 レオナルドは、彼について調べたことを思い出す。

 リベーラ島出身のこの男は、既に七十歳になる。若い頃は鉱山労働者だったが、山師となり、多くの鉱山や油田を発見した。それらの経営で莫大な富を築き、三十年ほど前に島に舞い戻ってきた。彼は、五年前に島民に足を撃たれて、今は車椅子生活をしている。


「フランシスコ・イバーラの屋敷に行くのか?」


 返事はなかった。おそらく合っているのだろう。


 なぜフランシスコ・イバーラは、島外のプログラマを必要としているのか。どうして自身の動きを、島民に気づかれたくないのか。レオナルドは、フロントガラスの向こうの景色を見つめて、表情を険しくした。

評価をするにはログインしてください。
ブックマークに追加
ブックマーク機能を使うにはログインしてください。
― 新着の感想 ―
このエピソードに感想はまだ書かれていません。
感想一覧
+注意+

特に記載なき場合、掲載されている作品はすべてフィクションであり実在の人物・団体等とは一切関係ありません。
特に記載なき場合、掲載されている作品の著作権は作者にあります(一部作品除く)。
作者以外の方による作品の引用を超える無断転載は禁止しており、行った場合、著作権法の違反となります。

↑ページトップへ