Fortranの同人誌を書いていたら異世界に転生して魔王になっていたから,勇者の挑戦を受けることにした

ネタタイトル・ネタ記事です.今年のサークル活動をエモくまとめました.

当サークル暗黙の型宣言は,Fortranや数値計算に関する同人誌を執筆,発行するサークルです.これまでに,
・Fortranによる実践オブジェクト指向プログラミング(技術書典2,超技術書典)
・流体計算で覚えるPython3(超技術書典,技術書典4で改訂)
・Wordで技術文書を書こう(技術書典3)
・空力音の直接数値計算を支える技術(技術書典4)
・古典的CUDAプログラミング(コミックマーケットC93)
・徹底練習!アカデミックプレゼン(技術書典5)
を発行しました.

それ以外には,親方Projectさんの合同誌にも寄稿しています.
・ワンストップ技術同人誌を書こう
・Onestop転職
ワンストップ技術同人誌を書こうは,70ページ以上寄稿しているので,おそらく執筆量でいくと1番だと思います.しかし,Wordの使い方やPowerPointからの画像のエクスポートの仕方, WindowsでのRe:VIEW環境の構築といった,あまり読まれない章を担当しています.

冬コミ(C94)はサークル初の抽選洩れでした.まあいつかは洩れることもあるだろうと思っていたので,抽選洩れ自体は大してショックでもないのですが,Twitterや参加しているコミュニティで当選サークル主達が盛り上がっているのを見ると,放課後に一緒に遊んでいた友達が帰って一人で家にいる気分になりますよね.だからといって洩れたサークルに気を遣えと言っている訳ではありません.当選した方達は思う存分楽しんでください.

冬コミに向けて書く本のネタはかなり練っていたのですが,それは次の機会に送ることにしました.代わりに,空いた時間でFortran Advent Calendar 2018を立てることにしました.

書いた記事は合計12本でした.この記事を含めて13本です.
とても簡単な4段4次のRunge-Kutta法について(数値計算Advent Calendar 2018 3日目)
Fortranにおける整数型・実数型・複素数型変数の宣言方法(Fortran Advent Calendar 2018 1日目)
Fortranにおける配列の宣言方法と関連機能(Fortran Advent Calendar 2018 2日目)
Fortranにおける文字型変数の宣言方法と関連機能(Fortran Advent Calendar 2018 3日目)
Fortranにおける派生型の基本的な使い方(Fortran Advent Calendar 2018 4日目)
Fortranの派生型とC言語の構造体の相互運用(Fortran Advent Calendar 2018 7日目)
Fortranでポインタ変数のアドレスをインクリメントする(Fortran Advent Calendar 2018 14日目)
Fortranにおける浮動小数点の丸めと整数化のモード(Fortran Advent Calendar 2018 15日目)
Fortranで区間演算(Fortran Advent Calendar 2018 16日目)
FortranでC言語のダブルポインタを受け取ってコマンドライン引数を取得する(Fortran Advent Calendar 2018 22日目)
Fortranにおける実行時間の測定(Fortran Advent Calendar 2018 24日目)
CUDA Fortran入門(Fortran Advent Calendar 2018 25日目)

Fortran Advent Calendar 2018は無事完走できました.当初は12日目以降書くつもりはなかったのですが,13日目にFortran Advent Calendar 2018 がとても勉強になっているので、途切れるのが惜しいと思って投稿してくださった方がいて,腹をくくることにしました.自分の記事が役に立っているから書いてやるかというつもりは全くなく,Fortranの学びの場を維持したいと考えたからです.

そもそもなぜFortranの同人誌を書こうと思ったかというと,Fortranに関する情報があまりなかったからです.とりあえず書いて出せばインパクトはあるし,俺の方ができるという人が出てくる可能性に期待しました.詳しい動機はFortranによる実践オブジェクト指向プログラミングに書いてあります.数値計算分野のFORTRANユーザは,「プログラミングは手段であって目的ではない」とよく言います.しかし,手段,すなわち道具やそれを使いこなす技能を磨けば,もっと効率的に仕事ができるとは思いませんか?そして,ことプログラムに関していえば,今効率よく書けるかどうかではなく,その後どれだけ活用・流用できるかが重要です.

現在のインターネッツでは,FORTRANは知らないけど古いからディスってもよいものであるという共通認識みたいなものがまかり通っているように思います.これは今に始まったことではないことが,奇しくもFortran Advent Calendarの記事(Fortran 撲滅論の昨日・今日・明日)に書かれていました.Fortranがディスられているのははるか昔からのようです.

