- 积分
- 495
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2015-9-17
- 最后登录
- 1970-1-1
![[明清同学hey] 粉丝数:727 微博数:893 新浪微博达人勋](source/plugin/sina_login/img/light.png)
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
拿到CESM large ensemble数据,想用自己电脑先处理成年平均并且提取南半球部分数据。简单的for循环一个一个算实在是太慢啦!经过各种搜索,写了个sh文件进行并行计算。{}&意思是将大括号里的命令提交到后台并行计算。但是同时提交40个成员计算量太大会宕机!CPU直接飞升100%!所以就需要分批计算。于是就把40个成员分别存在5个文件夹,每个文件夹里8个文件(可根据自己电脑情况调整)。外循环(file1)是这5个文件夹,不并行;内循环(file)是每个文件夹的8个文件,并行。于是一次就可以计算8个文件,速度大大提升!!!
- #!/bin/bash
- for file1 in $(ls /mnt/d/data/CESM/LE/historical/)
- do
- echo "$file1"
- for file in $(ls /mnt/d/data/CESM/LE/historical/$file1/*.nc)
- do
- {
- echo "$file"
- echo "${file:39}"
- cdo -yearmean -selname,TEMP -sellonlatbox,0,360,-90,0 -sellevidx,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37 $file "/mnt/d/data/CESM/LE/his_sub_yr/${file:39}"
- }&
- done
- wait
- done
- cdo -ensmean /mnt/d/data/CESM/LE/his_sub_yr/*.nc /mnt/d/data/CESM/LE/his_ensmean.nc
复制代码
|
|