問題タブ [multicore]
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.
python - 複数のコアを使用するように Ruby または Python の Web サイトを作成するには?
PythonとRubyにはインタープリター スレッドごとに 1 つのカーネル スレッドがありますが、潜在的に共有されるデータ構造を保護するために使用されるグローバル インタープリター ロック (GIL) があるため、マルチプロセッサーの実行が抑制されます。C または C++ で記述された言語の部分はフリー スレッド化できますが、複数のプロセスを使用しない限り、純粋に解釈されたコードでは不可能です。これを達成するための最良の方法は何ですか?FastCGI を使用していますか? 仮想化されたサーバーのクラスターまたはファームを作成しますか? 同等の Java である JRuby と Jython を使用していますか?
multicore - 明日のメニーコアプロセッサを活用するために、今日どの並列プログラミングモデルをお勧めしますか?
今日、新しいアプリケーションを最初から作成していて、明日スローできるすべてのコアに拡張したい場合、どの並列プログラミングモデル/システム/言語/ライブラリを選択しますか?なんで?
私はこれらの軸に沿った答えに特に興味があります:
- プログラマーの生産性/使いやすさ(人間はそれをうまく使うことができますか?)
- ターゲットアプリケーションドメイン(どのような問題が(得意ではない)得意ですか?)
- 同時実行スタイル(タスク、パイプライン、データ並列処理、メッセージをサポートしていますか...?)
- 保守性/将来性(20年後もまだ使用されている人はいますか?)
- パフォーマンス(どの種類のハードウェアでどのように拡張できますか?)
さまざまなアプリケーションに役立つ一般的な回答が得られることを期待して、アプリケーションの性質について意図的に曖昧にしています。
multithreading - 将来のマルチコア コンピューターで最も成功するプログラミング パラダイムはどれですか?
今日、私たちの多くは、デスクトップに 2 つ以上の CPU コアを搭載しています。ほとんどのアプリケーションは、コアが 1 つしかなかったときと同じように機能します。
しかし、一般的なデスクトップ マシンに 1000 以上のコアがある場合はどうなるでしょうか。
その場合、どのプログラミングパラダイムを使用しますか。私たちの現在のスレッド化および同期化ソリューションは、そのような多くのコアにうまくスケーリングすることはめったにありません。
Thread クラスは JDK で廃止されると思いますか?
multithreading - ロックのない構造を書くにはどうすればよいですか?
私のマルチスレッド アプリケーションでは、ロックの競合が激しく、複数のコアにまたがる優れたスケーラビリティが妨げられています。これを解決するために、ロックフリープログラミングを使用することにしました。
ロックのない構造を書くにはどうすればよいですか?
programming-languages - マルチコアと並行性 - 言語、ライブラリ、および開発手法
CPU アーキテクチャの状況が変わりました。マルチコアは、ソフトウェアの開発方法を変えるトレンドです。私は C、C++、および Java でマルチスレッド開発を行い、さまざまな IPC メカニズムを使用してマルチプロセス開発を行いました。スレッドを使用する従来のアプローチでは、高度な並行性をサポートするハードウェアを開発者が利用することは容易ではないようです。
並行アプリケーションを作成する際の従来の課題を軽減するのに役立つ言語、ライブラリ、および開発手法は何ですか? 私は明らかに、デッドロックや競合状態などの問題を考えています。設計手法、ライブラリ、ツールなども興味深いものであり、利用可能なリソースを実際に活用し、確実に利用できるようにします。安全で堅牢なスレッド化されたアプリケーションを作成するだけでは、利用可能なすべてのコアを確実に使用できるわけではありません。
私がこれまでに見たものは次のとおりです。
- Erlang : プロセスベース、メッセージパッシング IPC、「アクターの同時実行モデル」
- Dramatis : Ruby および Python 用の俳優モデル ライブラリ
- Scala : 同時実行サポートが追加された JVM 用の関数型プログラミング言語
- Clojure : アクター ライブラリを使用した JVM 用の関数型プログラミング言語
- Termite : Erlang のプロセス アプローチと Scheme へのメッセージ パッシングのポート
他に何を知っていますか、何が効果的で、何を見るのが面白いと思いますか?
c# - コードを複数のコアで実行するにはどうすればよいですか?
複数のコア用に最適化する必要があるアプリケーションを C# で作成しました。私はいくつかのスレッドを持っています。もっとやるべきですか?
詳細を更新しました
- C#2.0
- Windows Vista および Windows Server 2003 で実行
再更新
- このコードはサービスとして実行されています
- 完全なコードは必要ありません...ここでの私の目標は、あなたの経験と開始方法を取得することです。私が言うように、私はすでにスレッドを使用しています。これ以上何ができますか?
parallel-processing - マルチコアのMPI?
マルチコア プログラミングに関する最近の話題で、MPIを使用する可能性を探っている人はいますか?
multithreading - Compare And Swap (CAS) をサポートする CPU アーキテクチャはどれですか?
どの CPU アーキテクチャがアトミック プリミティブの比較とスワップをサポートしているか知りたいですか?
c++ - 高レベルの比較と交換 (CAS) 機能?
Compare And Swap (CAS) アトミック プリミティブに使用できる高レベル (インライン アセンブラではない C++) 関数またはマクロについて説明したいと思います...
たとえば、x86 の WIN32 には_InterlockedCompareExchange
、<_intrin.h>
ヘッダーに一連の関数があります。