并行运算

9 篇文章 0 订阅
5 篇文章 0 订阅
摘要: OpenMP的环境变量: 环境变量 描述 示例 OMP_SCHEDULE 控制for循环任务分配结构的调度 OMP_SCHEDULE="guided,2" OMP_NUM_THREADS 设置默认线程的个数 OMP_SCHEDULE=4 OpenMP的库函数 函数名称 描述 int omp_get_num_threads(void) 返回当前使用的线程个数,如果在并行区域外则返回1... 阅读全文
posted @  2011-02-16 14:16 大CC 阅读(1090) |  评论 (0)  编辑
摘要: 点到点通信要求必须有send和recv配对。 点到点通信共12对 ,分别对应阻塞式方式1组(4个)和非阻塞式方式2组 分类 发送 接受 说明 阻塞通信 MPI_Send MPI_Bsend MPI_Rsend MPI_SSend MPI_Recv MPI_Irecv MPI_Recv_Init 如果接受动作使用了 MPI_Irecv MPI_Recv_Init,则要使用... 阅读全文
posted @  2011-02-15 13:53 大CC 阅读(721) |  评论 (0)  编辑
摘要: MapReduce的典型应用场景中,目前日志分析用的比较多,还有做搜素的索引,机器学习算法包mahout也是之一,当然它能做的东西还有很多,比如数据挖掘、信息提取。 MapReduce得到广泛的应用,主要集中在分布排序、Web连接图反转和Web访问日志分析。 Google建立了基于MapReduce的搜索索引系统。从本质上而言,这个索引是由序列的批处理操作组成的。它通过把对数据集的大规模操作分发... 阅读全文
posted @  2011-02-10 16:33 大CC 阅读(593) |  评论 (0)  编辑
摘要: MPI的并行工具库的基础工具。我进行移植工作使用的平台是Unix体验中心的X4100系统,运行Solaris 10 Update 3 for x86/x64。具体步骤如下。1.从http://www-unix.mcs.anl.gov/mpi/mpich2/index.htm#download上下载最新的MPICH2,整理本文时MPICH2的最新版本是1.0.6,我移植使用的版本是1.0.5p4。下... 阅读全文
posted @  2011-02-10 16:12 大CC 阅读(191) |  评论 (0)  编辑
摘要: 说明:本系统测试环境为Redhat9.0完全安装,并且以获得mpich2-1.0.1.tar.gz软件包。假设你的mpich2-1.0.1.tar.gz软件包已经下载到/root/目录下。以root用户登录。要求会使用vi文本编辑器修改文件。下面以四台pc为例。准备工作:设置IP,更改主机名为node01,node02,node03,node04.一、创建SSH信任连接(在root目录下)1、更改... 阅读全文
posted @  2011-02-10 16:07 大CC 阅读(134) |  评论 (0)  编辑
摘要: 1.并行编程模式-消息传递: 具有通用功能的消息传递库有PICL、PVM、PARMACS、P4、MPI等;面向特定系统定制的消息传递库有MPL、NX、CMMD等。 消息传递模型的主要缺点是:要求在编程过程中参与显式的数据划分和进程间同步,因此会需在解决数据依赖、预防死锁上话费较大精力。 2.MPI消息传递通信的基本概念 缓存区 MPI环境定义了3种缓存区: 应用缓冲区 指保存将要发送或接受... 阅读全文
posted @  2011-02-10 13:40 大CC 阅读(282) |  评论 (0)  编辑
摘要: 对于多线程应用程序的调试 ,各开发工具都有良好的支持,使用广泛的为windows下VS及unix下的GDB。 MS对VS调试多线程程序给出了详细的帮助手册,可以在MSDN中搜索:SetThreadName(设置线程名称)中找到相关顶级主题:调试多线程应用程序 MSDN中的地址:ms-help://MS.MSDNQTR.v90.chs/dv_vsdebug/html/9d175bc2-1d95-4c... 阅读全文
posted @  2011-02-09 11:13 大CC 阅读(925) |  评论 (0)  编辑
摘要: 一、引言 在以多线程执行的的循环访问中,为了解决在不使用锁的情况下既共享sum变量有保护该变量的问题,OpenMP提供了reduction子句,可以用来有效的合并一个循环中某些关于一个或多个满足结合律的算术规约操作。 二、reduction示例 #include <iostream> #include <omp.h> // OpenMP编程需要包含的头文件 int main() { int s... 阅读全文
posted @  2011-01-27 13:20 大CC 阅读(794) |  评论 (0)  编辑
摘要: 对于内存利用比较好的情况下,对于负载平衡可能是不利的;同样,有利于负载平衡的策略也有可能对访存的性能不利。因此,在对性能优化时,必须在优化内存利用和优化负载平衡之间进行折中,通过对性能的测量找到能够得到最佳结果的方法。 在OpenMP for结构中,使用schedule子句将循环调度和分开信息传达给编译器和运行时库: #pragma omp for schedule (kind [, chunk-... 阅读全文
posted @  2011-01-27 13:13 大CC 阅读(358) |  评论 (0)  编辑
摘要: OpenMP并行程序设计(二) 1、fork/join并行执行模式的概念 2、OpenMP指令和库函数介绍 3、parallel 指令的用法 4、for指令的使用方法 5 sections和section指令的用法 1、fork/join并行执行模式的概念 OpenMP是一个编译器指令和库函数的集合,主要是为共享式存储计算机上的并行程序设计使用的。 前面一篇文章中已经试用了OpenMP的一个Par... 阅读全文
posted @  2011-01-25 14:35 大CC 阅读(1674) |  评论 (0)  编辑
摘要: 进入多核时代后,必须使用多线程编写程序才能让各个CPU核得到利用。在单核时代,通常使用操作系统提供的API来创建线程,然而,在多核系统中,情况发生了很大的变化, 如果仍然使用操作系统API来创建线程会遇到一些问题。具体来说,有以下三个问题: 1)CPU核数扩展性问题 多核编程需要考虑程序性能随CPU核数的扩展性,即硬件升级到更多核后,能够不修改程序就让程序性能增长,这要求程序中创建的线程数量需要随... 阅读全文
posted @  2011-01-25 14:09 大CC 阅读(1148) |  评论 (0)  编辑
摘要: 以下为截止2009年3月21日前发布在本人博客中的多核相关的文章汇总,这些文章大部分摘自于我写的《多核计算与程序设计》一书。现将这些文章分类汇总,方便大家阅读。 后续如果博客中继续发布了多核相关的文章,那么本文章将会被更新。如果对多核编程技术非常感兴趣的话,可以考虑将这篇文章加入您的浏览器收藏夹中,也欢迎您将这篇文章推荐给您的朋友。 一、基础篇 1、多核编程的几个难题及其应对策略 主要讲解多核编程... 阅读全文
posted @  2011-01-25 14:02 大CC 阅读(440) |  评论 (1)  编辑
摘要: 多核计算平台的普及化使得并行(Parallel)或者并发(Concurrent)程序设计(这里不妨称它们为并行化程序设计)成为一种编程技术主流。其实并行计算的软件技术早已存在了几十年,然而其原来主要服务于高性能计算一类的应用,所以并行化编程一直也都为阳春白雪的光环笼罩。现在谈到多核编程,讨论较多的是各种软件或者并行编程模型的使用;对于初学者而言却仍可能难以循其径而入。 其实,并行化的程序设计是有章... 阅读全文
posted @  2011-01-24 15:17 大CC 阅读(809) |  评论 (0)  编辑
摘要: 在此操作实例中,您将了解如何在本地计算机和 Microsoft Windows HPC Server 2008 群集上设置和启动 MPI 群集调试程序会话。此操作实例包括使用消息传递界面 (MPI) 和打开多进程 (OpenMP) 应用程序编程界面 (API) 创建应用程序所需的步骤和示例代码。 本指南内容: 使用 MPI 群集调试程序的要求 在 Visual Studio 2010 中创建 C... 阅读全文
posted @  2011-01-24 10:41 大CC 阅读(1772) |  评论 (1)  编辑
摘要: MPICH2是与MPI-2相对应的MPICH实现版本,包含了MPI-2相对于MPI-1扩充后的一些功能,比如动态任务管理,并行I/O等。当前最新版本是MPICH2-1.0.5. 2.3.1 MPICH2 for Microsoft Windows 的安装与配置 安装MPICH2 for Microsoft Windows 对系统有如下要求: 1. Windows 2003/XP 的Professi... 阅读全文
posted @  2011-01-21 10:11 大CC 阅读(1615) |  评论 (0)  编辑
摘要: MPI的基本介绍MPI is a message-passing library specification proposed as a standard by acommittee of vendors, implementers, and users. It is designed to permit thedevelopment of parallel software librariesW... 阅读全文
posted @  2011-01-18 10:42 大CC 阅读(1289) |  评论 (0)  编辑
摘要: Hadoop 是Google MapReduce的一个Java实现。MapReduce是一种简化的分布式编程模式,让程序自动分布到一个由普通机器组成的超大集群上并发执行。就如同java程序员可以不考虑内存泄露一样, MapReduce的run-time系统会解决输入数据的分布细节,跨越机器集群的程序执行调度,处理机器的失效,并且管理机器之间的通讯请求。这样的模式允许程序员可以不需要有什么并发处理或... 阅读全文
posted @  2011-01-18 10:21 大CC 阅读(533) |  评论 (0)  编辑
摘要: 一、Stanford大学的Phoenix系统(单机多核的应用)1、Phoenix是在共享内存的体系结构上的MapReduce实现。它的目标是在多核平台上,使程序执行得更高效,而且使程序员不必关心并发的管理。事实上并发管理,尽管是经验丰富的程序员,也难免在这上面出错。2、Phoenix由一组对程序应用开发者开放的简单API和一个高效的运行时组成。运行时系统处理程序的并发、资源管理和错误修复, 它的实... 阅读全文
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值