并行计算的强大
来源:互联网 发布:淘宝区域拦截 编辑:程序博客网 时间:2024/05/16 11:43
最近在处理一批数据,10的8次方,处理完毕大概要一个月,并且这个程序占用的CPU只有一个(我从来没有注意到这个问题啊啊啊)。
突然师兄提醒我可以把10的8次方条数据拆成10个10的7次方,作为10条任务并行处理,我艹,三天就跑完了啊,坑爹呢这是我之前怎么没想到呢混蛋!!
以后单任务的程序一定要注意下CPU的使用情况。
并行处理也有个简单的方法,就是把原始文件给切割后提交,让队列调度程序给你并行调度就ok了。大家不要拍砖啊,这个玩意儿还是挺有用处的。
下面这个破脚本,哦,是perl脚本,用来切割文件的。我这里讲某个文件切割成,每4000条数据一个文件,每1000个文件一个文件夹,闲话少说,上酸菜:
- #!/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;
- 并行计算的强大
- 并行计算的解药
- 并行计算的概念
- 并行计算的专访
- CUDA的并行计算
- 并行Pi的计算
- Delphi 的并行计算
- 并行计算的研究历史
- 并行计算工具的选择
- CUDA: GPU的并行计算
- 并行计算的多线程数据结构
- 关系代数的并行计算
- 并行计算的前世今生
- 并行计算的多线程数据结构
- 矩阵乘法的并行计算
- 并行计算的多线程数据结构
- 并行计算(2):并行计算和分布式处理的区别
- 云计算和并行计算的关系
- CentOS 6 编译安装Nginx+PHP+Mysql
- 项目过程随笔总结
- 为什么*.ashx一般处理程序不能访问Session值?
- 一个完整托盘程序的实现
- 命令行导出IIS配置信息
- 并行计算的强大
- oracle索引碎片
- Oracle 安装注意事项
- 从另一个角度看大数据量处理利器:布隆过滤器
- 十年学会程序设计
- 网络
- Mongodb用户和认证 权限总结
- 码农如何实现高帅富
- python网络编程测试-broadcast