問題タブ [high-speed-computing]
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 - 並列コーディングに切り替える
私たちは皆、シングルプロセッサ用のコードを書いています。いつ私たち全員がマルチプロセッサでコードを書くことができるのだろうか?
この切り替えには何が必要ですか(ソフトウェアツール、ロジック、アルゴリズム)?
編集:私の見解では、私たちは多くのタスクを並行して行うので、同じ方法でそれらの実際のソリューション(アルゴリズム)をコンピューター言語に変換する必要があります。OOPコーディングが手続き型コーディングに対して行ったのと同じように。OOPは、手続き型よりも実際のコーディングスタイルです。だから私はそのような解決策を望んでいます。
mysql - MySQLで非常に大きな(20 GB).sqlファイルを実行するためのより高速なオプション
私の会社は、政府からのデータの要求に応じて20GB以上の.sqlファイルを配信されました。別の形式でデータを取得するためのオプションがあまりないので、妥当な時間でデータをインポートする方法のオプションが必要です。Navicatのバッチ実行ツールを使用して、ハイエンドサーバー(Win 2008 64ビット、MySQL 5.1)で実行しています。14時間稼働しており、完了間近の兆候は見られません。
誰かがそのようなトランザクションのためのより高速なオプションを知っていますか?それとも、ファイルサイズが大きいことを考えると、これは私が期待すべきことですか?
ありがとう
io - マイクロコントローラは IO ピンからどのくらいの速さで読み取ることができますか?
実際に不思議に思うのは以下のようなもの。20 Mhz のマイクロコントローラに 8 ビット データ、1 クロック、および 1 データ有効信号を供給します。次に、イーサネットまたは USB 経由でデータを送信します。これが STM32F2xx などのマイクロコントローラで実行できるかどうかは疑問です。
どうもありがとうございました。
filtering - フィルタを高速で実行する
CVI で信号処理ソフトウェアを作成しています。USB経由で非常に高速(〜50K)でコンピューターに送信される信号があります。RTでフィルタリングしたい。それを行うために、Simulink でフィルターを作成し、それを C コードに変換して、CVI で実行します。
- FuncName_initialize()
- FuncName.in
- FuncName_step()
- FuncName.Out
問題は、しばらくすると (約 5 ~ 7 分) フィルターが正しく機能しないことです...つまり、不正確な結果とアーティファクトが表示されます。これは、速度が速すぎた結果だと思います (以前は低速で使用していたので問題ありませんでした)。
何が問題なのかについて何か提案はありますか? CVI で RT フィルタを直接実装するにはどうすればよいですか (ウィンドウを維持しながら、入力で 1 ポイントを取得し、出力で 1 ポイントを取得するものを意味します)。
信号の記録は正常に機能し、生データを画面に表示することも正常に機能するため、この速度でデータが正常に送信されることはわかっています。
ありがとうございました
cpu-architecture - ローカル CPU は、パケット受信時にリモート CPU のパフォーマンスを低下させる可能性があります
私は 2 つの Intel Xeon CPU E5-2620 (Sandy Bridge) と 10Gbps 82599 NIC (2 ポート) を搭載したサーバーを持っており、これをハイパフォーマンス コンピューティングに使用しました。PCI アフィニティから、10G NIC が CPU1 に接続されていることがわかります。実験を行うためにいくつかのパケット受信スレッドを起動しました。スレッドはパケットを受信し、IP/UDP 解析を行い、バッファにコピーします。10G NIC に使用したドライバーは IOEngine PacketShader/Packet-IO-Engine · GitHub
Q1! アイドル状態の CPU1 は CPU0 のパケット受信性能を低下させます
1.1) CPU0 に 1 つまたは 2 つまたは 4 つのスレッドが結合されている場合、すべてのスレッドの全体的なパフォーマンスは約 2.6 ~ 3.2Gbps です 1.2) 2 つのスレッドが CPU1 に結合されている場合、全体的なパフォーマンスは 16.XGbps 1.3) 4 つのスレッドが結合されている場合CPU1 への全体的なパフォーマンスは 19.XGbps (2 * 10G ポートで最大)
CPU0 は NIC に直接接続されていないため、CPU0 での最大受信速度は 2.6 ~ 3.2Gbps のようです。ただし、計算集約型のプロセスが CPU1 で実行されると、CPU0 のパケット受信スレッドが 2 スレッドで 15.XGbps、4 スレッドで 19.XGbps にブーストされることがわかりました。
これは電源管理のせいですか?CPU1 がアイドル状態の場合、省電力モードで動作しますか? そうだとしても、CPU1 が CPU0 のパフォーマンスにどのように影響するのでしょうか? QPI について不明な点はありますか?
Q2!CPU1 の過負荷により、すべてのパケット受信パフォーマンスが低下する
2.1) 1 つのパケット受信スレッドが CPU0 で実行され、1 つのパケット受信スレッドが CPU1 で実行される場合、全体のパフォーマンスは 10Gbps です。各スレッドのパフォーマンスはほぼ同じで、5.X Gbps です。2.2) 2 つのパケット受信スレッドが CPU0 で実行され、2 つのパケット受信スレッドが CPU1 で実行される場合、全体のパフォーマンスは 13Gbps です。また、各スレッドのパフォーマンスはほぼ同じで、2.1、1.2、および 1.3 よりも低い 3.X Gbps です。
つまり、CPU0 と CPU1 の両方で実行されているスレッドを受信すると、すべてのスレッドが最大のパフォーマンスを達成できず、パフォーマンスはほぼ同じになります。
NUMA と QPI について知らないことがたくさんあると思いますが、これについて説明してくれる人はいますか? ありがとう