星期四, 七月 30, 2009

[学习笔记]scons

m5使用的编译工具是scons
花了一点时间学习了一下。确实很好用。如Eric S. Raymond所说,scons结合了python的优点,已经无人能敌。
记了笔记在这里

[学习笔记]Applications of Parallel Computers - Floating Point Arithmetic and its Impact on Algorithm Design

大多数时候我们只用到了计算机,而没有去思考为什么这么使用计算机,为什么这么设计。今天学的Applications of Parallel Computers其中一课:Floating Point Arithmetic
and its Impact on Algorithm Design
,讲到了浮点数的设计和它对算法带来的影响。

历史
Turing最早在1949就提出了Backward Error Analysis,Wilkinson和W. Kahan分别因为Backward Error Analysis和IEEE754获得图灵奖。而很有意思的,Von Neumann在1947年的时候提出关于计算精度的说法是错误的。

IEEE浮点数标准
记得在自己第一次学到浮点数的时候,感受最深的是这个标准对每一位的“斤斤计较”,对于标准化后的浮点数,省下了一位,使得可以表示的数的精度可以多出一位。知道了前面的历史,这次再学习,就明白了精度对于计算的重要性。因为计算机的位数有限,所以计算机能表示的数的范围是有限的,计算得到的结果也是在一定精度范围内,而这些是计算机研究人员需要研究的问题。
IEEE基本上每隔15年左右会对它的标准进行一次重新评估(因为计算机的发展),2008年对于浮点数的标准(IEEE754)有一些修改。

误差分析
如果x1+x2的误差是epsilon,那么x1+x2+x3+x4的误差是3*epsilon。对于许多标准的算法是数值稳定的(numerically stable)。

异常处理
5种异常:1、overflow;2、underflow;3、除0;4、invalid;5、inexact
默认条件下是出了异常,继续运算。
要考虑异常的原因是因为需要解决计算不在精度范围里面的数的时候的问题。
  • 打印最大和最小的浮点数的程序的例子
在linux下,浮点数的头文件在/usr/lib/.../include下:
lhw@ubuntu:~/$ locate float.h
/usr/lib/gcc/i486-linux-gnu/4.3/include/float.h

最大的浮点数由FLT_MAX定义。
printf("  largest float : %e\n", FLT_MAX);

附加精度开销分析
在大多数平台上(AMD、Intel、UltraSpac),单精度浮点数计算比起双精度来说,快2倍左右。因为单精度计算的硬件更快、需要取的数据量少了一半、以及更好的局部性。而在GPU和Cell上,两者之间的差距更大(分别是8倍和10倍,因为GPU和Cell的数据必须从内存通过DMA送过去,GPU和Cell更加数据敏感)。
在有些时候,需要更高的精度,所以需要混合使用double和float型。目标是得到接近双精度的结果,用的是单精度的速度。解决方法是:大部分工作用单精度完成,用双精度“清理”一些需要精度的地方。
如果双精度还不够,就需要用浮点数的数组来表示一个数。

并行算法和异构算法面临的危险
不同的平台因为硬件不同会有不同的精度和signal定义。

星期日, 七月 26, 2009

[Readings]The Snowball

很早就买了这本书,一直没时间读。原因是实验室太忙了。这次在火车上读了其中前5章。

其中一个很有意思的小故事:
Buffet从很小就喜欢收集东西,他期望着他收集的东西会在某一个时候派上用场。
还有就是,在普通人眼里看起来很稀松平常的东西,他能从中发现其他人看不到的东西,比如:
去做礼拜的时候,他发现圣歌的作曲者的平均寿命并不比普通人长。所以,他对于宗教就产生怀疑。

"Warren thought about numbers all the time and everywhere, even in church. He liked the sermons, he was bored by the rest of the service; he passed time by calculating the life span of hymn composers from their birth and death dates in the hymnals. In his mind, the religious should reap some reward for their faith. He assumed that hymn composers would live longer than average. Living longer than average seemed to him an important goal. But piety, he found , did nothing to improve longevity. Lacking any personal sense of grace, he began to feel skeptical about religion.
... Warren looked around him. There were opportunities to calculate odds everywhere. The key was to collect information, as much information as you could find."
--The Snowball

[学习笔记]Petascale Computing: Algorithms and Applications

放假两周,基本是这么打算的:
1、看看m5是怎么写的,一是学习一下别人模拟器,二是看看能不能把它并行。
2、Applications of Parallel Computers。学其中的几讲。
3、还有一些电子书,粗读一下增宽点知识面。

