問題タブ [single-threaded]
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.
multithreading - マルチコアまたはシングルコアでのマルチスレッド処理は速度を 2 倍にしますか?
理想的には独立した2 つのタスクで構成されるプロセスがあるとします(理想的には、通信のオーバーヘッドを取り除くため)。速度が 3 GHz のシングルコア プロセッサまたは速度が 1.5 GHz の 2 コア プロセッサで実行した方が速いでしょうか?
もちろん、2 コア プロセッサの場合、ジョブは並列化に最適です。そして、シングルコアの場合、2 つのタスクは時分割になります。
更新: 言い換えれば質問
速度が 2 倍のシングルコア プロセッサは、常に 2 コア プロセッサよりも優れたオプションですか?
multithreading - シングルスレッドプロセスにはスレッドが 1 つしか含まれていませんか?
誰かがシングルスレッドプロセスとマルチスレッドプロセスについてもっと説明できますか
シングルスレッドプロセスにはスレッドが1つしかありませんか? または、そのプロセスに複数のスレッドを含めることができ、一度に 1 つのスレッドしか実行できず、それらの間でコンテキストを切り替えることを意味しますか?
シングル コア プロセッサで Java プログラムを実行する場合、2 番目は正しいでしょうか?
誰かがそれをさらに説明できますか?
javascript - Javascriptの実行とランタイムの単一スレッドとは何ですか?
このブログからイベントループについて学んでいますが、著者は私があまりよく知らない一般的なコンピュータープログラムの概念に取り組んでいるようです-
これには、HTTP 要求、データベース操作、およびディスクの読み取りと書き込みが含まれます。単一の実行スレッドは、ランタイムに操作を実行するように要求し、コールバック関数を提供してから、別の処理に移ります。
ランタイムであるJavascriptの別の部分と対話するために使用されるJavascriptの実行部分の単一スレッドはありますか? それともブラウザの実行部分ですか?私はおそらく完全に間違っていますが、これまでの私の理解では、Web ページにアクセスすると、ブラウザーは JavaScript を取得し、その JavaScript を実行するためのスレッドしかないため、そのスレッドを使用してランタイムにメッセージを送信します。そのスクリプトを実際に実行するための cpu の一部であり、その結果、スクリプトが Web ページで動作することになりますか?
c++ - OMP_NUM_THREADS=1 を使用した #pragma omp atomic のパフォーマンスの問題
私が書いている openmp コードの予期しない (私にとっては!) 動作を観察しました。コード構造は次のとおりです。
このコードの 3 つの異なるバージョンをコンパイルしました。
1) openmp を使用 (-fopenmp)
2) openmp なし
3) openmp あり、ただし 3 つのアトミック操作なし (アトミック操作が必要なため、テストとして)
バージョン 1) を環境変数 OMP_NUM_THREADS=1 で実行すると、バージョン 2) と比較して大幅な速度低下が見られます。バージョン 3) はバージョン 2) と同じくらい高速に実行されます。
この動作の理由 (シングル スレッドであっても、アトミック操作によってコードの速度が低下するのはなぜですか?!) と、バージョン 1) がバージョン 2)。
質問の最後に、前述の動作を示す実例を添付します。私は1)をコンパイルしました:
2) と:
および 3) 以下の場合:
コンパイラのバージョンは gcc バージョン 5.3.1 20160519 (Debian 5.3.1-20) です。3 つのバージョンの実行時間は次のとおりです。
1) 1分24秒
2) 51秒
3) 51秒
アドバイスをよろしくお願いします!
c# - 比較時間 - 結果が異なる単一スレッドと複数スレッド
このコードは、マルチ スレッドとシングル スレッドの速度をテストする目的で作成しました。すべてのフィードバックに感謝します! いただいた素晴らしいコメントに基づいて、ほとんどを書き直しました。これは適切に機能するようになり (バグがあちこちにある可能性があります)、最初にマルチスレッドをテストし、より正確な速度を見つけるために平均を取ります: (下にスクロールして続きをご覧ください。)
メインメソッド クラス
シングルスレッドクラス
マルチスレッドクラス
ワーカー クラス
このコードの出力は、投稿するには少し長すぎます (自分の IDE にコピーして貼り付けることを強くお勧めします。これは非常に魅力的です)。これがすべてのテストで同じ結果をもたらさないという受け入れられた答えは、CPUスケジューリング、ASLRなどのその他またはマイナーな問題によるものだと思います。このプログラムを実行しているビジュアルスタジオ以外にも、複数のことが起こっており、優先順位が異なります。また、メモリ割り当てが既に行われているため、最初にマルチスレッドを実行すると役立つことを指摘していただきありがとうございます。
指摘すべきもう1つのことは、実行中にこれを見つけました:
スパイクは、マルチスレッドのプロセスが行われるときです。