問題タブ [cython]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
963 参照

python - OS X に Python 拡張機能をインストールすると、MacOSX10.4u.sdk エラーが見つかりません

python.org python (Python 2.6.4 (r264:75821M、2009 年 10 月 27 日、19:48:32)) を使用して、OS X (10.6.4) にさまざまな python 拡張機能をインストールしようとしています。gcc ステップで一貫して問題が発生します。Cython のコンパイルのサンプルを次に示します (ところで、lxml をインストールするために Cython をインストールしようとしています)。

さまざまな方法で lxml をインストールしようとすると、同様のエラーが発生します。Simon's questionの優勝レシピと、lxml サイトのインストール手順を試してみましたが、どちらも同じ問題が発生します。

古い OS X SDK をインストールする必要はありますか? もしそうなら、どこで見つけられますか (検索しても公式のダウンロード場所は見つかりませんでした)。

または、古い SDK を必要としないより良い回避策はありますか?

0 投票する
1 に答える
1254 参照

python - このダメラウ・レーベンシュタインの実装のバグを修正するにはどうすればよいですか?

私は別の長い質問で戻ってきました。PythonベースのDamerau-Levenshtein編集距離の実装をいくつか試した結果、最終的に以下にリストされているものが見つかりましたeditdistance_reference()。正しい結果が得られ、効率的に実装されているようです。

そこで、コードをCythonに変換することにしました。私のテストデータでは、参照メソッドは11,000回の比較(12文字の長さの単語のペアの場合)の結果を提供しますが、Cythonizedメソッドは1秒あたり200,000回を超える比較を実行します。残念ながら、結果は正しくありません。デバッグ用に出力した変数を見ると、thisrow どのデータをスローしても、私のバージョンでは変数がいっぱいになっていますが、参照出力には別の画像が表示されます。たとえば、'helo'に対してテストすると'world' 、次の出力が生成されます(ED私の関数をマークEDRし、正しく機能する参照です)。

差出人editdistance()

からeditdistance_reference()

エラーはおそらくそれらの非常に明白なものの1つであるため、私は非常に愚かである必要があります。しかし、私はそれを見つけることができないようです。

2番目の問題がありmallocます。3つの配列、、、およびのスペースtwoagooneagoあれthisrowば、それらは循環的に入れ替わります。などを実行しようとするfree( twoago )と、glibcが文句を言う行が表示されdouble free or corruptionます。私はそれをグーグルで検索しました。ポインタ交換ビジネスによってglibcが少しめまいを起こし、メモリを正しく解放できなくなる可能性がありますか?

以下に、最初にsetup.pyコンパイル()を実行するために必要なものをリストし/path/to/python3.1 ./setup.py build_ext --inplace、次に適切な距離コードを編集するので、興味のある人は複製が簡単であることがわかります。

もう1つ:これはPython3.1で実行されます。面白いことに、*.pyxファイル内には裸のUnicode文字列がprintありますが、それでも関数ではなくステートメントです。

はい、これはここに貼り付けるコードがたくさんあることは知っていますが、切り詰めすぎるとコードを実行できなくなります。私はeditdistance()正しく機能することを除いてすべての方法を信じていますが、あなたが感じる問題を自由に指摘してください。

setup.py

cython_dameraulevenshtein.pyx(最後までスクロールして、興味深いものを確認してください):

編集私もこのテキストをpastebinとCythonリストに投稿しました。

0 投票する
6 に答える
16477 参照

python - CythonをDjangoで使用する。それは意味がありますか?

Cythonを使用してDjangoで開発されたミッションクリティカルなアプリケーションの速度を最適化することは可能ですか?

最近インターネットで読んだところによると、CythonはPythonコードをCのような速度に変えることができます。これはDjangoで可能ですか?

0 投票する
2 に答える
2597 参照

python - Cythonを使用した条件付き`ctypedef`

私が書いているいくつかのラッパーコードuint64_tからtypedefにアクセスする必要があり、それを実行する方法がわかりません。stdint.h問題は、私がドキュメントからわかることから、私ctypedefは次の形式をとらなければならないということです。

また

WORDSIZEfromが64か32かによって異なりbits/wordsize.hます。Cythonからこのプリプロセッサ定義にアクセスする方法を見つけることができませんでした。できれば、Cythonはctypedefステートメント内のifステートメントを好まないようです。ブロック内のifステートメントはcdef、宣言と混同しているようです。何か案は?うまくいけば、私はここで本当に基本的なものが欠けているだけです。

0 投票する
3 に答える
1049 参照

python - Python プログラムの複数のインスタンスを効率的かつ経済的に実行していますか?

次のプロトタイプで関数を呼び出すプログラムを作成しました。

私の目標は、この関数を正確に 10,000 回 (「n」の 10,000 の異なる値に対して) 最速かつ最も経済的な方法で実行することです。これらの実行に続いて、個々のすべてのスキャンの結果を含む 10,000 の異なるバイナリ ファイルが作成されます。すべての関数「実行」は独立していることに注意してください (つまり、個々の実行の間に依存関係はまったくありません)。

質問はこれです。自宅に PC が 1 台しかない場合、自宅ですべての実行を完了するには約 4.5 年 (10,000 回の実行 x 実行あたり 4 時間 = 40,000 時間 ~= 4.5 年) かかることは明らかです。それでも、すべての実行を 1 ~ 2 週間以内に完了させたいと考えています。

ソリューションには、一度に多くのコンピューティング リソースにアクセスすることが含まれることを私は知っています。そのための最良の(予算が限られているため、最速/最も手頃な価格の)方法は何ですか?強力なサーバーを購入する必要がありますか (費用はいくらですか?)、それともオンラインで実行できますか? そのような場合、そうすることで私の独自のコードが公開されますか?

