問題タブ [mandelbrot]
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.
c - マンデルブロー集合に関する Pthreads コードを修正するにはどうすればよいですか?
マンデルブロー集合の画像の計算と作成に関する次の Pthreads コードがあります。C の私のコードは問題なく動作し、結果の画像がうまく表示されます。ポイントは、以下のコードを使用して、コードをコンパイルして実行できることです。その後、生成された .ppm ファイルを Gimp で表示しようとすると、単純に開くことができません。私は自分のコードで何か間違ったことをしていると思います。誰かが私を助けることができれば、私はうれしいです.
c - MandelBrot セット アプリケーションでの C X11 セグメンテーション エラー
私の人生では、このセグメントの障害を見つけることはできません。起動するとすぐにスレーブプロセスで発生し続けます。私はすでに完全に動作する標準アプリケーションを開発しましたが、ズーム機能を実装しようとしたときにこの問題に遭遇しました。
どんな助けでも大歓迎です。
私のコードの一部:
c# - マンデルブロ アルゴリズム - 背景色
私は C# でマンデルブロー アプリを作成しています (そして Python でテストしています)。セットからその境界線までの連続したカラーリングは既にあります。私の現在の問題は、環境の背景色を設定することです。色を取得するための現在のコードは次のようになります。色を double として取得し (対数関数は以前に実行されています)、部分であるかどうかをチェックし、非常に滑らかなグラデーション (黒からオレンジへ) を作成します。
難読化された Python スクリプト ( http://preshing.com/20110926/high-resolution-mandelbrot-in-obfuscated-python )のように、黒の環境 (マンデルブロ セットではない) を別の色に変更するにはどうすればよいですか? 既にスクリプトをより適切な形式に編集しましたが、私のアルゴリズムには適合しません。
編集:言及するのを忘れていましたが、私は複雑な引用符にクラスを使用していません.ウィキペディアに示されているアルゴリズムでフラクタルを計算しています.
c# - C# マンデルブロー描画の効率化
まず第一に、この質問はまるで私が検索していないかのように聞こえることを認識していますが、私はたくさん検索しました。
私は C# 用の小さなマンデルブロー描画コードを書きました。これは基本的に、マンデルブロー セットを描画する PictureBox を備えた Windows フォームです。
私の問題は、それがかなり遅いということです。深いズームがなければ、かなりうまく機能し、移動とズームは非常にスムーズで、描画ごとに1秒もかかりませんが、少しズームインし始めて、より多くの計算が必要な場所に到達すると、非常に遅くなります.
他のマンデルブロー アプリケーションでは、アプリケーション内で動作が非常に遅い場所でも、私のコンピューターは問題なく動作するため、速度を改善するためにできることはたくさんあると思います。
最適化するために次のことを行いました。
ビットマップ オブジェクトで SetPixel GetPixel メソッドを使用する代わりに、LockBits メソッドを使用してメモリに直接書き込み、処理を大幅に高速化しました。
複素数オブジェクト (組み込みのクラスではなく、自分で作成したクラス) を使用する代わりに、2 つの変数 re と im を使用して複素数をエミュレートしました。実数部と虚数部の 2 乗は計算中に数回行われるため、これを行うことで乗算を減らすことができました。そのため、2 乗を変数に保存し、再計算する必要なく結果を再利用するだけです。
私は 4 つのスレッドを使用してマンデルブロを描画します。各スレッドは画像の異なる 4 分の 1 を処理し、すべて同時に機能します。私が理解したように、それは私のCPUが4つのコアを使用して画像を描画することを意味します.
Escape Time Algorithm を使用していますが、どちらが最速でしょうか?
ピクセル間を移動して計算する方法は次のとおりです。コメントアウトされているので、理解できることを願っています。
これを改善するにはどうすればよいですか? 私のコードに明らかな最適化の問題はありますか?
現在、私がそれを改善できることがわかっている2つの方法があります。
数値には別の型を使用する必要があります。 double は精度に制限があり、より高速 (乗算と加算が高速) で精度の高い、より優れた非組み込みの代替型があると確信しています。どこを見る必要があるかを教えて、それが本当かどうか教えてください。
処理を GPU に移動できます。これを行う方法がわかりません (OpenGL でしょうか? DirectX? そんなに単純なのか、それとも多くのことを学ぶ必要があるのでしょうか?)。誰かがこの主題に関する適切なチュートリアルへのリンクを送ってくれたり、それについて一般的に教えてくれたりしたら、それは素晴らしいことです.
ここまで読んでくれてありがとう。助けてくれることを願っている:)
haskell - Haskell - マンデルブロー引き出しの問題
それで、初心者として、私はマンデルブロー集合プロジェクトの恐ろしく、ひどくひどいバージョンに取り組もうと考えました。この哀れなケースでは、セットはテキスト (Shreik!) でテキスト ファイルに描画されます。数値コーディングの練習が必要だったので、現存する最悪の複素数システムを設計しました。コードの問題を見つけることができません - マンデルブロ集合の代わりにバンドを描画するコードです。これがそれです(あまり長く見ないでください。そうしないと、noob-ioactivity に過度にさらされて死ぬ可能性があります):
ご覧のとおり (見ていなければわからないかもしれませんが)、私の複素数には未使用の関数がいくつかあります。希望医はいますか?
まとめ:
マンデルブロ集合ではなくバンドを描くのはなぜですか?
performance - スレッドを 2 から 3 に増やしても、マンデルブロの速度アップの量は増加しません
4 コアと 4 スレッドの Intel i5 プロセッサを使用しています。現在、pthreads と ISPC (Intel SPMD Program Compiler) を使用してマンデルブロ セットのシミュレーションに取り組んでいます。タスク分割、つまりイメージの空間分解に基づいて、マンデルブロ集合イメージの計算に 2 つのスレッドを使用すると、1.9 倍の速度が見られ、3 つのスレッドを使用すると 1.65 倍の速度が見られ、4 つのスレッドを使用すると 2.4 倍の速度に飽和します。i5 は 4 スレッドなので、プログラムの並列処理を十分に行うと (pthread を使用)、4 倍の速度アップが期待できます。3 スレッドを使用すると速度が低下するのはなぜですか? 期待通りの高速化が見られない理由は?
注: gcc を使用して pthreads を API としてコンパイルしています。分割は、画像の空間分解に基づいています。ロックやセマフォは使用していません。
mandelbrot の wiki リンク http://en.wikipedia.org/wiki/Mandelbrot_set
ISPC ドキュメントの github リンク http://ispc.github.io/
質問が無関係であることがわかった場合は、適切な情報源にリダイレクトしてください。お時間をいただきありがとうございます。