マルチコアシステムがどのように機能するか、そして多くのコアを持つシステムのために効率的なプログラムをプログラムする方法を理解しようとしています。これは非常に難しいトピックですが、可能な限り最速のソリューションに非常に興味があります。
まず第一に、私は糸脱毛がどのように機能するかを理解しようとしています。ほとんどの場合、マルチスレッドによってパフォーマンスが劇的に向上することは明らかです。このページによると、これはマルチスレッドの仕組みです。
しかし、なぜNスレッド間の切り替えがNスレッドを1つずつ実行するよりも速いのでしょうか。CPUが1つしかないシステムでスレッド化はどのように機能しますか?
次に、ポイントまたはマルチコアプログラミングとは何ですか?ポイントはコア間でスレッドを分割し、コア間でタスクを分割することだと思いますか?しかし、どうすれば4つのCPUのシステムで8つのスレッドを均等に分割できますか?
CPU間でスレッド/プロセスを分割するためにプロセッサアフィニティ(cpu_affinity )を使用する必要がありますか?4つのCPUを搭載したシステムでpthread_createを使用して4つのスレッドを作成し、各CPUで各スレッドを実行できますか?
ハイパースレッディングはどのように役立ちますか?それはまったく役立ちますか?マルチコアシステムにCPUキャッシュプログラミングをどのように使用できますか?
たとえばMySQLのような大きな古いプロジェクトでは、多くのCPUシステムの利点を十分に活用するのが難しいのはなぜですか?
この問題の理論と、 Linuxシステムの実用的なソリューション/例/プロジェクト/書籍/記事(Cを使用)にも興味があります。
私はこれがますます重要なトピックであることを知っており、私が興味を持っているのは私だけではないことを願っています。