それが役立つ場合、「Process()」のすべてのインスタンスは約 500MB のメモリしか必要としません。ありがとう。

0 投票する
2 に答える
259 参照

python - コンピューティング負荷の高いアプリケーションのサーバー コストは?

私は Python で構築した科学アプリケーションを持っています (アプリケーションの「重要な領域」は、速度を上げるために Cython で最適化されています)。

アプリケーションのすべてのインスタンスには、テキスト ファイル (パラメーターを含む) と入力が与えられます。アプリケーションは、テキスト ファイルからパラメーターを読み取り、ハード ドライブに保存されているデータを使用して実行し、計算結果をハード ドライブに出力します。すべてのインスタンスは、その操作中に約 600MB のメモリを必要とします。

現在、ラップトップ (Intel Core 2 Duo、T7500、@2.2Ghz、2GB RAM) でアプリを実行しています。私のラップトップでのすべての「インスタンスの実行」は、完了するまでに約 3 時間かかります。

プロジェクトのニーズにより、10000 個のインスタンスを実行する必要があります。明らかに、私のラップトップでこれを行うには永遠に時間がかかるため、より多くの計算能力が必要です.

そのようなすべてのインスタンスが別のインスタンスから独立していることを知っている場合、たとえば 10 個のインスタンスを同時に実行できるサーバーのコストはいくらになるでしょうか (予算が限られています...)。構成でお勧めできますか?

現在、私は Windows XP を使用していますが、理想的には、サーバーに unix (ubuntu) をインストールしたいと考えています。

0 投票する
2 に答える
551 参照

opengl - glFlush()はレンダリングの正確さにどのように影響しますか?

他のOpenGLプログラムに予期しないアーティファクトがあることに気付いたとき、私はいくつかの調査を行い、UbuntuでOpenGLスタックをアップグレードできることを発見しました: https ://launchpad.net/~xorg-edgers/+archive/ppa

更新後、すべてのGLレンダリングが高速になり(以下のテストプログラム の速度は2倍になりました!)、アーティファクトはありませんでした。

それで、私自身の質問に答えるために:glFlush()はレンダリングの正確さにどのように影響しますか?ドライバーがバグだらけのとき。

===元の質問===

または、より正確には、私の古典的なアントレンディな非シェーダーVBOのものの根本的なバグは何ですか?

各キューブまたはワイヤーフレームの後にフラッシュすると、次の正しいレンダリング が得られます。正しい、フラッシュあり

フラッシュを省略した場合(そして、最適なopenglパスを踏んでいない場合でも、明らかにフラッシュしたくない場合)、この誤ったレンダリングが発生します。これは、私が理解していないバグです。 正しくない、フラッシュなし

好奇心旺盛な方のために、これがその方法glutSolidCubeとワイヤーです:http://www.google.com/codesearch/p?hl=en#xbii4fg5bFw/trunk/FDS/trunk/SMV_5/source/glut-3.7.6/glut_shapes。 c&q = glutSolidCube%20lang:c&sa = N&cd = 4&ct = rc

0 投票する
1 に答える
1158 参照

python - asciiエンコーディングをintに変換し、Pythonで(すばやく)元に戻します

整数の文字列を文字列としてエンコードするファイル形式(fastq形式)があります。各整数は、オフセット付きのASCIIコードで表されます。残念ながら、一般的に使用されているエンコーディングは2つあります。1つはオフセットが33で、もう1つはオフセットが64です。通常、1つのオフセットから別のオフセットに変換する長さ80〜150の文字列が1億個あります。この種のことを行うために私が思いつくことができる最も単純なコードは次のとおりです。

これは問題なく機能しますが、特に高速ではありません。100万本の弦の場合、私のマシンでは約4秒かかります。いくつかのdictを使用して翻訳を行うように変更すると、これを約2秒に短縮できます。

やみくもにcythonの下を走ると、1秒弱になります。
経営幹部レベルのように見えますが、これは単にintにキャストし、減算してから、charにキャストするだけです。私はこれを書いていませんが、かなり速いと思います。これをPythonまたはcythonバージョンでより適切にコーディングする方法を含むヒントは、非常に役立ちます。

ありがとう、

ショーン

0 投票する
2 に答える
2419 参照

conditional - 外部値に基づくCython条件付きコンパイル

Cython pxdからcコードに条件付きでコンパイル(または生成)しようとしています。DEFでaa値を定義し、IFでその値に基づいて条件付きで生成できることを読みましたが、pxdファイルの外部からこの値を取得するにはどうすればよいですか?

特に、これら2つのケースは私にとって興味深いものです。

  • できればCython.Distutilssetuptoolsの方法で、Cythonにコマンドライン定義を指定します
  • 外部化されたCヘッダーファイルはいくつかの値を定義し、この値に基づいてCythonを使用して条件付きで定義します(おそらく今は不可能ですか?)

ありがとうございました

0 投票する
1 に答える
2807 参照

python - cython .pxd ファイルを使用して純粋な python ファイルを拡張する

ここの例「Augementing .pxd」に従って、「.pxd」ファイルを使用して純粋な python ファイルを拡張しようとしています。(純粋な python ファイルの外部に型定義を追加します)。

python ファイル:

pxd ファイル:

私はPythonで「なし」にデフォルト設定している辞書を持っています。残念ながら、cython はこれを好みません。

タイプを宣言せずに「純粋な」pythonファイルを使用するか、pxdファイルでタイプを「dict」として宣言すると、エラーが発生します。

「署名は以前の宣言と互換性がありません」

デフォルト値を指定しないとコンパイルされることに気付きましたが、デフォルト値を宣言するのには理由があります。

これを処理できる方法はありますか?