2018 年、Economist はプログラミング言語 Python に関する詳細な半分を公開しました。 記事には、「過去 12 か月以内に、米国の Google ユーザーは、キム・カーダシアンよりも Python を検索する習慣が増えていることに気付いた」と書かれています。 リアリティ番組のスターたち、気をつけて。
過度なレベルの言語もその地位を獲得しており、その簡単で単純な部分のために、その使いやすさのために言語の標準的な基盤に大勢のユーザーが群がっています。 -勉強する構文。 これにより、MIT のラップトップ科学および人工知能研究所 (CSAIL) や他の場所の研究者は、マップに影響を与えて、さまざまな欲求やコンテキストへのカスタマイズと適応を考えながら、より効率的かつ成功裏に dawdle Python コードを研究するようになりました。 コンパイラーは、ソース コードをコンピューターのプロセッサーでも完成できるマシン コードに解釈するツール マップであり、ビルダーは蓄積されたドメイン固有言語 (DSL) 内部 Python を発明できます。 C または C++ — これらのさまざまな言語の効率の利点を黙って得ています。
DSL は、特定のプロジェクトに合わせて調整された特殊な言語であり、全体的に偏りのないプログラミング言語よりも、通常とは異なり、より簡単に操作できます。 一方で、慣習的にゼロからブランド発生 DSL を作成することは、やや頭痛の種です。またはブランド発生マップ、特に技術に詳しくない人々。 そこで私たちは、Python の構文、セマンティクス、およびライブラリを望み、それらをゼロから構築されたブランド獲得マシンに正しく組み込みましょうと考えました。発生機、コドン。 「その人は、私たちがロボットで対処するレコードデータの種類や効率について悩むことなく、年をとったものに対応する Python を書くだけです。その結果、彼らのコードは通常の Python よりも 10 から 100 のインスタンスを速く実行します。 コドンは、量的金融、バイオインフォマティクス、および深い研究に対応する分野ですでに商業的に熟成されています.重さ。 具体的には、Python で記述された通常の古いゲノミクス アプリケーションを約 10 個取り、それらを Codon を使用してコンパイルし、手動で最適化された長年にわたって確立された実装よりも 5 ~ 10 個のインスタンスの高速化を完了しました。 ゲノミクスに加えて、彼らはクオンツ ファイナンスへの応用を探りました。この分野でも高貴なデータセットを処理し、Python を多用しています。 Codon プラットフォームには、ユーザーが Python コードを記述できる並列バックエンドもあります。このコードは、GPU またはコアのペア、歴史的に必要とされた低レベルのプログラミング機能を発見するプロジェクト用に明示的にコンパイルすることもできます。
飛行機に乗ったニシキヘビ
C や C++ に対応する言語とは異なり、生成されたコードを最適化して効率を高めるコンパイラーが付属していますが、Python はインタープリター言語です。 より早く Python に影響を与えるために、何百もの努力がなされてきました。チームは、「ハイダウン アプローチ」の影響の範囲内で、慣例的にアクセス可能であると述べています。コンパイル方法 — コードの効率重視のオブジェクトを実行のある段階でコンパイルする手法。 これらのアプローチは下位互換性を維持するのに優れていますが、達成できるスピードアップの形態を非常に制限しています.
バリアを備えたゼロからのすべての要素にもかかわらず、より多くの柔軟性を備えています」と Shajii 氏は言います。 「つまり、特定の動的ファセットを増やすことはできませんが、通常の Python 実装から始めて達成できない最適化やさまざまな静的コンパイル方法を試すことができます。 これは、基本的に最も重要な非互換性でした — もはや通常の努力は、Python インフラストラクチャの巨大な構成要素がゼロから構築されるボトムアップ アプローチに正しく組み込まれていました。」
パズルの前半は、Python コードの半分をコンパイラーに供給することです。 完了する最初の重要なステップの 1 つは、「フォーム チェック」として知られています。これは、プログラムで、すべての変数またはダイアグラムのさまざまなレコード データ フォームを解決する方向です。 例として、一部は整数、一部は文字列、一部は浮動小数点数にすることができます。これは、通常の Python では実現できないことです。 通常の Python では、この手順を実行する際にそのすべての知識に対処することが非常に重要です。 Codon のイノベーションのフェーズは、マップがこの手順を実行するよりも早くこの種のチェックを行うことです。 これにより、コンパイラはコードをネイティブ マシン コードに変換できます。これにより、Python が実行時にレコード データの種類を処理する際に発生するすべてのオーバーヘッドが回避されます。プログラミングの専門家ではなくなったドメインの専門家。 彼らが標準化されたプログラムを作成し、多くの人々がその利用法を開いて、ますます優れたデータセットを開発している場合、Python の効率の悪さが成功への深刻な障壁になります」と、MIT の電気学教授、Saman Amarasinghe 氏は述べています。エンジニアリングとコンピュータ サイエンス、および CSAIL の貴重な研究者です。 「この手順を書き直して、NumPy に対応する C を利用したライブラリを利用したり、C に対応した言語で完全に書き直したりするのではなく、Codon は同じ Python 実装を使用でき、Web を書き直すことで同じ効率を実現できます。したがって、Codon は、効率の欠如により限界に達したことを発見した Python アプリケーションを勝ち取るための最も魅力的なコースであると私は理解しています。」
Cの料金より早く
パズルのさまざまな半分は、コンパイラ内の最適化です。 ゲノミクス プラグインを使用して作業すると、そのコンピューティング ドメインに固有の最適化の住居が生まれます。これには、ゲノム配列とさまざまな生物学的記録データを使用する必要があります。 結果は、C または C++ の料金で実行される実行可能ファイルであり、ドメイン固有の最適化が利用されるとさらに早くなります。
当面の Codon は Python の無制限のサブセットをカバーしますが、多くの動的な側面を具現化し、Python ライブラリの保護により大きな影響を与えることを静かに望んでいます。 Codon チームは、Python とのギャップをさらに埋めるために懸命に取り組んでおり、差し迫った数か月にわたって多くの蓄積されたファセットをリリースすることを先取りしているようです. Codon は、当分の間、GitHub で
公開されています。
を起動するにはAmarasinghe に、Shajii は Gabriel Ramirez ’21、MEng ’21、年配の CSAIL 学者であり、日付と同じくらい Soar Trading ツール エンジニアと一緒に論文を書きました。 Jessica Ray SM ’18、MIT リンカーン研究所のアソシエイト分析ワーカー メンバー。 Bonnie Berger 氏、マサチューセッツ工科大学の数学、電気工学、コンピューター サイエンスの教授であり、CSAIL の貴重な研究者。 Haris Smajlović、ビクトリア大学の大学院生。 Ibrahim Numanagić は、ラップトップ サイエンスのビクトリア大学の助教授であり、カナダ スタディ チェアです。 以前は、Numanagić の NSERC Discovery Grant、Canada Study Chair プログラム、米国国防総省研究イニシアチブ機関、および米国国立衛生研究所によってサポートされていました。 Codon は当面の間、Codon を広めるために有力な著者の 1 人が設立した Exaloop, Inc. によって維持されます