【每日进步】April 2012

------------------------------------------------- 2012/04/25 周三-----------------------------------------

Linux:

1. tar -zcvf *.tar.gz *得到的文件tar.gz是压缩(-z)和归档(-c)文件,不能追加文件

如果希望追加,不要使用-z -j选项 即:tar -cvf *.tar.gz *

2. 使用ssh提交单个命令时有时执行结束后不会自动退出:命令后面加上0</dev/null 1>/dev/null 2>/dev/null,保证ssh提交任务后退出

3. 修改bash的行编辑模式为vi, 并对所有用户有效:修改/etc/bash.bashrc 添加set -o vi

 

4. ubuntu11.10 有个bug,设定好的resolv.conf在重启后会自动被清空,试过使用rc2脚本修改该文件,重启后还是会被清空。现在的解决方法是sudo chattr +i /etc/resolv.conf 重启后不再被清空。

 

5. chattr lsattr, 修改查看linux文件系统的文件属性

 

6. 自定义bash的prompt,修改环境变量PS1。可使用的转意符号及可以用的颜色值见如下参考链接,目前使用的设置为:

 

PS1="\[\e[1;31m\][\d \t]\[\e[1;32m\]\u\[\e[0m\]@\[\e[4;32m\]\h\[\e[0m\]\[\e[1;35m\]:\W\[\e[0m\]\$ \[\e[0;37m\]"

 

参考:https://wiki.archlinux.org/index.php/Color_Bash_Prompt   http://www.linuxselfhelp.com/howtos/Bash-Prompt/Bash-Prompt-HOWTO-2.html  

7. C里面查看CPU affinity,使用sched_getaffinity获得、CPU_ISSET检查,CPU_ISSET等宏需要在#include <sched.h>前定义如下宏:

#define __USE_GNU

然后使用sysconf(_SC_NPROCESSORS_CONF)获得系统cpu个数,循环使用CPU_ISSET检查。

参考:http://www.chinaunix.net/jh/4/904906.html  

8.  理解/proc/cpuinfo:如果cpu cores = siblings 表明超线程OFF,否则超线程是开启的,会出现多个逻辑CPU的physical 和 core id 是相同的。

physical id 与 core id 未必是连续的值,

使用如下命令查看以上信息:cat /proc/cpuinfo | egrep 'processor|model name|cache size|core|sibling|physical'

参考: http://www.richweb.com/cpu_info   

9. 在.bashrc中修改已存在的环境变量时,如PATH,使用PATH=。。。即可,但如果是添加新的环境变量需要使用export,如果使用前一种方法,得到的变量只对shell有效,echo 时也会正确显示,但并不会传递给子进程。如:

在.bashrc 中添加 MYENV=~/xxxx, 在shell中输入echo $MYENV 会正确显示,但运行的命令不会继承。

10.  目录的rwx权限含义与文件的不同,r表示是否可以list文件列表,w可修改目录中的文件/子目录,x能否进入该目录

11. chattr,lsattr仅对ext2及以上的fs有效,其他文件系统如nfs,会出现lsattr: Inappropriate ioctl for device While reading flags on

Torque, Maui:

1. Resource Management System : OpenPBS(现在的torque前身), PBSPro, Loadleveler, SGE, etc.

2.Maui is a scheduler, it makes decisions about where, when, and how to run jobs as specified by a set of configurable policies, priorities, and limits.  It makes and enforces its decisions by querying and controlling a resource management system such as OpenPBS, PBSPro, Loadleveler, SGE, etc.

3. PBS 的queue与server的resources_(default, max, min, available, assigned)等属性

4. 使用PBS提交了一个需要1节点2CPU的程序,提交后一直处于Q状态,一开始怀疑系统中资源不够用了,pbsnodes 查看,集群中有53节点处于free状态,调查后发现是权限不够,Maui的控制文件maui.cfg中的 USERCFG 控制用户的资源使用权限,我使用的用户MAXPROC=1,导致资源申请不到。

5. Maui从3.2开始支持资源预留,setres showres使用这些命令需要相关权限

SSH, SFTP, Windows:

1. 需要在windows操作Linux服务器,使用SecureCRT + WInSCP 这两个软件试过,很好用

Perl:

1. 三种数据类型 对应标量、数组、hash

2. 多维数组定义 my @arr = ([], []....); 第一次使用弄混了括号,结果报错

3. 其他各种维度的数组,我是使用for循环一步一步生成的,未找到简单的方法:

这种方式算是C中数据结构形式,Perl中有没有别的方式处理未知。

 

for(my $i = 0; $i < 3; $i++)
{
 my @tmpj;
 for(my $j = 0; $j < 3; $j++)
 {
  $tmpj[$j] = 0;
 }
 $total[$i] = [@tmpj];
}

 

  

 

4. 文件处理 open close

5. 划分字符串 split 类似于strtok,不过强大多了

6. 使用RE处理字符串问题、验证字符串是否为数字 =~ !~

7. 自定义函数 sub 参数存放在$_中,结果返回可以使用return,也可以是最后一条指令的返回值(没试过)

8. next if...;类似于C中的 if...continue;

------------------------------------------------- 2012/04/26 周四-----------------------------------------

Linux,MPI:

1. taskset 来做 processor affinity, 运行结果:

$ mpirun -n 3 taskset -c 0 ./a.out : -n 2 taskset -c 1 ./a.out
hostname[hadoop16], rank[2/5], processor affinity[1]
hostname[hadoop16], rank[4/5], processor affinity[2]
hostname[hadoop16], rank[3/5], processor affinity[2]
hostname[hadoop16], rank[0/5], processor affinity[1]
hostname[hadoop16], rank[1/5], processor affinity[1]
以上结果运行在单个节点,两个CPU
若需要在多个节点使用Processor affinity,在machinefile中可以重复设置节点,如每个节点两个CPU,可写为如下:
hadoop3
hadoop4
hadoop3
hadoop4

运行命令:$ mpirun -machinefile mfile -n 2 taskset -c 0 ./a.out : -n 2 taskset -c 1 ./a.out
hostname[hadoop3], rank[0/4], processor affinity[1]
hostname[hadoop3], rank[2/4], processor affinity[2]//mpd按mfile顺序分配rank,所以hadoop3都是偶数rank
hostname[hadoop4], rank[1/4], processor affinity[1]
hostname[hadoop4], rank[3/4], processor affinity[2]

2. numactl 用来做Memory/processor affinity,(没试过)

3. env :run a program in a modified environment

4. A Beowulf cluster is a computer cluster of what are normally identical, commodity-grade computers networked into a small local area network with libraries and programs installed which allow processing to be shared among them. One of the main differences between Beowulf and a Cluster of Workstations (COW) is that Beowulf behaves more like a single machine rather than many workstations. In most cases client nodes do not have keyboards or monitors, and are accessed only via remote login or possibly serial terminal

------------------------------------------------- 2012/04/27 周五-----------------------------------------

NAMD,MPI:

1. 安装时version选的mpi-linux, make时报错,找不到sfftw.h srfftw.h,看了下安装目录,有fftw.h rfftw.h,查看fftw的configure选项,添加--enable-float(不加这个生成的前缀是d) --enable-type-prefix, 重新编译安装,进namd目录make,搞定。

2. Charm++ is a parallel object-oriented programming language based on C++ and developed in the Parallel Programming Laboratory at the University of Illinois.
参考:http://en.wikipedia.org/wiki/Charm%2B%2B

 

 

 

 

posted @ 2012-06-05 09:04  D3猎人  阅读(487)  评论(0编辑  收藏  举报