@article{oai:ipsj.ixsq.nii.ac.jp:00218137, author = {前田, 宗則 and 小林, 伸治 and 加藤, 純 and 佐藤, 充 and Munenori, Maeda and Shinji, Kobayashi and Jun, Kato and Mitsuru, Sato}, issue = {2}, journal = {情報処理学会論文誌プログラミング(PRO)}, month = {May}, note = {我々が開発したRMIスレッド基盤は,ユーザレベルスレッドを用いてNUMA型マルチプロセッサ計算機上で細粒度な並列処理を実現するマルチスレッドフレームワークである.RMIスレッド基盤は,データセンタでのSDx応用をターゲットとしており,応答性能やスループット性能に加えて,より平易にマルチスレッドプログラミングが行えることを要件としており,スレッドプールと動的負荷分散を備えたアーキテクチャを採用している.動作環境となるNUMAアーキテクチャは,メモリアクセスのコストがNUMAノードを跨ぐか否かで不均等であり,ノード間で共有したデータ構造に対してアクセス競合が発生するとレイテンシが著しく増加する特徴を持つ.そのため,動的負荷分散の定番であるワークスチーリングアルゴリズムでは,OS介在を排除したノンブロッキングアルゴリズムを用いても,プロセッサ数に対してスケーラブルな性能を実現することは困難である.RMIスレッド基盤の動的負荷分散方式は(1) SPSC(Single-producer Single-consumer)キューでコア間を全体全で接続し,(2) NUMAノード内外でタスクの分散確率を動的に変更する負荷分散戦略を適用することにより,CPU使用率の向上を得た.本論文では,まずNUMAアーキテクチャでの複数の共有キュー方式の性能比較を行った後,負荷分散戦略の方式とその評価を示す., RMI threading environment, we have developed, supports fine-grained parallel processing for NUMA multiprocessor systems over 16k user-level lightweight threads. This aims at a framework of SDx, software-defined-everything, and appeals not only short latency and high-throughput for such applications, but also better programmability without thread affinity awareness upon creation by using both thread pool and dynamic load balancing. NUMA architectures are characterized to have different memory access costs among nodes, and its performance sometimes remarkably degrades while access conflicts are occurred for shared data. Existing work-stealing algorithm for dynamic load balancing is difficult to scale performance on NUMA because it shares a single task queue among processors even non blocking algorithms with fully OS-bypassed. RMI threading environment adopts (1) SPSC, Single-producer Single-consumer, queues to connect processors all-to-all, and (2) load balancing strategy which adjust task distribution probability depending on local/remote NUMA nodes. This paper shows performance comparison among shared queue algorithms, then presents our load balancing strategy and its evaluation.}, pages = {5--5}, title = {NUMAアーキテクチャに適した軽量スレッド向け動的負荷分散方式}, volume = {15}, year = {2022} }