在Intel Coffee Lake上,内存负载约为215个周期(在5GHz CPU上为43nsec)。在Ryzen上约280个循环。
看Jeff Dean著名的延迟指南
Latency Comparison Numbers (~2012)
----------------------------------
L1 cache reference 0.5 ns
Branch mispredict 5 ns
L2 cache reference 7 ns 14x L1 cache
Mutex lock/unlock 25 ns
Main memory reference 100 ns 20x L2 cache, 200x L1 cache
Compress 1K bytes with Zippy 3,000 ns 3 us
Send 1K bytes over 1 Gbps network 10,000 ns 10 us
Read 4K randomly from SSD* 150,000 ns 150 us ~1GB/sec SSD
Read 1 MB sequentially from memory 250,000 ns 250 us
Round trip within same datacenter 500,000 ns 500 us
Read 1 MB sequentially from SSD* 1,000,000 ns 1,000 us 1 ms ~1GB/sec SSD, 4X memory
Disk seek 10,000,000 ns 10,000 us 10 ms 20x datacenter roundtrip
Read 1 MB sequentially from disk 20,000,000 ns 20,000 us 20 ms 80x memory, 20X SSD
Send packet CA->Netherlands->CA 150,000,000 ns 150,000 us 150 ms
对我来说似乎有些不可思议的是,从磁盘顺序读取1MB的时间仅比在大西洋上发送往返数据包快10倍。谁能给我更多的直觉,为什么这感觉正确。
Q:1MB SEQ-HDD-READ〜比CA / NL跨大西洋RTT快10倍-为什么]感觉不错?
一些“旧”值(带有一些交叉QPI / NUMA更新from 2017,从以下位置开始:
0.5 ns - CPU L1 dCACHE reference 1 ns - speed-of-light (a photon) travel a 1 ft (30.5cm) distance 5 ns - CPU L1 iCACHE Branch mispredict 7 ns - CPU L2 CACHE reference 71 ns - CPU cross-QPI/NUMA best case on XEON E5-46* 100 ns - MUTEX lock/unlock 100 ns - CPU own DDR MEMORY reference 135 ns - CPU cross-QPI/NUMA best case on XEON E7-* 202 ns - CPU cross-QPI/NUMA worst case on XEON E7-* 325 ns - CPU cross-QPI/NUMA worst case on XEON E5-46* 10,000 ns - Compress 1 KB with Zippy PROCESS (+GHz,+SIMD,+multicore tricks) 20,000 ns - Send 2 KB over 1 Gbps NETWORK 250,000 ns - Read 1 MB sequentially from MEMORY 500,000 ns - Round trip within a same DataCenter 10,000,000 ns - DISK seek 10,000,000 ns - Read 1 MB sequentially from NETWORK 30,000,000 ns - Read 1 MB sequentially from DISK 150,000,000 ns - Send a NETWORK packet CA -> Netherlands | | | | | | | ns| | | us| | ms|
跨大西洋网络RTT:
300.000.000 m/s
)工作这些因素会不是
因此,使用该技术,[LA(CA)-AMS(NL)RTT将保留,the same ~ 150 ms
使用其他技术,例如,LEO-Sat多维数据集,“距离”仅会从9000 km P2P开始,通过一对额外的GND / LEO段,再加上一些其他LEO / LEO跃点而增加。 “更长”的距离,附加的跳/跳再处理延迟和容量将无法与当前可用的光学传输装置相提并论,因此,“回到未来”不会发生任何魔术跳跃(我们仍然会错过DeLorean) 。
READ
10 [ms]
“改善”]-所有商品生产的驱动器均保持行业选定的角速度{{5k4 | 7k2 | 10k | 15k | 18k}旋转/分钟(RPM)。这意味着,如果在这样的磁盘上维护紧凑的数据布局,则在整个圆柱体上读取一个连续的head:cylinder会读取:
>>> [ 1E3 / ( RPM / 60. ) for RPM in ( 5400, 7200, 10000, 15000, 18000 ) ]
11.1 ms per CYL @ 5k4 RPM disk,
8.3 ms per CYL @ 7k2 RPM disk,
6.0 ms per CYL @ 10k RPM disk,
4.0 ms per CYL @ 15k RPM disk,
3.3 ms per CYL @ 18k RPM disk.
数据密度也受到磁性介质属性的限制。 Spintronics的研发将带来更多密集存储的数据,但是最近30年一直在可靠的磁存储范围之内。从技巧到一次并行读取多个头,可以期望获得更多,但这与嵌入式微控制器的设计背道而驰,因此,大多数读取工作是依次进行,从一个头到另一个头HDD控制器板载缓冲区,最好是不进行缸头到缸头的机械重新对准(从技术上讲,这取决于先前的数据到磁盘的布局,由操作系统维护,并可能对磁盘进行维护)优化器(最初称为磁盘磁盘“压缩”,它只是试图重新对齐FAT描述的数据块的已知序列,以便遵循head:cyl:sector转换的最佳轨迹,这主要取决于实际情况)设备的head:head和cyl:cyl延迟)。因此,即使是最乐观的数据布局,也需要~ 13..21 [ms]
来进行查找和读取,而一个head:cyl-path
物理学定律
在Intel Coffee Lake上,内存负载约为215个周期(在5GHz CPU上为43nsec)。在Ryzen上约280个循环。2020年以来的一些数字。L1的负载在Intel Coffee Lake和Ryzen上为4个周期(在5GHz CPU上为0.8nsec。)>