并行计算的强大

并行计算的强大,第1张

概述最近在处理一批数据,10的8次方,处理完毕大概要一个月,并且这个程序占用的CPU只有一个(我从来没有注意到这个问题啊啊啊)。 突然师兄提醒我可以把10的8次方条数据拆成10个10的7次方,作为10条任务并行处理,我艹,三天就跑完了啊,坑爹呢这是我之前怎么没想到呢混蛋!!   以后单任务的程序一定要注意下CPU的使用情况。   并行处理也有个简单的方法,就是把原始文件给切割后提交,让队列调度程序给你

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

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

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

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

 

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

 

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

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

Perl代码  

#!/usr/bin/perl -w   # Program name: filter_pro.pl   # Author      : bbsunchen   # Contact     : bbsunchen at gm*il.com   # Date        : 11/10/2011   # Last Update : 11/10/2011   # Reference   : Please cite our following papers when you are using this script.      # Description :       #===============================================================================================================   use warnings;   use strict;   use Getopt::Long;   use Cwd qw(abs_path);   use file::Basename qw(dirname);      my %opts;   Getoptions(\%opts,"dir:s");   my $usage= <<"USAGE";       Program: $0       input:           -dir        full path of file          OUTPUT:   USAGE   dIE $usage unless ($opts{dir} && -e $opts{dir});      my $cwd;   if ($opts{dir} =~ m{^/})   {     $cwd = dirname($opts{dir});   }   else   {     $cwd = dirname(abs_path($opts{dir}));   }   open DIR, $opts{dir};   my $seq_num = 0;   my $Title = "";   my $data = "";   while(<DIR>)   {       $seq_num++;       if($seq_num % 2 != 0)       {           $Title = $_;           next;       }else       {           $data = $_;        }       my $decIDe_path = 0;       if($seq_num % 2 == 0)       {           $decIDe_path = $seq_num / 2;        }else       {           $decIDe_path = int($seq_num / 2) + 1;       }              my $file_name = int($decIDe_path / 4000);       my $path_name = int($file_name / 1000);       my $temp_path = "$cwd/$path_name";       mkdir $temp_path,0775 unless (-e "$temp_path");       dIE $! unless ($opts{dir} && -e $opts{dir});       open OUT, ">> $temp_path/$file_name.fa";       print OUT $Title;       print OUT $data;       close OUT;   }   close DIR;  总结

以上是内存溢出为你收集整理的并行计算的强大全部内容,希望文章能够帮你解决并行计算的强大所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1283958.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存