`
bbsunchen
  • 浏览: 231687 次
  • 性别: Icon_minigender_1
  • 来自: 天朝帝都
社区版块
存档分类
最新评论

并行计算的强大

 
阅读更多

最近在处理一批数据,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;
 
1
0
分享到:
评论

相关推荐

    中科大-陈国良-并行计算(PPT课件全).zip

    GPU并行计算则是利用图形处理器的强大并行处理能力,进行数据密集型计算。 陈国良教授的课程可能涵盖以下关键知识点: 1. **并行算法设计**:学习如何设计可并行化的算法,包括任务分解、数据划分、负载均衡等策略...

    autodyn并行计算软件(含Platform_MPI)

    总结来说,"autodyn"是一款强大的并行计算软件,其与Platform MPI的集成使得用户可以轻松地进行大规模并行计算,而无需关注底层的并行细节。通过这种方式,工程师和科研人员可以将更多的精力集中在问题的解决和模型...

    并行计算体系结构-并行算法

    并行计算体系结构是现代计算机科学的关键领域,其发展源于对高性能、低成本和高效生产...通过并行计算,我们可以构建出更强大、更灵活且适应未来需求的计算平台,以应对科学研究、工程计算、人工智能等领域的复杂挑战。

    .NET并行计算技术基础

    ### .NET并行计算技术基础 #### 一、并行计算概述 并行计算作为一种重要的计算模式,近年来随着多核处理器的普及和发展变得越来越重要。本文旨在系统介绍.NET Framework 4.0中引入的并行扩展(Parallel Extensions...

    并行计算和分布式计算的区别和联系

    并行计算和分布式计算是两种常见的高性能计算方式,它们在处理大规模计算任务时具有显著的优势。为了理解它们之间的区别和联系,我们首先需要明确它们各自的定义和工作原理。 并行计算指的是利用多台处理机同时处理...

    AUTODYN并行计算手册

    《AUTODYN并行计算手册》是一份专为IT专业人士准备的重要参考资料,主要涵盖了使用AUTODYN软件进行并行计算的详细步骤和技术要点。AUTODYN是一款强大的动态显式有限元程序,广泛应用于冲击、爆炸、碰撞等非线性动力...

    MATLAB 异步并行计算

    MATLAB 是一种强大的数学计算和数据分析工具,它不仅支持单线程计算,还提供了丰富的并行计算功能。在“MATLAB 异步并行计算”这个主题中,我们将深入探讨如何利用MATLAB进行高效的异步并行处理,以及与多线程相关的...

    可扩展并行计算技术、结构与编程.rar

    GPU并行计算利用图形处理器强大的并行处理能力,以加速计算密集型任务。 编程模型是实现并行计算的关键。常见的并行编程模型有OpenMP、MPI(Message Passing Interface)、CUDA等。OpenMP是一种在共享内存系统中...

    MATLAB中进行并行计算

    MATLAB作为一种广泛使用的科学计算环境,提供了强大的工具箱支持用户进行并行计算,从而大大提升了代码执行效率。本文将详细介绍在MATLAB环境中进行并行计算的基本原理、方法及应用场景。 #### 二、并行计算基础 ...

    并行_omp_omp并行计算_

    并行计算是现代计算机科学中的一个关键领域,特别是在高性能计算和大数据处理中。OpenMP(Open Multi-Processing)是一个用于共享内存多处理器系统的并行编程模型,它为C、C++和Fortran等编程语言提供了API。在"并行...

    并行计算环境与linux

    并行计算环境与Linux操作系统是高性能计算领域的重要组成部分,它们为解决复杂问题提供了强大的计算能力。并行计算是指将一个大型任务分解成多个子任务,这些子任务可以在多个处理器上同时执行,以达到提高计算效率...

    并行计算基础.pdf

    并行计算基础知识点详解 **一、计算机发展简史与并行计算的兴起** 计算机的演化历程可追溯至17世纪的欧洲文艺复兴时期,这一时期孕育了诸多推动科技进步的思想火花,其中,创造能辅助人类进行复杂计算的机械装置...

    R语言并行计算实战_R语言并行计算_

    总之,R语言的并行计算能力为处理大数据和复杂计算提供了强大支持。通过学习并合理运用相关包和工具,我们可以编写出高效、可扩展的R代码,解决现实世界中的各种统计和分析问题。对于R语言用户来说,掌握并行计算是...

    matlab-simulink联合并行仿真计算 完整代码数据 可直接运行

    并行计算工作空间(Parallel Computing Toolbox)提供了分布式内存并行计算环境,如MATLAB并行服务器(MATLAB Parallel Server),允许用户在多台计算机上分配任务。 4. Simulink并行仿真策略: - 多线程并行:在...

    信息与计算专业教材:并行计算导论

    并行计算是现代信息技术领域中的一个关键组成部分,尤其在大数据处理、高性能计算和人工智能等领域扮演着重要角色。《信息与计算专业教材:并行计算导论》这本书旨在为学生和研究者提供一个全面理解并行计算的基础...

    并行计算、高性能集群计算(课件上)

    高性能集群计算是并行计算的一种形式,它结合了大量相对廉价的个人计算机或工作站,形成一个强大的计算资源池。这些节点通过高速网络连接,协同工作,能够处理单个计算机无法完成的复杂任务。集群计算的核心是调度和...

    并行计算重点整理

    ### 并行计算重点整理 #### 一、并行计算概念 并行计算是指利用多种计算资源同时处理计算任务的方法,旨在提升计算机系统的计算速度和处理能力。它通过多个处理器协同工作来解决同一个问题,即将待解决问题分解为...

    并行计算与数据挖掘

    ### 并行计算与数据挖掘的关键知识点 #### 一、并行计算概述 并行计算是一种计算模式,它...随着技术的不断进步和发展,未来的并行计算与数据挖掘技术将会更加成熟和完善,为各行各业提供更加强大的数据处理能力。

    中国科学技术大学并行计算课件

    CUDA是NVIDIA公司开发的GPU编程接口,用于利用图形处理器的强大计算能力进行并行计算。 并行计算的效率和可扩展性是评估系统性能的重要指标。效率是指并行系统相对于理想情况(即没有额外的开销)能达到的性能比例...

    大规模并行计算

    通过阅读和实践,读者可以学习到如何针对不同的并行计算问题进行算法设计,并能够利用GPU的强大计算能力来提高程序的执行效率。 对于并行计算的学习者来说,理解并掌握GPU编程的精髓,需要对GPU的架构、编程模型、...

Global site tag (gtag.js) - Google Analytics