Monthly Archives: September 2010

GIS方法理论2010年会

上海同济,很多人是冲着世博来的。共2天,一天半是专家报道,不分分会场,是一些国内知名专家的报告。地信的领域有些杂,所以国外的高校一般不专门开地信的系,而是将地信作为一些专业的基础课。其实一些专家的报告并不感兴趣,但没得选择。第2天半天,分了若干个分会场,集中了几十个非知名专家的报告,包括我的。里面有一些感兴趣的,由于同济的这种安排法,也听不成。

这个年会也越来越变成知名专家们的年度聚会了,并没有多少时间听到青年科学家的声音。知名专家里,除了一些有原创性,也有不少是跟随大流的成果,随便吹吹牛自己团队有多少的经费和项目。Google太可恨了,出了个google earth/map,叫多少个gis专家脸面无光了。

有个叫吴志强的同济教授,是上海expo 2010总规划师,讲了一个生态世博的主题,讲话能力十分强,而且政治绝对正确。坐在我边上的学生们个个听的入神一直鼓掌叫好,吴教授争了中国人的光。象我等因为在国外呆了一些时间,有时候感觉很不以为然,对一些观点甚至看出不同的结论,不过没有这个讲话的本事,即使给争的机会也不知道如何争辩,注定了国内平庸的生活。

震惊,肖传国居然雇凶杀人

肖前面高调说方舟子报假案,我一直以为是借机报复。文人玩玩文字游戏(尽管文字游戏也会杀人)这些可以理解。没想到知名教授居然会真个雇凶杀人。你说前面院士没当上,就没当上吧,记仇就仇着,哪天方不走运了(象这次被人暗杀),好好嘲弄痛打落水狗,好像都还可以理解一些,人性嘛,人人都有黑暗的一面。但还可以继续做他的协和的大教授,继续做几百万上千万的大项目,继续过自己滋润的日子。现在好了,将自己搞到监狱里去,什么东西都没了,国内喜欢落井下石,结局可想而知了。肖好歹也是在学术圈混了这么久的,这些事情的利弊怎么就想不清楚呢。

听到这个消息,很吃惊,真的,对一些教授的人品真是高估了。

在超算上执行Matlab程序

新发展了一个算法,对MODIS LST进行重建。对象是青藏高原250sq km,共2.7M多个点。工作量十分大。写了Matlab代码。在实验室工作站进行 parallel运行,开了8个labs,每一幅大约花费 3-5小时。希望计算2005年一年的day和night LST。计算时间不能接受。

研究所部署有曙光5000大型机。LSF管理系统。在个人用户下(不一定需要系统权限,一般用户即可)安装了Matlab 2010a,MatlabRoot是 /public1/CAS/wanglx/matlab1。Putty连接到超算后,执行./matlab1/bin/matlab,提示glibc 不支持,当前版本是 glibc 2.4,2010a支持的版本是 2.7,需要用户输入y 才能继续进入到matlab。需要对oscheck.sh进行crack,否则以后的bsub提交系统会有问题。vi $Matlabroot/bin/util/oscheck.sh进去后,注释掉584行 read ans(前面添加 #)。其后插入一行 ans = ‘y’。:w! 保存(加!是因为文件是只读),:q退出 vi。

安装XME,远程连接到超算,启动matlab,在Parallel菜单里配置 default configuration。配置一个合适的叫lsfconfig。设为default。注意在字符界面下是无法配置 defaultParallelConfig的。

使用parallel configuration是为了使用matlabpool 进行自动的分割和管理。否则自己得使用设定scheduler, job, 和task 还得自己管理输入和输出。比较麻烦一些。matlabpool 可以跟 parfor等连接起来使用,对于我们面临的任务简单的for循环十分适用。

退出xme。以 matlab -nodisplay进去,调用 interp_lst2 执行,以high 队列进去,自动连接到 256个labs进行计算。在configuration时配置 submitarguments 为 -qhigh。

interp_lst2的结构如下:

function interp_lst2

%set up some variables and reading data in from files

matlabpool open lsfconfig 64

for i=1:length(lst_data_fns)

decompose2_func(interp_image_fn, lst_dir, ref_dir, output_dir, …
       dem, slope, aspect);

end

matlabpool close

 

function decompose2_func(…)

%set up variables

parfor i=1:interp_count

end

%posterior procedures

Putty连接Linux 如何后台运行

Putty连接后运行一个Linux程序,如果关闭Putty session,程序也将退出。解决方法是使用Screen。

Putty连接成功好。在命令符运行screen,启动之。

在screen窗口里执行程序,Ctrl-a d将此窗口 与Putty会话断开。此时将 Putty关闭,程序仍在远程Linux机器上运行。

下次Putty连接进去后,运行 screen –ls 列出全部的screen会话,找到对应的id号。

screen –r <id>恢复到上一会话。