加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

并行计算的强大

发布时间:2020-12-16 00:24:18 所属栏目:大数据 来源:网络整理
导读:最近在处理一批数据,10的8次方,处理完毕大概要一个月 ,并且这个程序占用的CPU只有一个(我从来没有注意到这个问题啊啊啊)。 突然师兄提醒我可以把10的8次方条数据拆成10个10的7次方,作为10条任务并行处理,我艹,三天就跑完了啊, 坑爹呢这是我之前怎么

最近在处理一批数据,10的8次方,处理完毕大概要一个月

,并且这个程序占用的CPU只有一个(我从来没有注意到这个问题啊啊啊)。

突然师兄提醒我可以把10的8次方条数据拆成10个10的7次方,作为10条任务并行处理,我艹,三天就跑完了啊,

坑爹呢这是我之前怎么没想到呢混蛋!!

?

以后单任务的程序一定要注意下CPU的使用情况。

?

并行处理也有个简单的方法,就是把原始文件给切割后提交,让队列调度程序给你并行调度就ok了。大家不要拍砖啊,这个玩意儿还是挺有用处的。

下面这个破脚本,哦,是perl脚本,用来切割文件的。我这里讲某个文件切割成,每4000条数据一个文件,每1000个文件一个文件夹,闲话少说,上酸菜:

Perl代码 ?

收藏代码

  1. #!/usr/bin/perl?-w??
  2. #?Program?name:?filter_pro.pl??
  3. #?Author??????:?bbsunchen??
  4. #?Contact?????:?bbsunchen?at?gm*il.com??
  5. #?Date????????:?11/10/2011??
  6. #?Last?Update?:?11/10/2011??
  7. #?Reference???:?Please?cite?our?following?papers?when?you?are?using?this?script.??
  8. ??
  9. #?Description?:???
  10. ??
  11. #===============================================================================================================??
  12. use?warnings;??
  13. use?strict;??
  14. use?Getopt::Long;??
  15. use?Cwd?qw(abs_path);??
  16. use?File::Basename?qw(dirname);??
  17. ??
  18. my?%opts;??
  19. GetOptions(%opts,"dir:s");??
  20. my?$usage=?<<"USAGE";??
  21. ????Program:?$0??
  22. ????INPUT:??
  23. ????????-dir????????full?path?of?file??
  24. ??
  25. ????OUTPUT:??
  26. USAGE??
  27. die?$usage?unless?($opts{dir}?&&?-e?$opts{dir});??
  28. ??
  29. my?$cwd;??
  30. if?($opts{dir}?=~?m{^/})??
  31. {??
  32. ??$cwd?=?dirname($opts{dir});??
  33. }??
  34. else??
  35. {??
  36. ??$cwd?=?dirname(abs_path($opts{dir}));??
  37. }??
  38. open?DIR,?$opts{dir};??
  39. my?$seq_num?=?0;??
  40. my?$title?=?"";??
  41. my?$data?=?"";??
  42. while(<DIR>)??
  43. {??
  44. ????$seq_num++;??
  45. ????if($seq_num?%?2?!=?0)??
  46. ????{??
  47. ????????$title?=?$_;??
  48. ????????next;??
  49. ????}else??
  50. ????{??
  51. ????????$data?=?$_;???
  52. ????}??
  53. ????my?$decide_path?=?0;??
  54. ????if($seq_num?%?2?==?0)??
  55. ????{??
  56. ????????$decide_path?=?$seq_num?/?2;???
  57. ????}else??
  58. ????{??
  59. ????????$decide_path?=?int($seq_num?/?2)?+?1;??
  60. ????}??
  61. ??????
  62. ????my?$file_name?=?int($decide_path?/?4000);??
  63. ????my?$path_name?=?int($file_name?/?1000);??
  64. ????my?$temp_path?=?"$cwd/$path_name";??
  65. ????mkdir?$temp_path,0775?unless?(-e?"$temp_path");??
  66. ????die?$!?unless?($opts{dir}?&&?-e?$opts{dir});??
  67. ????open?OUT,?">>?$temp_path/$file_name.fa";??
  68. ????print?OUT?$title;??
  69. ????print?OUT?$data;??
  70. ????close?OUT;??
  71. }??
  72. close?DIR;?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读