6.824 - Spring 2017 Lecture 1 Introduction
最近看 mit-6.824,每个 lecture 会做一次笔记,每个笔记基本都分为,
- Readings:课前阅读的论文
- Lecture:讲义
- Lab:实验
Readings
MapReduce: Simplified Data Processing on Large Clusters论文
实现
map task运行时,
最近看 mit-6.824,每个 lecture 会做一次笔记,每个笔记基本都分为,
map task运行时,
在Python中,说到generator,就不得不提iterator和iterable,下面这张图来自Iterables vs. Iterators vs. Generators,这里做个简单的说明(文章很好的解释了这三者的关系与区别)。
除了在原子操作中标记memory ordering外,还可以单独使用fence指定memory ordering。Fence是全局的操作,它影响所执行线程中其他原子操作的ordering。
如果
memory_order_release
,memory_order_acq_rel
或memory_order_seq_cst
的store,memory_order_consume
,memory_order_acquire
或memory_order_seq_cst
的load,那么这个操作链构成一个release sequence,并且
memory_order_consume
是关于data dependency的,我的理解是更细粒度的acquire-release,通过使用memory_order_consume
,可以避免对其他无依赖的数据强加同步。
Memory ordering描述了CPU访问系统内存,执行load和store的顺序。Memory ordering包括编译时编译器生成的和运行时CPU生成的。为了高效地执行指令,只要不影响单线程程序的行为,编译器和CPU常常会对指令进行memory reordering,使得访问内存的操作不会按照程序代码中指定的顺序执行。