Petascale Computing: Algorithms and Applications
第一章笔记:

计算科学已经成为科学重要的一个支柱。
好消息是,不管多少计算能力,都能用起来。
坏消息是,不管你有多少计算能力,都不够。
提高程序的可扩展性是关键。
"  An important force which has continued to drive HPC has been a commu-nity articulation of “frontier milestones,” i.e., technical goals which symbolize the next level of progress within the field."
"  Currently, few real existing HPC codes easily scale to this regime, and major code development efforts are critical to achieve the poten-tial of the new petaflop systems."

前面十年高性能计算机的计算能力主要依靠CPU的频率加快。下一代超级计算机的性能主要依靠高性能互联和不同层次的整合。

有个问题:这5台机器,为什么有的用3D-torus,有的用fat-tree呢?
BG/L很厉害,用了三种网络:
   The BG/L nodes are connected via five different networks, including a torus,
collective tree, and global interrupt tree. The 3D-torus interconnect is used
for general-purpose point-to-point message-passing operations using 6 inde-
pendent point-to-point serial links to the 6 nearest neighbors that operate at
175MB/s per direction (bidirectional) for an aggregate bandwidth of 2.1GB/s
per node. The global tree collective network is designed for high-bandwidth
broadcast operations (one-to-all) using three links that operate at a peak
bandwidth of 350MB/s per direction for an aggregate 2.1GB/s bidirectional
bandwidth per node. Finally, the global interrupt network provides fast bar-
riers and interrupts with a system-wide constant latency of ≈ 1.5μs.

其中一篇用到的工具:IPM,可以用来得到负载的性能,对于我现在做的工作有帮助。
Integrated Performance Monitoring: Understanding Applications and Workloads
可以得到MPI的调用和通信信息。
What sort of interconnect does your workload need?这个问题是一个好问题。





星期六, 七月 25, 2009

ubuntu安装及装机软件

这次在家又装了一次ubuntu,这次装的时候连MBR都没有修改。记了笔记
另外,新发现了一个输入法:ibus。正在试用中。感觉比起scim好用。
其他几个装机必备到软件:
gnome do
google desktop
fetion

星期一, 七月 20, 2009

[分享阅读]Peteris Krumins的Google SRE面试经历

Peteris Krumins在google的面试经历,不过最后没被录取。

第一轮:(电话)
面试官会问你的skill set还有希望的工作地点。Mountain View也可以去,但是要有"get an H-1B visa that allows non-US citizens to work in the US."
第二轮:(电话)
算法。
第三轮:(电话)
电话上写程序。
第四轮:(on-site)
以前的工作
第五轮:
编程。数学。
第六轮:
(应该是跟工作相关了)解决一个系统中的问题
第七轮:
编程。字符串小程序。
第八轮:
分布式算法和数据结构。

其他链接:


[Softwares]越懒越健康的chrome

chrome可以创建application shortcut到桌面上,双击直接就打开。常用的网站就可以创建一个链接,方便快速访问,比如:gmail。(懒)
这样打开的网址是没有菜单、地址栏之类的分散注意力的东西的。(简洁)
而且chrome打开gmail的速度是比firefox快一点。(快)

再懒一点,把这个shortcut扔到launchy下。直接在launchy里面输入gmail就可以直接访问gmail了。
很喜欢chrome,chrome的开发者和我的理念是一样的。越懒,越快,越简洁,越好。

急躁?看看过来人说什么

笑来老师的博客产量太高了,读不过来,以至于有一段时间我把他的博客从最常阅读的几个博客移到了次要阅读的博客里面。今天又把它放回最常读的几个博客。在我这样的年龄段,能有一个过来人跟你讲讲经验,那是很宝贵的财富。(表哥看到肯定会笑^_^)
 

生活的本质是什么呢?无非是“你要什么就不给你什么”,而生活的智慧是什么呢?是“给你什么你就用好什么”。某种意义上,“逆境造就成功、磨难令人成熟”之类的话纯属胡说八道——更可是失败者对一生都未曾有机会体会的成功以及成功者的“意淫”式的猜想而已。失败者永远不会有机会了解成功的真相,因为人最容易受到自身经验的局限,而不曾有哪怕一点点成功经验的人更无从摆脱自身局限。

对现状不满,急于摆脱现状,往往是常人最常不知不觉就掉进去的陷阱——尽管偶尔这也是少数人的真正动力。接受现状才是最优策略,有什么做什么,有什么用什么;做什么都做好,用什么都用好。不要常常觉得苦(那样的话就会忍不住顾镜自怜,浪费精力与时间),而是要想办法在任何情况下找到情趣——快乐是一种本事。这些年我遇到的几乎所有优秀的年轻人都有个特征,他们最少对现状的不满(可能是他们的优秀使得他们更加难以不满吧?),他们热爱自己的生活,他们相对更不在意外界的影响,他们更专注做事而心无旁骛,他们当然每时每刻都更加优秀。

为什么看到这篇文章会有感触,是因为在做科研的选择上也是如此。年轻人(就是说我自己)总是对很多事情很感兴趣,对于新鲜的研究方向很热衷。所以在自己所在的方向上碰到困难的时候,就很容易想到要换一个简单的方向来做。——如果抱着这么一种挑简单的事情来做的心态,是绝对做不出什么成就的。道理很简单,对于你很简单的事情,对于别人也一样简单。而且,这个世界上聪明人那么多,在一件事情上没花够时间,是不会有超出别人的成果的。

星期日, 七月 19, 2009

[Readings]Laws Of Success & Think and Grow Rich

Napoleon Hill写的Laws Of Success 和Think and Grow Rich这两本书在我的博客里面应该出现过多次了。
隔一段时间我就会重新读一遍。
他这两本书很早了,所以现在应该不受版权限制了,这次找了一个在线的版本。

链接如下:
Laws of Success在线版本。(加了很多广告,可以用了grease monkey去除广告的脚本后看。)
Think and Grow Rich在线版本

p.s.另外,可以看看我的图书馆里面收藏的书

Feynman's lectures online

terry的博客看到这个消息。

Feynman的讲座可以从微软的TUVA看到

星期五, 七月 17, 2009

google reader的follow功能

慢慢开始发现这个功能很有趣,很好玩。
而且比起twitter更好玩。
twitter还得自己去写:"现在正在做什么",google reader直接就是"现在正在read什么"。

更懒更强大!

如果在读一个rss的时候发现其他人也喜欢这篇文章,还可以去follow其他人。
这样就会有社交网(Social Networking System)。对于我这种整天靠rss来获得资讯的人来说,这个功能真是太强大了。
Nice!

星期二, 七月 14, 2009

[讨论班]如何撰写高质量的ppt

最重要的

听众是谁,要传达的意思是什么。

站在听众的角度。


材料的组织方法

中心思想。分哪几个层次去说。

展现形式:图或是其他形式

 

从最早到最后版本

在时间受限条件下,把最强烈的信息给传达

工程性很强,怎么把亮点给提炼出来。

怎么把亮点和成就联系起来。

怎么打碎,把科学进步联系起来。

想了非常多时间来提炼。

 

第一页

主要科研经历

(图)用一句话来概括,工作是什么

中心思想

 

重要的

三页同行评价。

非常难的,目前为止最好的方法。在多核、机群、……都有效

an important step in the right direction 

证据,得有份量


“震撼力”

不能念。(时间)肯定不够。

要想,这一页ppt要告诉听众的是什么。

不然,会陷入�嗦。

有些不需要说,停顿。(听众眼睛不会停)

包括肢体,让听众来接受。

重要的讲出来(防止听众走神),其他的不需要说。

 

练习4-5

眼睛看着听众。

缓慢而有力

似乎看着,超过头顶往远处看

哪几个字是需要念的

不要盯着屏幕,要看着听众。三七开。

重要ppt次数不多。要好好准备。

星期四, 七月 09, 2009

[News]Barbara Liskov

做研究的人都是喜欢解决问题的人。CACM中写了一篇文章报导Barbara LiskovLiskov's Creative Joy

[article image]
Credit: Jared Leeds

The greatest joy Barbara Liskov has experienced in her distinguished career has not been the results of her influential work but the creative process itself. "It's incredibly exciting," she says, "to be thinking about a problem and suddenly see a way to solve it that you hadn't thought of before, and that makes a lot of other problems go away." Creative activity is what makes research so interesting, she says, and "is not dissimilar" to what artists of all types experience during their work process. "It just happened to show up for me while thinking through solutions to problems," she says.

"I stood back and thought about programming methodology and what I did in organizing the system. I saw there was this different technique being used," she says.
stand back的意思是说,研究来自于工程,但是要高于工程。要想一想工程里面的东西。

"It's much better to go for the thing that's exciting," Liskov says. "But the question of how you know what's worth working on and what's not separates someone who's going to be really good at research and someone who's not. There's no prescription. It comes from your own intuition and judgment."

星期一, 七月 06, 2009

不要止步

今天读Readings in Computer Architecture里面两篇文章:
An Introduction to Disk Drive Modeling [pdf]
A Case for Redundant Arrays of Inexpensive Disks (RAID) [pdf]

Disk Drive Modling这篇文章给我留下深刻印象的是它对磁盘模型的一步步细化。对磁盘模型初步建模考虑到了I/O大小、寻道距离和旋转时间,模拟结果和实测结果为15%的误差。作者继续发掘模型不完善的地方,加入实测的寻道信息,误差降到了6.2%。这个时候,作者进一步加入旋转时间的位置模型,最后把误差降到了2.6%。
大多数人都不会这么精益求精的去抠每个细节。百分之九十的人会满足于第一个15%的结果,少于百分之十的人也许会去改进到6.2%,只有不到百分之一的人会去再改进到2.6%。这个就是做研究的品质,把一件事做到极致。(《成功法则》:"彻底解决一件问题,往往会带来意外的收获。")

RAID这篇文章是在Arrays of Inexpensive Disks(AID)的基础上加了Redundant,加Redundant的原因也是因为AID虽然提高了速度,但是降低了可靠性,加上R以后,弥补了可靠性,使得RAID又快又可靠。

两篇文章的共同点都是对现有的看上去还不错的结果的进一步改进。做研究的人对于研究的事情的标准要高于大多数人。一件事情,改进了一步,大多数人都觉得"还行"了,但做研究者自己还是不满意,继续改进,直到它达到自己的标准为止。

星期日, 七月 05, 2009

[Digest]《成功法则全书》・培养创造力

最近自我感觉没有活力。一方面跟每天从事相同的工作有关,还有一个重要的原因是自己不再每周自我激励了。

生活如果很安逸,就不想着去改进现状。


  • 以下摘自《成功法则全书》第七章、培养创造力:

成功的人喜欢问:"怎样做才能做得更好?"

拿破仑希尔教过的一位从商仅四年的女学生,她在四年内又开了第四家五金店。这真是了不起的成就。因为这位女土创业时只有3500美元的资金。她既要应付同行的激烈竞争,而且又缺乏经验。她的新五金行开幕后不久,拿破仑希尔前去道贺,并问她怎么会有这样的成就,而其他大部分的商人都还只为一门店铺努力挣扎。她回答道:"我确实是很努力。但是只靠早起与加班是不能以赢得这4象店面的。这一行大部分的人都是很努力地工作的。我的成功主要是靠我自创的'每周改良计划'。其实这也没有什么特别,它只是一种帮助我每过一周,就可以把工作做得更好的计划罢了。"

为了使我的思考上 轨道,我把工作分四项:顾客、员工、货品、升迁。我每天把各种改进业务的构想记录下来。然后每星期一的晚上,我花4小时检视一遍我写下的各种构想,同时考虑如何将一些较踏实的构想应用在业务上。在这四小时内,我强迫自己严格检讨我的工作。我不会仅仅盼望更多的顾客上门,我会问自己:'我还能做哪些事情来吸引更多的顾客?''我要怎样开发稳定、忠实的老主顾呢?'

"她继续说明能使她最初三个店铺成功的许多小小的创新行动,比如:改变商品的陈列方式;'建议式的销售技术'使本来不打算买东西的有三分之一买了;针对因罢工而失业的顾客,实施信用计划, 使顾客得以延期支付货款;以及"购买竟争计划"使淡季销售额仍能增加。我问自己'我还能做什么来改进商品的销售呢?我又想到一些主意,其中之一是,我想到我该做一些事来吸引更多的小孩进我的店面。因为,如果我一些能吸引小孩上门的商品,也就能吸引更多的大人,我不断地想,我想到了一个主意,那就是在供应4至8岁小孩的产品堆中多加一排小型的纸玩具。结果真的很管用。这些玩具不占什么空间,也卖了不少钱。但最重要的是,这些玩具使店面的顾客川流不息。

"请相信我,我的'每周改良计划'真的有效。此外,我还学到有关成功的生意观念,这是每一位从商的人都该知道的。""是什么呢?"我问道。"那就是:你起先懂多少并不重要。最重要的是,你开张以后学到什么,以及如何应用。