2016-08-10 73 views
1

每当我遇到类似“过程0确实X任务”,我倾向于认为他们的意思处理器并行计算中处理器和进程之间的区别?

读多一点之后,我发现有两个内存分类,共享内存和分布式内存: 共享内存执行类似一个线程(这意味着相同的数据是提供给所有的处理器 - 因此它是有道理的,称它为一个过程)然而,即使是分布式内存,它被称为进程而不是处理器。例如:“过程0正在计算局部点积”

这是为什么?为什么它被称为过程而不是处理器?

PS。我希望这个问题不是微不足道的:)

回答

2

这些其他答案都很有用。处理器是物理的,进程是软件。所以四核CPU有4个处理器,但可以运行更多的进程。

虽然你对分布式术语的困惑是公平的。在分布式计算中,通常会执行X个进程数等于硬件处理器数。在这种情况下,每个进程都会在软件中得到一个通常称为排名的ID。等级与处理器无关,不同的等级会有不同的任务。因此,当您报告状态时,信息与流程等级相关,而不是物理处理器。

要改写,在分布式计算中,通常会在每个处理器上运行一个进程。该过程将具有唯一的ID,这在软件中比在其上运行的物理处理器更重要,所以给出有关该过程的状态信息。由于进程和处理器数量相等,这种区别可能会有点模糊。

+0

这正是我一直在寻找的!事实上,所有的答案都很有用,但是每个进程如何具有排名以及与处理器松散关联的整体思路现在更加合理!谢谢! :) – ashishv

0

对我来说,处理器是指机器,负责计算操作。进程是某个程序的单个实例。 (我希望我明白你的意思)。

0

我会说,他们不明确地使用术语,因为上下文允许它的大部分时间,并且差异可能在一定程度上微妙。也就是说,由于每个进程(当它是单线程的)在处理器上执行时,人们通常不希望区分物理实体(处理器)和逻辑实体(进程)。考虑与多线程功能(SMTHyper-Threading英特尔处理器)和/或执行多线程应用程序,因为工艺上的任何可用的处理器(或线程)处理器运行时

这种假设可能是错误的。在这种情况下,人们在做出这种肯定时应该更加严格。尽管如此,由于可以使用affinity命令将一个进程(甚至一个线程)绑定到处理器(或处理器线程),所以在这些情况下,它们可以不明确地使用这两个术语。

2

区别是硬件vs软件。

该过程是程序的逻辑实例。处理器是运行该进程的硬件实体。大多数情况下,你不关心实际的处理器,只关心正在执行的进程。例如,操作系统可能会决定暂时让进程进入休眠状态,以便为其他应用程序提供运行时,然后它可能会在不同的处理器上唤醒它们。只要你的过程产生了预期的结果,这就不应该对你有任何兴趣:你关心的只是计算,而不是它发生的地方。

相关问题