1

CPython スクリプトからモジュールをインポートする方法はありますが、それらを PyPy で実行しますか?

問題は、多くの SciPy (および NumPy) を使用するコードがありますが、PyPy で最適化できるコードの部分があることです。

これが私がやりたいことのランダムな例です:

sub_run_in_pypy.py モジュール:

#assuming this can be optimized with PyPy
def function_a(foo):
    return foo**2

main_run_in_cpython.py モジュール:

import scipy.stats as stats

#assuming this exists:
import import_function_for_pypy
pypy_imported_function = import_function_for_pypy(module_name=sub_run_in_pypy, function_name=function_a)

x = stats.t.rvs(5, loc=0, scale=1, size=1)

print pypy_imported_function(x)

これが存在しない場合、なぜですか?

編集: Bakuriu が推測したように、別のプロセスで実行される可能性があることを示唆していました。これにより、オーバーヘッドが大きくなりすぎますか?

4

1 に答える 1

0

他のスレッドよりずっと前にこの質問に出くわしたので、逆のメカニズムをここで簡単に説明します (PyPy 内に CPython を埋め込むことはできますか?)

基本的な考え方は、PyPy インタープリターを CPython インタープリターと共に (またはその逆に) 開始し、プロセス間通信を介してそれらを接続することです。パイプやソケットを介してこれを実行しようとする誘惑に駆られるかもしれませんが、execnet (実際にはこの目的で使用されます) などの高レベルのライブラリを使用することを強くお勧めします。

低レベルのアプローチを採用する場合は、マルチスレッドやマルチプロセスの実行などのアーキテクチャを処理できるかどうか、およびその方法を早期に決定してください。非同期計算が必要なのか、マスターワーカーのセットアップが必要なのか.

于 2015-09-18T10:45:50.517 に答える