`
jonathan_zz
  • 浏览: 25987 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Transactional Memory (一)

    博客分类:
  • STM
阅读更多

        早在上学期的时候,就决定写一篇STM相关的小论文,争取在这个学期完成这个目标吧。前段时间开始认真看论文了,打算把看的过程中的一些体会和笔记以博客的形式记录在这里,方便论文的成型。今天的第一篇博客就简单的闲聊下吧。

        多核处理器的出现似乎带着一丝的无奈——人们早已习惯在顺序的条件工作,用并发这种伪并行形式榨取着CPU的能力。一般的并行模型大致可以分为两类:数据并行和任务并行。对于前者,相对简单自然,一些用于科学计算的语言,如HPF对矩阵的并行运算已经有了很好的支持。但是后者,正是现在让我们头疼的东西。对于任务并行,我们缺乏抽象和组合这两样有效的认识和管理复杂性的工具。就在人们发现对于一般的编程的并行化是非常困难的时候,数据库领域却成功的利用着并发带来的效率。

        人们将注意力集中到了数据库系统的核心模型--事务上,于是事务性内存这种在共享内存条件下使用的并行计算模型,在上世纪90年代中期出现了。事务性内存可以分为软件事务性内存(STM)和硬件事务性内存(HTM),以及两者的混合体。 我关注的主要是软件事务性内存。事务的特性可以主要概括为ACID(Atomicity,Consistency,Isolation, Durability),它们为在并行环境下对共享内存进行正确的读或写操作了基础。之后的文章会有详细的介绍。

        STM虽然不是并行编程中的万能药,但是它可以把同步和协调并行计算的负担从程序员的肩上转移给编译器,运行时系统和硬件上。所以如何建立一个有效的STM系统就是我在论文中想探讨的,下篇文章将介绍事务的概念和特性。

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics