星期六, 十月 31, 2009

[Coding]Have fun with hybrid Python and C++ with SWIG & SCons

Try out the example below(example.c/i, SConstruct). Have fun!

$ scons
$ python
 >>> import example
>>> example.fact(5)
120
>>> example.my_mod(7,3)
1
>>> example.get_time()
'Sun Feb 11 23:01:07 1996'
>>>


example.c
/* File : example.c */

#include <time.h>
double My_variable = 3.0;

int fact(int n) {
    if (n <= 1) return 1;
    else return n*fact(n-1);
}

int my_mod(int x, int y) {
    return (x%y);
}

char *get_time()
{
    time_t ltime;
    time(&ltime);
    return ctime(&ltime);
}
example.i:
/* example.i */
%module example
%{
/* Put header files here or function declarations like below */
extern double My_variable;
extern int fact(int n);
extern int my_mod(int x, int y);
extern char *get_time();
%}

extern double My_variable;
extern int fact(int n);
extern int my_mod(int x, int y);
extern char *get_time();

SConstruct:
import distutils.sysconfig
env = Environment(SWIGFLAGS=['-python'],
CPPPATH=[distutils.sysconfig.get_python_inc()],
SHLIBPREFIX="")
env.SharedLibrary('_example.so', ['example.c', 'example.i'])



星期五, 十月 30, 2009

[Tools]用vim写latex的插件:Vim-latex (cont.)

visually select a word and excute a command on it:

`sf
\textsf{word}

,se
\section{section name}

,ce
\centerline{word}
`(  encloses selection in \left( and \right) `[  encloses selection in \left[ and \right] `{  encloses selection in \left\{ and \right\} `$  encloses selection in $$ or \[ \] depending on characterwise or                                       linewise selection

g:Tex_Leader

Type String
Default Value '`'

g:Tex_Leader2

Type String
Default Value ','

Reference:
http://vim-latex.sourceforge.net/documentation/latex-suite.html

Vimrc for Python Coding Style

Indenting Python with VIM
http://henry.precheur.org/2008/4/18/Indenting_Python_with_VIM.html

Python Coding Style
http://www.python.org/dev/peps/pep-0008/

indent/python.vim : An alternative indentation script for python
http://www.vim.org/scripts/script.php?script_id=974

[Tools]用vim写latex的插件:Vim-latex

最近需要用到vim来写latex,所以就下了vim-latex这 个包来用。
开始时用的还不是很顺手,因为它的文档写得很差。
而且因为是小众软件,在google上也搜不到什么资料。

用了一个下午,有一些Tips。简单记录一下。
最主要的一条:Read the f**cking source code!
比如,在其晦涩难懂的User Manual里面说到:
These maps insert LaTeX sections such as: ... Example: SSE in insert mode inserts  \section{<++>}<++>
其实,就是在你输入"SSE"的时候自动帮你替换成"\section{<++>}<++>"。 vim-latex之所以好用,是因为它提供一系列快捷键来使你编辑LaTeX更方便。但是我一开始肯定是记不住这些所谓的快捷键的,而我又查不到网上有 快捷键列表之类的文档。等到真正写latex的时候,仍然不会去使用,这个让人很烦躁。
解决方法就是:读源代码。这里特指读一下vim的plugin里面的代码。
~/.vim/ftplugin/latex-suite$ grep --color -n -r --include=* --include=*.* ./* -e SSE ./envmacros.vim:256:call s:Tex_SectionMacros('SSE', 'section') ./texrc:423:"       SSE for section ./wizardfuncs.vim:333:\."\n SSE   ".g:Tex_Leader2."se   section" 
找一下envmacros.vim,就可以看到所有的 Macros:
" Sections {{{ call s:Tex_SectionMacros('SPA', 'part') call s:Tex_SectionMacros('SCH', 'chapter') call s:Tex_SectionMacros('SSE', 'section') call s:Tex_SectionMacros('SSS', 'subsection') call s:Tex_SectionMacros('SS2', 'subsubsection') call s:Tex_SectionMacros('SPG', 'paragraph') call s:Tex_SectionMacros('SSP', 'subparagraph') " }}}
Have fun!

星期三, 十月 28, 2009

[Coding]代码风格

K&R

缩进为4格,{跟在控制语句后面
int foo(int k)
{
    if (k < 0 || k > 2) {
        printf("out of range\n");
        printf("this function requires a value of 1 or 2\n");
    } else {
        printf("Switching\n");
        switch (k) {
        case 1:
            printf("1\n");
            break;
        case 2:
            printf("2\n");
            break;
        }
    }
}
使用K&R
$ indent -kr *.c *.h
在.vimrc中添加
function! KRIndent()
        set shiftwidth=4
endfunction
au FileType c,cpp,h,hh call KRIndent()

GNU

函数类型定义另起一行。缩进为2格。{另起一行。
int
foo (int k)
{
if (k < 0 || k > 2)
{
printf ("out of range\n");
printf ("this function requires a value of 1 or 2\n");
}
else
{
printf ("Switching\n");
switch (k)
{
case 1:
printf ("1\n");
break;
case 2:
printf ("2\n");
break;
}
}
}
使用GNU
$ indent *.c *.h
在.vimrc中添加
function! GnuIndent()
        setlocal cinoptions=>4,n-2,{2,^-2,:2,=2,g0,h2,p5,t0,+2,(0,u0,w1,m1
        setlocal shiftwidth=2
        setlocal tabstop=8
endfunction
au FileType c,cpp,h,hh call GnuIndent()
其他,还有Linux/BSD等等。有兴趣的话可以参考Reference

Reference
http://en.wikipedia.org/wiki/Prettyprint
http://en.wikipedia.org/wiki/Indent_style
http://www.gnu.org/software/indent/manual/indent.html

[讲座]The Future of Computing is Parallel

清华海外名师讲堂第58 Bill Dally教授清华大学演讲

 

演讲题目 The Future of Computing is Parallel

Prof.Bill Dally

Fellow of the American Academy of Arts & Sciences

Chairman of the Computer Science Department at Stanford University

Bell Professor of Engineering, Stanford University

Chief Scientist & Sr. VP of Research, NVIDIA



------------------------------------------------------------------
Moore's Law
more transistors
L^3 power scaling
no performance perdiction

Transistor-> Processor->Value
value chain broken for serial computers

Turning more transistor to values.
ILP not in programs

More power is spent moving data.
[Gordon Moore ISSCC 2003]

The energy is not limited by Floating Point Unit.
Chips are power limited.

Performance = Parallelism
Efficiency = Locality

Amdahl's Law doesn't apply to most future applications.
We need:
1. Many efficient processors
2. An exposed storage hierarchy(locality)
3. A programming system that abstract this

NASA application
domain expert: 27-169 times performance

Data Movement
scarce resource:
on-chip storage
off-chip bandwidth

Fermi - throughput computing

Avoid Denial Architect
Single thread processors
serial execution
- Denies parallelism
Flat Memory
- Denies locality
These illusions inhibit performance and efficiency

CUDA abstracts the GPU architecture

Throughput computing must evolve to meet the challenges of Exascale Computing

DARPA Study
Four challenges
Energy and Power
Memory and Storage
Concurrency and Locality
Resilliency
#1 is power

Energy
Heterogeneous architecture
(right core for right job)
Efficient processor
Agile memory system
(keep data and instruction access local)
Optimized
(minimize energy/op)
(minimize data movement)

Locality Chalelnge
automatically(as a cache) or explicitly(scratchpad)
move computation to data
-fast active messages

An NVIDIA ExaScale Machine in 2017
* GPU Node ~300W
- 2,400 throupht cores
- 40 TFLOPS(SP), 13TFLOPS(DP)
- Deep explicit on-chip storage hierarchy
* Node Memory
- 128 GB RAM
- 512 GB Phase-Change Memory for checkpoint and scratch
* Cabinet - 100KW
- Dragonfly network
* System - 10MW
- Dragonfly with optical links
* RAS
- ECC on all memory and links
- self-checking and application-level checking
- Fast local checkpoint

Conclusion
* Single thread performance is no longer scaling
* Performance = Parallelism
* Efficiency = Locality
* Application have lots of both
* Machines need lots of cores(parallelism) and exposed storage hierachy(locality)
* A programming system must abstract this
* Reaching an ExaScale requires evolving throughput computing.
- Agile memory
- Energy efficient cores and communication
- Efficient parallel mechanism

Q&A
Q: throughput
A: how many problems/time

Q(lhw):
What do you think about the future of dataflow programming model in the parallel computing era?
A:
does not explore locality well

星期五, 十月 23, 2009

A Taste of Haskell

<iframe src="http://docs.google.com/present/embed?id=d2xvwd8_337cqc93qhg&size=m" frameborder="0" width="555" height="451"></iframe>

星期一, 十月 19, 2009

[Readings]朱老师的故事

[link]

只引一句:
写到这里,不由得又感慨一次,中国从来不缺聪明人,缺的是让聪明人发挥才智的环境。我们的多少前辈学人,就算天纵奇才,生不逢时又能奈其何!今日的年轻人,若不能做出点名堂,那真是愧对前辈了。

[Readings]郎咸平:中国经济回暖与华尔街的阴谋

[link]
刚读完《中国大趋势》,又读到郎老师的阴谋论。

"如果当你和别人不一样的时候,你最 好认为你自己不正常,这样可能代表你还正常一点。但是我们从来不是这样思考问题的,我们感觉就是好得不得了,甚至这一波回暖,我们对待回暖的态度和过去是 迥然不同。"
真是犀利啊!

各位记得不记得,当时全世界有两派争论,一批是我一个人,另外一派是其他所有人

就在四月份,华尔街通过他们所操纵的中国媒体对外散步谣言,大豆要涨到七八千。所以,中国的油脂压榨工厂,在前一个月,买了八百多万吨美国大 豆,到了五月份,涨到四千四,再到下一个月,不知道是谁一声令下,华尔街开始集体抛售大豆期货,把大豆价格一下子打到两千块一吨,造成70%中国油脂压榨 企业被淘汰。我上个礼拜在山东时,有几个朋友跟我讲的嚎啕大哭,他们是山东日照油脂压榨厂的,以没有四千三百块的价格购了一船大豆,船还没有口岸就跌到两 千块,还没有生产就倒闭了,他们还没有上班银行就来查了。你知道下一步是什么吗?然后国际四大粮仓趁机进入中国,用贱价收购这些70%倒闭的油脂压榨工 厂。

  由于加入wto,09年开始,中国必须开放农产品市场。而08年年底,各位记得不记得,我们搞了一个农业改革,也是农民释放经营权,取得资本, 他可以去城市打工也,可以回到家乡替那些收购他的经营权的公司打工。国际四大粮商趁此良机收购了这些有经营权的中国农业公司进行参股,参股以后帮他做融 资,请他们去大面积收购中国的农地,所以收购中国农业公司的幕后人是是欧美四大粮商。

读《中国大趋势》,信心是要长,关键时刻还是得听郎老师的。郎老师才是自己人。

"中国很多制造业包括出 口,基本上是简单进口原材料,进口机器设备的粗加工,一月份进口原材料跌了一半,进口机器设备跌了四成,你知道这是什么可怕的意义吗?那就是在我们前面讲 的两个病没有解决的情况下,企业家不想干了,他在思考,辛苦了十几年,对不起家庭、子女和老婆,于是跑到广州买了几十万一只的名表或珠宝送给老婆,中国奢 侈品市场得以回暖;再看看自己的子女和年迈的父母,觉得特别的愧疚,这几年都是忙着做生意,干脆出去玩玩吧,然后买一个商务车,带着自己的孩子、老婆和自 己的岳父母去旅游,因此汽车销售又被带动起来。再想想自己辛苦这么多年,吃没有吃好,穿没有穿好,更重要的是住没有住好,因此江浙这一带企业家就到黄埔江 边买一个康城一品,或是到西湖边买一个别墅,中国的高端房产得以开始回暖。   这时候,摸一摸额头,你会发现已经有发烧的现象了"

手里掌握数据,同时用最幽默易懂的方式表达出来。郎老师的个人魅力真是无敌!

[Readings]塑造以研究为职业的生涯

[link: 塑造以研究为职业的生涯]

郁彬
:  我年轻时非常理想主义,导师给了我充分的研究自由,所以在博士期间我能做一些很喜欢的课题,虽然不是很理论,但是却很实用。当上助理教授后,为了拿到终身 教职,  开始希望得到别人的认可,所以也开始做一些主流的非常理论的工作。这时的我做的并不开心,而且在最后的终身教职资格投票中,只是勉强通过,让我郁闷了很长 一段时间。因此,我在拿到终身教职之后并没有继续在学术界发展,而是来到工业界,做一些我感兴趣的且兼顾理论和实际的研究项目。最后,因为对学校氛围的热 爱,我还是回到了学校。这时由于没有了评终身教职的压力,在兼顾主流方向的同时,已经可以把大量的时间放在自己喜欢的研究方向上,做一些对人们的实际生活 有影响的研究项目。而这些符合我兴趣的项目,最终也得到了同行的认可。

过来人的经验。Berkeley的终身教职,勉强过已经是非常了不起了!还如此沮丧。

         同学们在年轻的时候可以理想主义一点,为了做自己想做的事情不免冒一冒险。即使失败了也没有关系,因为失败可以使人变得坚强。记得我的终身教职评审遇到阻力时,我去向我的导师诉苦,没想到我的导师只是轻描淡写的说了一句: What doesn’t kill you makes you stronger(没能击倒你的事情将使你变得坚强)。直到几年之后,我才深刻的明白了这句话的内涵: 如果当初终身教职的评审没有遇到压力,我就不会走出贝尔实验室,也就失去了很好的开阔眼界、结识研究伙伴的机会,而我后来的研究之路恐怕也不会这么精彩了。
What doesn’t kill you makes you stronger. 精辟!

郭百宁:  关于这个话题我也很有感触。一个人最终成功与否和他是否能够发现自己所热爱的事业有很大的关系。在这里,我想谈谈关于直觉的问题。每个人的内心其实都不 断的向我们发射信号,但是这些信号却淹没在家庭压力、名誉和金钱等噪音中。同学们在学校里要培养自己摒除杂念倾听内心世界的能力。寻找那种在深夜里听到针 掉落的声音一般的感觉------这就是直觉。而当我们能够倾听自己内心声音的时候,就可以找到自己真心喜欢的工作和生活了。直觉其实是一种被忽略的强大 的力量,它有时候比经验或者知识更可靠。现代社会,大家越来越忙碌,对功利的追求也越来越多,这个时候,抽出一点闲暇静静地思考感悟,就更可贵了。人们常 说:follow your heart,就是这个意思。
这个不就是柯维说的Find your voice的意思么?郭老师点评的很到位。

我认为博士生最重要的技能是对发现问题的能力的培养(problem formulation)。而这一点却又是只可意会,不可言传的。所以我在给博士生制定题目时,不会指定某个题目,而是会给他一个领域,让他从这个领域中 通过大量阅读文献以及和别人的讨论,自己选题,我只负责提供建议。悟性好的学生可以从和我的讨论,或者我的研究工作中体会出problem formulation的方法。
哦,在berkeley也是只定领域不定题目的。得自己formulate a problem.

[books]不识庐山真面目,只缘生在此山中 -- 读《中国大趋势》

上周《对话》里请了《中国大趋势》这本书的作者约翰・奈斯比特做为嘉宾。
事隔两天,突然想起,于是去找这本书来看。

"我们的宗旨就是抛开西方人的视角和态度,用中国人的眼光看待中国。正视中国的短处,但是绝不根据我们自己的价值观和标准评价中国。"
"我们所寻找的是一种中国模式,只有把一系列的单一事件放在这个模式中来观察才有意义,并勾勒出一幅新中国的图画,就像1982年我写《大趋势》时对美国所做的分析那样。"
"1982年美国所发生的变化都是在一个既定的体制内,而2009年中国却在创造一个崭新的社会、经济和政治体制,它的政治模式也许可以证明资本主义这一所谓的"历史之终结"只不过是人类历史道路的一个阶段而已。"

在《对话》里面有个深圳的企业家提了一个问题,说深圳很多中低劳动力不愿意接受技术培训,即使培训是免费的。奈斯比的夫人说在欧洲也完全如此。我们也许把国外想的太好了,其实不管国内国外,人的能力和本性都是一样的,并不存在差别。国外现在先进,那是因为他们将近一百年的积累。而我们,三十年。

"1978年的中国:一位自信、果敢、具有远见卓识的CEO接管了一家经营不善、濒临破产的大公司。员工们士气低下、毫无自信,而且缺乏文化知识。这位CEO决心领导这家衰落的公司走向健康、盈利、可持续发展的道路,帮助员工实现小康。为达到这一目标他有着清晰的战略"
"  我们非常赞同托马斯・库恩(Thomas Kuhn) 的观点:"你是无法用旧模式中的词汇来理解一个新模式的。"随着新模式的逐步展现,更加恰当的定义也会随之而来。"
"  在政治领域,西方国家仍然宣称西方民主是最好的执政方式。但是从在中国的所见所闻来看,我们不得不怀疑西方现代民主是否是唯一可接受的民主形式。一个 在西方眼中的"独裁政府"能够成功地领导全球四分之一的人口走向富裕,并且保持政治稳定吗?西方人难以想象的资本主义与大政府的结合有可能实现吗?对于第 三世界的许多国家来说,中国已经开始展示一种与西方不同的、诱人的发展模式。假以时日,它很有可能成为对西方的民主治理方式的一种真正的挑战。"

曼昆的经济学原理里面是说有政府调控的市场是一个更好的市场,更有利于资源的分配。但是我觉得可能是个度的问题。要多少,这是关键。是不是像奈斯比说的这么好,没有对比,也不知道。(看来得关注下国外的新闻)

"设想一下,如果让一批根据品行选拔出来的、又经过严格训练,思想纯正、胸有成竹的官员,在没有指手画脚的国会束缚的情况下去放手工作,他们会干出何等的 业绩来?这一切不正可以解释为什么中国人能以创纪录的速度,从"文化大革命"造成的经济废墟中兴建起世界一流的基础设施、宏伟的城市、机场、高速公路和水 坝吗?"
我们在新闻里多看到的是批判的消息,对"宏伟的城市、机场、高速公路和水坝"觉得是理所当然。老外却在那夸我们。

"西方是一个说教型社会,而中国是一个学习型社会"
看来这个是通病,总是觉得别人做得比自己好。我们不也认为"中国是个说教型社会,而西方是一个学习型社会"么?

"  我们的朋友张海花解释说,与中国大部分的思想相同,这也源于中国悠久的农业历史。几千年以来,中国人都居住在田地附近的村庄,他们的生存依赖于彼此的帮助与协作。再加上儒家思想的影响,这一理念被扩展到对国家和政府的忠诚及对师长的遵从。"

在老外看来,儒家思想似乎是一个合理的解释。而我们自己不一定搞得明白。

中国和印度民主的例子
我们当然不要跟印度比,我们的目标是把美国比下去。

1992年,宋健博士高科技园区的建议
以前在李老师的ppt里面看到过另外一个宋健院士的故事,他去航空制造厂视察,批语是"站起来吧"

"一段时期以来中国的做法类似于企业应对危机。当处于破产边缘的时候,企业是没有时间和精力通过选举来决定对策的,管理层必须迅速做出决策,而且还要考虑到 长远利益。企业存亡应该是首要问题,个人的利益应该暂时放到一边。那些反对公司文化和目标的人们要么离开,要么适应。只有在企业恢复元气之后,合作伙伴才 会享受更多的自由和选择。但是,一旦企业的生存受到威胁,所有的自由都会受到限制。就像我们在"9・11"事件后所看到的那样,连美国人的自由都大打折 扣。"
很喜欢这段话。

毛毛虫和蝴蝶
对政治的讨论就不转载了,各位看官自己去看原书。

"孔子认为只有秩序才能为人们带来真正的自由。这类似于群体性运动,有了比赛规则的约束运动员们才可以自由比赛。同样,一个秩序良好的社会也为人们提供了可以自由活动的环境。在中国人看来,秩序并不抑制自由,而是界定自由活动的空间。

  从这个角度来看,西方人所理解的个人选择的自由,由于其社会与法律环境的制约,导致了谁对谁错的无休止的争论。许多西方人确实认为正是争论与不和谐带来了突破、新思想和创新。但是这种争论与不和谐不符合中国人的心理,特别是在执政这种严肃的问题上。"

"孔子认为只有秩序才能为人们带来真正的自由",惭愧惭愧,我好像没读到啊。我反而读到过Krish?的"discipline is the freedom itself"。(是Krish的on Discipline and Sensitivitydiscipline is freedom)
对比中西方就可以学到很多东西。集两家之所长。

中国的纵向民主(Vertical Democracy)

"现在回想起来,似乎没有更好的办法领导一个如此庞大复杂的国家走出贫穷,实现现代化了。如果中国建立的是西方式的横向民主体系,那么大量精力会被浪费在竞 选的争斗之上,大批候选人会提出无数个解决中国问题的方案。而且,手握选举权的中国人根本没有民主决策的经验。在戈尔巴乔夫总统改革初期的苏联就是这种状 况。在中国,这种情况很容易导致混乱,这是珍视和谐与秩序的中国人所不愿意看到的。"
自己说多了反而不相信了,老外反而看得很清楚。

对于西方人来说,这也许有些矛盾,但是以中国人的中庸之道来看这再正常不过了。
中庸的话:"喜怒哀乐之未发,谓之中;发而皆中节,谓之和;中也者,天下之大本也;和也者,天下之达道也。致中和,天地位焉,万物育焉。"不过其实大多数人不知道中庸的确切含义,只是略知皮毛。对比富兰克林对自己十三条自律的一条:Moderation(见其自传

天津还计划设立中国第三个股票交易市场
我还不知道呢。有空去天津看看。

另外,关于奈斯比本人,他说他是high school dropper,后来在海军的时候学会了阅读。最后得到了顶尖大学的15个博士学位。

花了两个小时读完前三大支柱,越到后面,中国的东西就越多,作者的东西就越少了,越靠前面越有意思(也可能是自己读累了)。总的来说,经过和作者的思维碰撞,增进了对宏观政治经济的理解,提高了信心,受益匪浅。

最后,一点自己的建议,了解一件事情最好的方法是去看原文,而不是只看片面的评论。电视、教科书、技术手册等等,都是经过消化了的东西(他们只能当作是一个入门手册),只有真正去读了原文,才理解了这个作者。才理解了他真正的意思。Happy reading!

星期五, 十月 16, 2009

A taste of Haskell

昨天看Channel 9看到有介 绍Haskell的。以前做euler project的时候
于是下了资料来玩一下。

运行环境是HUGS,在Ubuntu上,
sudo apt-get install hugs
试着跟着例子写了几个程序。发现正如Introduction所 说,Haskell正是一种懒惰的语言。
定义函数不用写类型,调用函数用空格不用括号。不要看这是一个小的改动,对于我们打字的习惯来说,空格比起括号真是懒了好多。

例子: 定义两个数相加
//test.hs
myadd x y = x + y
HUGS
Main> :reload  Main> myadd 2 3 5
例子:阶乘
//test.hs
factorial n = prodect[1..n]
HUGS
Main> :load test.hs  Main> factorial 50 30414093201713378043612608166064768844377641568960512000000000000


[课程笔记:CS382M Advanced Computer Architecture]2.编译alphasim

alphasimDoug Burger在simplescalar 基础上写的模拟器,用来模拟alpha 21264处理器。这次学CS382, 主要的实验平台就是在alphasim上。

编译alphasim走了一些弯路。本来以为alphasim比较老了(01年左右),需要用旧的gcc才能编译。在Makefile里面写的是GNU GCC version 2.7.2.2,所以特意去挑了很老的gcc来编译(CC=gcc-3.4),结果编译到最后一步的时候报ld的错误:
$ make    
/usr/bin/ld: errno: TLS definition in /lib/libc.so.6 section .tbss mismatches non-TLS reference in eval.o
/lib/libc.so.6: could not read symbols: Bad value
collect2: ld returned 1 exit status
仔细想想可能是binutils版本太新,于是又去找旧的binutils来(2.8.1,2.15,2.17),结果在自己的机器上无法编译。x86_64可能都出在前面几个版本的 binutils之后。
$ uname -a
Linux 2.6.28-11-generic #42-Ubuntu SMP x86_64 GNU/Linux
$ cat /proc/cpuinfo
model name      : Intel(R) Core(TM)2 Duo CPU     L7700  @ 1.80GHz
于是我怀疑因为是64位机器的缘故。于是装了一个32位的虚拟机,还是用ubuntu上apt里面能找到最老的gcc(gcc-3.4)来编译,出错信息 还是一样。这个时候我甚至想到了重头来编译一个GCC 2.7.2.2和Binutils 2.8的环境。最后衡量了一下觉得工程量太大,狠狠心,还是来改alphasim源代码吧。

这个想法给工程带来了转机。首先用git管理当前工程。
$ pwd
~/lab/simulators/alphasim-1.0
$ git init
$ git add .
$ git commit
修改的第一处错误是:
$ make alpha.h:260: error: array type has incomplete element type
出人意料的是,总共修改了6个文件就可以成功编译了。不禁赞叹。
$ git log -p
        modified:   alpha.h
        modified:   eval.c
        modified:   libexo/libexo.c
        modified:   misc.c
        modified:   range.c
        modified:   ssmachine.h
diff --git a/alpha.h b/alpha.h
@@ -57,6 +57,7 @@
 #include <stdio.h>
+#include <errno.h>
 /* internal decoder state */
-extern enum md_opcode md_mask2op[];
 extern unsigned int md_opoffset[];
 extern unsigned int md_opmask[];
 extern unsigned int md_opshift[];
@@ -271,6 +271,8 @@ enum md_opcode {
   OP_MAX       /* number of opcodes + NA */
 };
+extern enum md_opcode md_mask2op[];
diff --git a/eval.c b/eval.c
@@ -56,9 +56,7 @@
-#if defined(__CYGWIN32__)
 #include <errno.h>
-

札记 -- valuable things

在research的时候,Jim Gray被他的同行评价为总是能够找到有意义的事情。他的演讲《What Next? A Few Remaining Problems in Information Technology  》给人印象深刻。
paper里面,印象深刻的是:GPUTeraSort-tr-2005-183,05年就用GPU来加速他的应用了。

要抓住valuable的事情:
要抓住应用:海量数据,Tera Sort;
要抓住体系结构:GPU。
找到这个valuable的事情,问题已经解决了60%

星期二, 十月 13, 2009

[Softwares]elinks shortcuts

a 添加bookmark
s 打开bookmark
. 在links前面加数字,输入数字跳到这个link
</> previeous tab/next tab
t/T open current link int tab/(background)
c close
g goto URL
C-n/p scroll down/up
Delete/Insert scroll down/up
C-f/b scroll forward/backward
m mark (as in vi)
' jump to mark (as in vi)
Left return to previous in history
/ search
n/N next search word (as in vi)

[Softwares]elinks

Elinks, the browser for fast people, focusing the important


elinks是GNU下文本WWW浏览器。对于geek来说,文本浏览器带来的速度是他们所追求的。
在ubuntu下安装:
sudo apt-get install elinks

参考这个指南配置。(之前配了好多次都没有配成功smart prefix,最后是因为ubuntu默认带了elinks-lite,我就没有装elinks,重新安装elinks后,搞定。)

讨论班

点评的时候,谈到选题,孙老师说:
(抓大放小)人的生命是有限的。把有限的精力的投入到无限的问题当中去,要看哪个value更大。
每次大的CPU的变革都是在一类大的应用出现以后整个体系结构的改变。往大的应用背景变了以后的东西去想。