Linux下的词典(可划词翻译)

前段时间,有道联合Deepin出了Linux版本的有道词典。我立马下载试用后,不幸遇到些QT方面的问题,几天后想再次使用,折腾了一下才部分解决了问题。好歹界面出来了,也能查词了,但感觉词典内容、划词翻译功能还是不能很好满足我的需求。

看来,还是之前配置的Goldendict强大,实乃目前Linux上最好的词典软件:

  • 可添加多种格式的精美词典(包括发音库)
  • 划词翻译功能十分不错

具体配置,可参考这篇文章

集群调度系统SGE的安装和配置

SGE(最初为Sun Grid Engine,后来几经易主)算是比较老的一套集群调度系统了,网上可供参考的资料不是很多,但简单好使。集群管理软件Rocks也用SGE来分配任务,很多脑科学领域的软件(如FSL)也默认使用这个。

先来一篇概要的文章,从安装、使用到管理写得很详细。

安装的时候,一步步根据提示走就行了。之后,根据自己集群的情况(集群中机器配置不尽相同),建立多个主机组(hosts group)和多个队列(queue),并逐渐调整参数使集群的运行情况达到较优的水平。

自己建立队列(queue)的时候,修改了以下参数:

  • hostlist:放上自己所需的主机组名,如 @allhosts
  • seq_no:队列编号,可以用来表示优先级,0 代表最优先
  • priority:优先级,默认为0(最优先),可以调大使优先级降低
  • slots:表示所使用的主机CPU数,默认为1,可以设置一个统一的值,也可以针对单台主机设定各自的CPU数,如 1,[host1=4],[host2=8]
  • shell:默认使用/bin/csh,可以改为其他的shell,我改成了/bin/sh
  • shell_start_mode:shell的起始模式,默认为posix_complicant,我改成了unix_bahavior,可以识别shell第一行的指定程序(如 #!/bin/bash)

其他的参数设置,可以参考自带的帮助或相关的手册。

GPU计算知识汇总

晚上了解了些GPU并行计算相关的内容,大致对其有了了解,在此记录下自己所搜集的内容:

MATLAB 的并行计算

MATLAB主要使用两个自带的工具箱来实现并行计算:

  • Parallel Computing Toolbox (PCT) 可用来在单台机器上利用多个CPU核心来并行计算
  • Distributed Computing Server (DCS) 可以在一个集群上跨机器运行任务

DCS需要根据集群的调度系统(如LSF)来设置一些配置参数,而且需要购买授权来使用。PCT无需授权可直接在单台机器上运行。使用者一般会在单台机器上用PCT来实现并行计算后,再用DCS来进行跨机器的扩展。

自R2013b起,MATLAB使用了新的parpool程序来替换原先的matlabpool程序,用来开启关闭多核计算,详见更新列表。而且从R2014a起,不再限制单台最多12个worker了,可以充分利用服务器多核的优势了。

使用parfor是最简单的一种使用MATLAB并行功能的方法,要求parfor循环中的程序文件可独立,不耦合。相关的用法可以参考这篇文章

使用PCT的过程中有时会遇到无法打开matlabpool的情况——Failed to locate and destroy old interactive jobs,通过查找解决方案,可以通过删除local scheduler data(或local cluster jobs)来解决。