問題タブ [affinity]
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# - Mono (Linux) で現在のスレッドのプロセッサ アフィニティを設定する
カスタム タスク スケジューラを作成しています。Mono (Linux で実行) で現在のスレッドのプロセッサ アフィニティを設定する方法があるかどうかを知りたいです。
Windows で実行されている .NET ランタイムについては、Lenard Gunda の「選択したプロセッサ コアで .NET スレッドを実行する」という記事に従って、これを機能させることができました。ただし、彼のアプローチは Mono (および Linux) では次の理由で失敗します。
- ライブラリ
GetCurrentThreadId
での P/Invoke 呼び出しが必要です。Kernel32.dll
- この
Process.Threads
プロパティは現在、Mono で空のコレクションを返します。
誰でもこれに対する回避策を教えてください。
c++ - pthreads を介して C++ 11 でスレッド コア アフィニティを取得する
C++ 11.
私はすでにさまざまなトピックやインターネットを検索しましたが、C++ 11 API はそのような低レベルの機能を提供していないようです。
一方、pthreads にはpthread_setaffinity_npが付属しています。これは、std::thread の "pthread_t" 値を取得できる場合に役立ちます (これが人間の合理的な要求なのか、少なくとも正当な要求なのかはわかりません)。
私が最終的にやりたいことのサンプルプログラムはこれです:
プロジェクトのアーキテクチャ全体を変更しないことを本当に望んでいます(そのような特性を提供する必要があります)。私は現在 std::thread を大量に使用していますが、例で見たように、さらに pthread API を使用することもできます。
この問題を解決する方法はありますか?
c++ - CPU アフィニティの変更は他の機能のパフォーマンスに影響します
次の全体的なフレームワークを持つ C のコードがあります。
コードはいくつかのグローバル変数を変更しており、これがそれらの接続方法です。ではfunc_Par()
、3 つのスレッドが作成されます。すべてのスレッドが同じ関数、つまり を使用していますThreads_Func()
。スレッドの数に基づいて、次のコードを使用しThreads_Func()
て各スレッドの CPU アフィニティを変更します。
これが、説明できない奇妙な動作です。の CPU 時間を測定してい func_A
ますfunc_B
。func_C
結果は次のとおりです (すべての結果はマイクロ秒単位です)。
で CPU アフィニティを設定する場合Threads_Func()
:
で CPU アフィニティを設定しない場合Threads_Func()
:
ご覧のとおり、関数は順番に実行されますが、CPU アフィニティを設定すると、他の関数の時間が 2 倍になります。func_Par
他の機能でのパフォーマンスの低下を回避しながら、CPU アフィニティを設定する (パフォーマンスを向上させるために) 何をすべきかを理解しようとしています。
参考までに、コンパイラが順序を変更しないように、フラグをgcc
使用してコードをコンパイルしています。-O0
また、クアッドコアプロセッサを使用しており、OS は Linux Ubuntu です。
どんな助けでも大歓迎です。よろしくお願いします。
r - 複数のデータセットで read.transactions をループする
個別に実行したいファイルが多数ありますread.transactions()
(ARULES パッケージの一部)。
私はこのようなことをしたいと思います:
これまでのところ、コードをコピーしているだけです。明らかに、ループ内でこれを行う方が速いようです。ソース データは既にフォーマットされ、並べ替えられ、同じ場所にあるため、複数のディレクトリが関係する問題について心配する必要はありません。
私はRが初めてなので、これをどのように構造化するか完全にはわかりません。仕事をする別の同様の質問(ループに関するもの)がある場合は、正しい方向に向けていただければ幸いです。
ありがとう。
php - PHPでCPUアフィニティを設定しますか?
非常に簡単な質問 - PHP 経由で CPU アフィニティを設定する方法はありますか? 次のいずれかが行われます。
- PHP 呼び出しを介して現在のプロセスのアフィニティを設定します。
- PHP 呼び出しを介して特定の PID のアフィニティを設定します。
- 最後の手段として、コマンドライン ツールを使用して特定の PID のアフィニティを設定します。
これまでに見つけた唯一のオプションは、schedutils という名前のツールを使用する最後のオプションであり、最近のカーネルでのみサポートされているようです。
signalr - 負荷分散: 1 人のユーザー、複数のデバイスを同じサーバーに
次のような状況があります: ユーザーが PC を使用して ASP.NET MVC4 アプリにログインします。このアプリは、ロード バランサーの背後にある複数の IIS サーバーで実行されています。この後、サーバーとクライアント間の SignalR 接続が確立されます。ユーザーがこのメイン アプリにログオンすると、タブレットまたは電話を使用して 2 番目の画面を追加できます (別のネットワークでもかまいません)。ここでは、ユーザーもログインして SignalR 接続を取得します。
サーバー上のアプリで一種のイベントが発生し、このイベントを SignalR 経由で両方のデバイスに送信する必要があります。したがって、両方のデバイスが同じ IIS サーバーに接続されている必要があります。
ロードバランサーの経験はまったくありません。1 人のユーザーが複数のデバイスを使用しているロード バランサーを、そのすべてのデバイスを含む同じサーバーに常にルーティングするように強制できますか? もしそうなら、どのロードバランサーが推奨されますか?