1 概括
Piccolo是New York大学在OSDI 2000上发表的paper Piccolo: Building Fast, Distributed Programs with Partitioned Tables【1】提出来的一个新的分布式计算编程模型,Piccolo允许计算单元跑在不同的机器上,更重要的是它对计算过程中的共享状态数据的访问有很好的本地性,同时解决了在运行时写数据的冲突等问题。
它和MapReduce的区别在于能够轻松访问中间状态(其实就是中间结果,之后都采用中间结果的说法),由于MapReduce需要把中间结果保存到HDFS,开销比较大,所以对需要频繁访问中间结果的运算效率不高,而Piccolo把中间结果保存在内存中,Piccolo中叫做in-memory table,Piccolo对in-memory table抽象出key-value简单的操作接口,方便操作。
当然用MPI等传统的编程框架,再加上shared-memory也可以解决这种问题,但是MPI这种low-level的编程框架编写代码非常复杂,而shared-memory的性能不高。
对于之前提到的对中间结果访问密集型的场景,论文中举了几个例子:
1、PageRank,在计算一个网页的PageRank分值的时候,需要访问这个网页周围的网页的PageRank值,它周围网页的PageRank值就是被频繁访问的中间结果。
2、K-means聚类算法【2】。K-Means先选取k个对象作为初始的聚类中心,然后计算剩下的对象和聚类中心的距离,根据他们与聚类中心的距离将他们分配到就近的聚类中心,然后得出新的聚类中心,再计算其它对象和新的聚类中心的距离,重复如此,直到收敛为止。在重新计算聚类中心的时候,需要这个聚类下所有对象到之前的中心的距离,它也是分布在不同节点,同时需要被频繁访问的。
可以知道的是,类似的场景大部分出现在数据挖掘的场景下。
好了废话少说,下面分析一下Piccolo是如何实现的
2 Piccolo编程模型
//TODO
Reference
1. http://www.usenix.org/event/osdi10/tech/full_papers/Power.pdf
2. http://baike.baidu.com/view/31854.htm
分享到:
相关推荐
基于FPGA平台的Piccolo功耗分析安全性评估.pdf
设计者使用包括相关密钥不可能差分在内的多种攻击方法对算法进行了安全分析,认为对于Piccolo的相关密钥不可能差分攻击分析只能实现11轮(80 bit)和17轮(128 bit),但并未给出具体分析过程和实例。使用U-method...
ScrollView.jar需要依赖的jar包: piccolo2d-core-3.0.jar piccolo2d-extras-3.0.jar
为了评估分组密码Piccolo的积分性质,提出Piccolo算法的5轮积分区分器,对无白化密钥的Piccolo进行了7轮和8轮攻击。其中,7轮攻击的数据复杂度为217个明文,时间复杂度为220.368次7轮加密,8轮攻击的复杂度分别为218...
python库。 资源全名:piccolo_api-0.9.2.tar.gz
《TMS320F2802x Piccolo系列DSC原理及应用.doc》中文详细资料。
python库,解压后可用。 资源全名:piccolo_api-0.1.2-py3-none-any.whl
资源分类:Python库 所属语言:Python 资源全名:piccolo-0.63.0-py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
研究了一种Piccolo加密算法硬件优化实现方法,相同的轮运算只实现一次;原始算法共有r轮运算,其中密钥为80和128位时,r分别取值为25和31。优化方法直接把r-1轮重复调用变成r轮循环运算,同时在r轮循环运算完成后...
资源来自pypi官网。 资源全名:piccolo_api-0.14.1-py3-none-any.whl
ScrollView.jar需要依赖的jar包: piccolo2d.jar(已经整合piccolo2d-core-3.0.jar、piccolo2d-extras-3.0.jar)
python库,解压后可用。 资源全名:piccolo_admin-0.11.7-py3-none-any.whl
该资源是TI提供的关于28027 小型控制棒的例程,可以再改板子上运行
protues仿真DSP C2000 piccolo
Piccolo系列DSP的AD用户指南,这个系列的AD很有特色,和其他的28系列的DSP都不太一样,因此使用的朋友需要仔细研究。
piccolo2d-core-3.0 .jar是Tesseract-OCR 识别时调用的方法
低成本的TI公司的piccolo系列的DSP开发例程
piccolo ylx1111111
TMS320F2802xTMS320F2802xx Piccolo System Control and Interrupts