基于net_remoting技术并行计算程序的设计与实现毕业设计(编辑修改稿)内容摘要:
对象,再通过代理解析为客户端对象。 这就提供一种可能性,即以服务的方式来发布服务器对象。 远程对象代码可以运行在服务器上(如服务器激活的对象和客户 端激活的对象),然后客户端再通过 Remoting 连接服务器,获得该服务对象并通过序列化在客户端运行。 在 Remoting 中,对于要传递的对象,设计者除了需要了解通道的类型和端口号之外,无需再了解数据包的格式。 这既保证了客户端和服务器端有关对象的松散耦合,同时也优化了通信的性能。 开发工具及技术 VS20xx Visual Studio 是微软公司推出的开发环境。 是目前最流行的 Windows 平台应用程序开发环境。 Visual Studio 20xx 集成开发环境( IDE)的界面被重新设计和组织 ,变得更加简单明了。 Visual Studio 20xx 同时带来了 NET Framework 、 Microsoft Visual 第 1 章 绪论 3 Studio 20xx CTP( Community Technology PreviewCTP),并且支持开发面向 Windows 7的应用程序。 除了 Microsoft SQL Server,它还支持 IBM DB2 和 Oracle 数据库。 它的新功能主要包括:应用程序生命周期 (ALM)、 C 动态类型和动态编程、多显示器支持、支持 TDD、支持 Office 开发、 Quick Search 特性、 C++ 0x 新特性、新增基于 .NET 平台的语言 F等。 除了上述功能外还在以下方面进行了改进:增强和完善了 Visual Studio IDE。 改进了 Visual Basic 和 C语言,开发人员可以根据自己的爱好选择任意一种语言。 同时还包括一种新的 .NET Framework 语言: F。 支持基于 MVC 的 Web 应用,改进了代码编写的速度,简化了 Web开发。 改进了对 WPF和 Silverlight应用程序的开发。 当然最重要的变化是完善了 Visual C++功能。 Visual Studio 20xx 能成为新一代的经典开发工具的特点有如下几个: ( 1)未来代码管理工具比平台更重要; ( 2)灵活高效的全新 IDE; ( 3)助力 Azure 平台,强化云计算能力; ( 4) 提升并行计算,应对多核趋势; ( 5)快速开发,跨越开发周期协作; MySql MySQL 是一个 关系型数据库管理系统 ,由瑞典 MySQL AB公司开发,目前属于 Oracle公司。 Mysql 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的RDBMS(Relational Database Management System:关系数据库管理系统 )应用软件之一。 MySql 的系统特性有:( 1)支持 多线程 ,充分利用 CPU 资源;( 2)优化的 SQL 查询算法,有效地提高查询速度;( 3)既能够作为一个单独的 应用程序 应用在 客户端服务器 网络环境中,也能够作为一个库而嵌入到其他的软件中;( 4)提供多语言支持,常见的 编码 如中文的 GB 231 BIG5,日文的 Shift_JIS等都可以用作数据表名和数据列名;(( 5)提供 TCP/IP、ODBC 和 JDBC 等多种 数据库 连接途径;( 6)提供用于管理、检查、优化数据库操作的 管理工具 ;( 7)支持大型的 数据库。 可以处理拥有上千万条记录的大型 数据库 ;( 8)支持多种 存储引擎 ;( 9)Mysql 是开源的,所以你不需要支付额外的费用;( 10)MySQL 使用标准的 SQL数据语言形式。 小结 本章 对 . Remoting技术的背景原因及它的意义 进行了介绍 ,阐述了 . Remoting技术在国内外的发展现状。 还对 并行计算的开发工具 VS20xx以及数据库 MySql进行了简单的介绍,为后面系统的设计提供了方便。 计算机信息工程学院毕业设计论文 4 第 2 章 并行计算 5 第 2 章 并行计算 并行计算是伴随并行机的出现,在近 30年来发展较迅速的一门交叉学科,涵盖的内容非常广泛。 并行计算的定义 并行计算( Parallel Computing)是指同时使用多种计算资源解决计算问题的过程,是提高计算机系统计算速度和处理能力的一种有效手段。 可分为时间上的并行和空间上的并行。 时间上的并行就是指流水线技术,而空间上的并行则是指用多个处理器并发的执行计算。 它的基本思想是用多个处理器来协同求解同一问题,即将被求解的问题分解成若 干个部分,各部分均由一个独立的处理机来并行计算。 并行计算系统既可以是专门设计的、含有多个处理器的超级计算机,也可以是以某种方式互连的若干台的独立计算机构成的集群。 通过并行计算集群完成数据的处理,再将处理的结果返回给用户。 1. 特征 为利用并行计算,通常计算问题表现为以下特征: ( 1)将工作分离成离散部分,有助于同时解决; ( 2)随时并及时地执行多个程序指令; ( 3)多计算资源下解决问题的耗时要少于单个计算资源下的耗时。 并行计算是相对于串行计算来说的,所谓并行计算分为时间上的并行和空间上的并行。 时间上的 并行就是指流水线技术,而空间上的并行则是指用多个处理器并发的执行计算。 2. 基本体系结构 并行计算科学中主要研究的是空间上的并行问题。 从程序和算法设计人员的角度来看,并行计算又可分为数据并行和任务并行。 一般来说,因为数据并行主要是将一个大任务化解成相同的各个子任务,比 任务并行 要容易处理。 空间上的并行导致了两类并行机的产生,按照 Flynn 的说法分为: 单指令流多数据流( SIMD)和多 指令流 多数据流( MIMD)。 我们常用的串行机也叫做单指令流单 数据流 ( SISD)。 MIMD 类的机器 又可分为以下常见的五类:并行向量 处理机 ( PVP)、 对称多处理机 ( SMP)、大规模并行处理机( MPP)、工作站 机 群 ( COW)、分布式共享存储处理机( DSM)。 并行计算的主要研究目标和研究内容 并行计算的主要研究目标 计算机信息工程学院毕业设计论文 6 对于具体的应用问题,采用并行计算技术的主要目的在于以下 2 个方面: ( 1)加快求解问题的速度,缩短求解问题所需的时间。 ( 2)提高求解问题的规模,解决计算量巨大的复杂问题。 并行计算之所以必需,主要在于,当前的单处理器性能不可能满足大规模科学与工程计算及商业应用的需求,并行计算是目前唯一能满足实际大规模计算需求的支撑技术。 当前较为先进的微处理器,其峰值性能也仅为 60 亿次 /秒。 近两年内 ,微处理器的峰值性能也不会超过 100 亿次 /秒。 并行计算之所以可行,主要在于,并发性是物质世界的一种普遍属性,具有实际应用背景的计算问题在许多情况下都可以分解为能并行计算的多个子任务。 综上所述,并行计算的主要目标在于在并行机上,解决一批具有重大挑战性计算任务的科学、工程及商业计算问题,满足不断增长的应用问题对速度和内存资源的需求。 并行计算的主要研究内容 并行计算的主要研究内容大致可分为以下 4 个方面: ( 1)并行机的高性能特征抽取。 ( 2)并行算法设计与分析。 ( 3)并行实现技术,主要包含并行程 序设计和并行性能优化。 ( 4)并行应用。 以上 4 个部分相互耦合,缺一不可。 需要说明的是,并行计算不同于分布式计算。 后者主要是指,通过网络相互连接的 2个以上的处理机相互协调,各自执行相互依赖的不同的应用,从而达到协调资源访问,提高资源只用效率的目的。 但是,它无法达到并行计算所倡导的提高求解同一个应用的速度,或者提高求解同一个应用的问题规模的目的。 并行算法 并行算法是适合在并行机上实现的算法,一个好的并行计算应该具备充分发挥并行机潜在性能的能力。 并行算法作为应用程序开发的基础,在并行计算机应用中具有举 足轻重的地位。 目前,并行算法根据运算基本对象的不同可分为: ( 1)数值并行算法,主要为数值计算方法而设计的并行算法; ( 2)非数值并行算法,主要为符号运算而设计的并行算法。 根据并行进程间相互执行顺序关系的不同可分为: ( 1)同步并行算法,进程间由于运算执行顺序而必须相互等待的并行算法; ( 2)异步并行算法,进程间执行相对独立,不需要相互等待的一种算法; ( 3)独立并行算法,进程间执行是完全独立的,计算的整个过程不需要任何通信。 根据各进程承担的计算任务粒度的不同,可分为: ( 1)细粒度并行算法,通常指基于 向量和循环级并行的算法; ( 2)中粒度并行算法,通常指基于较大的循环级并行; 第 2 章 并行计算 7 ( 3)大粒度并行算法,通常指基于子任务级并行的算法,这也是当前并行算法设计的主流。 在这里,我使用的并行算法也是当前并行算法的主流算法,也就是大粒度并行算法。 分布式并行计算 分布式并行计算大致可以从以下 2 个不同点去考虑: 多计算机的分布式并行计算 顾名思义,多计算机的分布式并行计算就是利用多台计算机,通过网络连接到一起,在计算机之间传递数据和消息,使各个计算机一起计算大型复杂问题的一个或多个子问题,最后汇总得 出结果的计算方式。 在这种计算方式下,其最大的特点就是在网络中传输数据。 多台计算机分布式并行计算的连接和数据交互可以通过发送数据到服务器,服务器广播数据给各个客户端的方式进行。 如图 21 所示: 图 21 多台计算机并行计算连机交互示意 图 在网络中传输数据,原本有很多复杂的步骤,对编程者有着很高的要求,但是微软的 .NET Remoting 技术,将消息的传递机制都封装的很好,大大降低了编程者对 Remoting编程的难度。 关于具体的消息传递机制等都将在之后的章节中讲述到。 在多计算机的分布式并行计算中,一般一台计算机含有一个 CPU,当然也可以含有多个 CPU,日常生活中多 CPU 的计算机并不常见。 多个计算机的并行计算,需要好废一定时间来传输数据,因此,当问题的计算量不大时,多计算机的分布式并行计算并不能体现计算效率方面的优势;而当问题复杂,计算量 要求非常大时,多计算机的分布式并行计算就能体现其应有的效率优势,参与并行计算的处理器越多,计算效率也就越高。 单计算机的并行计算 计算机信息工程学院毕业设计论文 8 单计算机的并行计算,一般指同一台机器上的多线程并行计算。 这种并行计算不需要在网络间传输数据,可以大大减少消息在网络中传输的时间,整体协调和调度开销大大减少,变相的提高了计算效率。 由于多线程并行计算仍是处于同一个操作系统中的,所以线程之间的协调有更加灵活的控制机制:可以使用系统内部的消息传递机制,也可以使用全局变量作为标记来识别,还可以通过自定义事件来响应各个线程的运 行。 由于多线程并行计算是基于单机实现的,而单机存在内存资源的瓶颈限制,所以在进行多线程并行计算时,各个线程的计算模块所使用的大量的数据块,应该尽量使用地址参数传递。 要注意的是,当一个线程完成计算任务之后,并不会自动释放该实例,需要在程序中调用方法释放内存。 单计算机的并行计算也分为下面两种情况: ( 1)单机多 CPU 单机多 CPU的并行计算对计算机的要求很高,因为它需要一台计算机上有多个 CPU,而日常使用的计算机一般都是单 CPU 的。 多个 CPU 分别处理大型复杂任务的一个或几个子任务,最后将结果汇总得出答案。 这种方式可以真正提高计算效率,充分利用多 CPU资源,协同合作共同计算完成任务。 但是这对计算机的硬件要求比较苛刻。 ( 2)单机单 CPU 日常生活中,我们常用的计算机就是单机单 CPU 多核的,单机单核单 CPU 的机器也逐渐退出了历史的舞台。 多核 CPU 比单核 CPU 的计算速度快,原因是单核 CPU 只能利用仅有的一个核处理一个指令,而多核 CPU 可以利用 CPU 内部多个核同时处理一条指令,从而加快计算机的运算速度。 这种加速也不是成倍加速的,即双核 CPU 的计算速度其实并没有原来的 200%的计算速度,而是有所折扣的。 单 CPU 多 核的计算机,也可以启用多个线程进行并行计算,但是这种计算是有瓶颈的。 在计算问题不是非常复杂时,每个线程需要处理的任务在 CPU 承受的范围内,此时,并行计算可以提高计算效率,但这不算是真正的并行计算,但是使用的方法和并行计算有相似之处。 当处理的任务非常大时,单 CPU 就无法再通过增加线程数量来提高计算效率了。 计算效率也将受到物理内存的限制。 小结 这一章先讲了并行计算的概念,接着讲了并行计算的研究目标和研究内容,按照不同的对象将并行算法进行分类,最后对分布式并行计算的几种方式进行了分析,在这里我主要研究的 就是多计算机的并行计算问题。 对并行计算进行事先了解,有助于之后利用并行计算的算法思想解决实际问题。 第 3 章 .NET Remoting 技术 9 第 3 章 .NET Remoting 技术 .NET Remoting 技术的简介 .NET Remoting 是微软随 .NET 推出的一种分布式应用解决方案,被誉为管理应用程序域之间的 RPC 的首选技,它允许不同应用程序域之间进行通信。 更具体的说, Microsoft .NET Remoting 提供了一种允许对象通。基于net_remoting技术并行计算程序的设计与实现毕业设计(编辑修改稿)
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。