世界のスーパーコンピュータとそれを動かす人々


2月 12, 2014

科学技術計算:Pythonの場合

HPCwire Japan

Tiffany Trader

あなたの科学的なコンピューティングツールボックスの中身はなに? Rブロガーのサイト上で、テキサス大学オースティン校の研究員、Tal Yarkoniは、なぜ近頃、テキスト処理、数値計算、さらにはデータの可視化のためにでも、彼の頼れる言語がPythonであるのか説明する。その投稿は、「なぜPythonは、着実に他言語のシェアを奪っているのか」の副題で、異なるアプリケーション間でひとつプログラミング言語を使用することの利点を探る。

Yarkoniは、過去2〜3年の間に、彼の科学コンピューティングツールボックスはますます均質になったことに気付く。Ruby、Python、MATLAB、R、および幾つかの他のものを含んでいた以前の多様なセットのツールが、今やPythonによって支配されている。どれだけ支配されたか? Yarkoniは、彼の仕事の90〜95%が現在、Pythonで「快適に」行うことができると主張する。

Yarkoniは言う: 「私は、定期的に使用するツールの増加する均質化(Pythonification?)は、Pythonエコシステムの著しい最近の成長を主に反映しています。数年前、あなたが髪を搔き毟って時間の大半を過ごしたいと思い、そしてPythonがもっとR(何がRのようなものであるかを考えてみると相当に驚くべき白状である)のようであることを願わなかった限り、本当にPythonで統計を行うことができませんでした。神経画像データは、SPM(MATLABベース)、FSL、または他のパッケージで様々な分析を行うことは出来ますが、しかし実行可能なフル機能を備えた、無料で、オープンソースなPythonの選択肢はありませんでした。機械学習、自然言語処理、Webアプリケーション開発のためのパッケージばかりが現れ始めていました。 」

「近頃では、科学技術計算のほぼすべての側面のためのツールがPythonで直ぐに入手可能です。そしてケースの数が増えたことで、競合相手のシェアを奪っています。」と彼は付け加えた。

今、Yarkoniは新しいプロジェクトに取り組む際に、彼の最初の考慮事項は、最も適切なツールを探すことから、Pythonで行うことができるかどうかを尋ねることへとシフトしている。そこに潜在的な否定的側面(例えば、統計的な機能の欠如)があるが、しかしそれら言語の純度を維持し、切り替えコストの削減などのメリットがより重要である。プログラマもまた、特定のタスクのためのより適した(しかし、あまり詳しくない)言語と行く事が効率の損失の価値があるかどうかを決定しなければならない。

もちろん、Pythonは、他のすべての言語を置き換えることはできない。例として、Yarkoniは、統計パッケージのユーザーはR、MATLABの信号処理パッケージに貢献し、そして最大データセットにおいて深刻な性能のために低レベルのコンパイル言語で高度に最適化されたコードが必要であることを指摘する。しかし、それが科学的なコンピューティングの大多数になると、彼はPythonの支援のために断固たる立場を示す。

「私はこの時点で、Pythonが多くの領域内で科学技術計算の事実上の言語となることを示唆するのは完全に不公平だと思いません。」と彼は言う。「もしあなたはこれを読んで、Pythonにずっと前から影響されることが無かったのなら、今がそれに乗る絶好の機会だ!」

著者のオリジナルのブログエントリーへのコメントはここで可能だ。