記事をかいつまんで要約すると,
・FORTRAN撲滅論が出たのは遅くとも1962年(FORTRANの誕生は1954年).
・何人ものチューリング賞受賞者が罵っている.何だったら生みの親にも否定されている.
・FORTRAN滅ぶべしという記事が書かれ,それに対してFORTRAN側からの反論記事を書いていた.
・1990年半ばに潮目が変わり,Fortranが劣勢になり,自己弁護記事が投稿されるようになった.
・FORTRANだけでなくBASICも昔からディスられており,古い言語の存在は許されないという風潮がある.

この記事を読んだとき,最近流行の異世界転生ものを連想しました.魔(FORTRAN)と善(新しい言語)は誕生後すぐにいがみ合い,勇者ともよべる著名な者が魔の根絶を叫んでいる構図です.当初は魔の方が優勢だったようですが,徐々に勢力が逆転し,防戦に回っています.このような争いが起こっているか,私にはわかりません.私がFortranを使い始めた時には既に撲滅せよと(Fortranの立場から見て)迫害されていました.現状も知らずに,昔のことを持ち出して攻め(責め)られるので,私は反論します.どうやったらこの争いが終わり,皆が幸せになるのでしょうか?

ところで,Fortran Advent Calendar最終日の記事は,CUDA Fortran入門でした.最終日の記事にこの内容を選んだのは,GPGPUがFortranに少なくない影響を与えたと感じているからです.

現在は機械学習の学習に謎のAI半導体GPUが注目されて,広く利用されています.機械学習に先駆けて,CAE業界では十数年前にGPUブームがありました.GPUのインパクトは相当の大きく,省電力と高性能の両立だpoorman's supercomputerだと話題になりました.あちこちでベンダー主催の勉強会が開催され,高速化の成果が報告されました.2010年頃までは,まともな開発環境はCUDA C/C++しかなかったので,Fortranユーザは頑張ってCUDA Cにコードを移植するか,諦めるかという状況でした.FortranからCUDAを使えるラッパーもありましたが,FORTRANが持っている多くの資産をGPUで高速化したいという需要を満足させるには至りませんでした.このときになって,多くの人が,FORTRANの資産(だと思っていたもの)はかなり雑に管理されており,今から真面目に管理・活用するには人的コストが大きすぎると気づいたのです.

小規模な計算機環境におけるGPUの威力は驚異的で,FORTRANを使わずにCUDA Cで書いた方が格段に高い性能が得られました.そして,無理してFORTRANを使わなくてもよいという状況になりました.過去の資産とコンパイラ最適化でゴリ押しをしていた魔が,GPUという天変地異に対応できずに各地で弱体化している状況でしょうか.魔も指をくわえてみていただけではなく,その天変地異に対応するためにCUDA Fortranを世に放ちました.まだ十分な効果は発揮できていないようですが・・・

FORTRANからCUDA Cへの移植は,大抵は上から指示された,FORTRANは知らないけどCやCUDAはわかるという若い人達です.今までFORTRANと縁遠かった人達が濃縮されたFORTRANコードに触れ,実体験に基づくヘイトを溜めているのです.仕事柄そういう人達と交流することもありますが,Fortran滅ぶべしという言葉が聞かれます.悲しい出来事ですが,ディスっていいからディスる人よりは,耳を傾ける価値のある言葉です.

そういう人達との懇親の場で,「Fortranのモダンな使い方について同人誌を書いているんですよ」と言ったときに帰ってきた言葉は,なかなかにインパクトがありました.

「そんなことしちゃダメです.FORTRANは早く滅ぼさないと!」

善側から見ると,私のしていた行為は,滅ぼすべき存在を生きながらえさせる邪悪な行為だったようです.いつの間にか,FORTRANを悪とする世界に転生して,悪逆の限りを尽くしていたようです.こんな言葉を聞いたら,もう後には引けません.魔王とよばれる存在になって,FortranがFORTRANを覆い尽くすまで,FORTRAN → CUDA Cという非効率な移植がFORTRAN → Fortran → CUDA C/Fortranに置き換わるまで,情報を全力で広めることにしました.滅ぼそうという勇者はぜひかかってきてください.

幸いにして,魔王は善側で育てられ,悪墜ちしたのは元服後です.常に対話の扉はオープンにしています.

タイトルを無事回収した魔王先生の次回作にご期待ください.

この記事が気に入ったらサポートをしてみませんか?