Journal of Parallel and Distributed Computing ( IF 3.4 ) Pub Date : 2020-06-22 , DOI: 10.1016/j.jpdc.2020.06.005 Pankaj Khanchandani , Roger Wattenhofer
Herlihy showed that multiprocessors must support advanced atomic objects, such as compare-and-swap, to be able to solve any arbitrary synchronization task among any number of processes (Herlihy, 1991). Elementary objects such as read-write registers and fetch-and-add are fundamentally limited to at most two processes with respect to solving an arbitrary synchronization task. Later, it was also shown that simulating an advanced atomic object using elementary objects is impossible. However, Ellen et al. observed that the above impossibility assumes computation by synchronization objects instead of synchronization instructions applied on memory locations, which is how the actual multiprocessors compute (Ellen et al., 2016). Building on that observation, we show that two elementary instructions, such as max-write and half-max, can be much better than the advanced compare-and-swap instruction. Concretely, we show the following.
- •
[1.] Half-max and max-write instructions are elementary, i.e., have consensus number one.
- •
[2.] Half-max and max-write instructions can simulate compare-and-swap instruction in steps.
- •
[3.] For a pipelined butterfly interconnect, concurrent throughput of half-max and max-write instructions exceeds the concurrent throughput of compare-and-swap by a factor — the number of processes.
- •
[4.] The family of instructions max-write-or- are also elementary, where is a commutative and an associative operation.
- •
[5.] It takes steps to simulate max-write-or-add using compare-and-swap but steps to simulate compare-and-swap using max-write-or-add and half-max.
中文翻译:
两条基本指令进行比较和交换
Herlihy表明,多处理器必须支持高级原子对象,例如比较和交换,才能解决任意数量的进程之间的任意同步任务(Herlihy,1991)。就解决任意同步任务而言,诸如读写寄存器和获取与添加之类的基本对象从根本上限于两个过程。后来,还显示了使用基本对象模拟高级原子对象是不可能的。然而,艾伦等。观察到上述可能性是假设同步对象进行计算,而不是应用应用于内存位置的同步指令,这就是实际多处理器的计算方式(Ellen et al。,2016)。基于该观察结果,我们显示出两个基本指令,例如max-write和half-max,可以比高级的比较和交换指令好得多。具体地,我们显示以下内容。
- •
[1.] Half-max和max-write指令是基本指令,即共识号为1。
- •
[2.] Half-max和max-write指令可以模拟比较和交换指令 脚步。
- •
[3.]对于管道蝶形互连,半最大和最大写入指令的并发吞吐量比比较和交换的并发吞吐量高出一个系数 —进程数。
- •
[4.]指令系列max-write-or- 也很基础 是可交换的和关联的运算。
- •
[5.] 使用比较和交换来模拟最大写入或添加的步骤,但是 使用max-write-or-add和half-max模拟比较和交换的步骤。