我可以运行多少个并行进程?
How many parallel process can I run?
我有一个带有 8 个逻辑处理器的 corei7 处理器。
我正在尝试 运行 使用 parallel.For 在 dotnet core 2.2 中执行并行任务。
当我测量开始时间时,有 9 个任务并行启动。
不是应该只有8吗?
下面你可以看到:
i => [ThreadId],[ProcessorNumber] == 开始时间 - 结束时间
并行任务结果
您可以 运行 任意数量的并行任务,但处理器只有 8 个逻辑核心来同时处理 8 个线程。其余的总是排队等待轮到他们。
因此,如果您有 16 个并行进程,每个进程 运行 需要 200 毫秒,那么您将 运行 并行处理 1-8 200 毫秒,然后并行处理 9-16 200 毫秒,总计 400 毫秒。如果您有 4 个逻辑核心,您将 运行 并行处理 1-4、5-8、9-12、13-16,总计 800 毫秒。
我有一个带有 8 个逻辑处理器的 corei7 处理器。
我正在尝试 运行 使用 parallel.For 在 dotnet core 2.2 中执行并行任务。 当我测量开始时间时,有 9 个任务并行启动。 不是应该只有8吗?
下面你可以看到:
i => [ThreadId],[ProcessorNumber] == 开始时间 - 结束时间
并行任务结果
您可以 运行 任意数量的并行任务,但处理器只有 8 个逻辑核心来同时处理 8 个线程。其余的总是排队等待轮到他们。
因此,如果您有 16 个并行进程,每个进程 运行 需要 200 毫秒,那么您将 运行 并行处理 1-8 200 毫秒,然后并行处理 9-16 200 毫秒,总计 400 毫秒。如果您有 4 个逻辑核心,您将 运行 并行处理 1-4、5-8、9-12、13-16,总计 800 毫秒。