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>恢复到上一会话。