分布式环境下的OpenMP程序改造技术研究

 2022-08-07 09:08

论文总字数:21701字

摘 要

随着大数据技术和互联网应用的日益普及,面向海量数据的并行化处理技术及其开发手段得到了长足的发展。OpenMP作为一组计算机硬件和软件供应商联合定义的应用程序接口。OpenMP为基于共享内存的并行程序的开发人员提供了一种便携式和可扩展的编程模型,已经作为C 语言的标准在大部分商业编译器中得到了支持。OpenMP可以根据用户在其程序中插入的并行化指令,对用户程序语句进行并行化分解,并充分利用多核处理器自身的并行化处理能力实现对用户语句的并行化执行。但是,也仅仅是在单一机器上的并行化处理,在硬件技术无法革新的情况下,单一机器的计算能力也是达到了瓶颈。

本文所提出的OpenMP改造技术就是利用大数据并行化处理的思想,将OpenMP单节点的并行化处理技术拓展到分布式环境下的多节点并行化处理,这样突破了单一机器环境下的并行化处理瓶颈,能达到更快的处理速度。这一应用即提高了OpenMP代码的实用范围,也在多节点情况下极大地改善了并行化处理的速率,是OpenMP程序改造技术的一大创新性理念。

分布式计算环境虽然有它独特的优越性,例如即便是计算能力不强大的CPU也可以分担部分分布式计算任务,但是同时分布式环境也带来很多单一节点没有的问题,比如节点间的信息交互问题,通过网络间进程通信传递消息一方面带来了消息传递时不可避免的延迟,一方面面临着诸多节点间消息传递的复杂性问题。这些问题通过中间件技术,使进程间通信透明化,这种方法使编程人员,无需了解进程间通信所涉及的多种反复的网络间通信协议的操作, 从复杂的网络编程中脱离出来。

关键词:OpenMP、分布式、并行化、中间件技术。

Research on Transformation Technology of OpenMP Program in Distributed Environment

Abstract

With the increasing popularity of big data technologies and Internet applications, parallelized processing technologies and their development methods for massive data have come a long way. OpenMP is an application programming interface (API) defined by a group of computer hardware and software vendors. OpenMP provides a portable and extensible programming model for developers of shared memory-based parallel programs and has been supported as a standard in the C language in most commercial compilers. OpenMP can parallelize and decompose user program statements according to the parallelization instructions that users insert in their programs, and make full use of the parallel processing capabilities of multi-core processors to achieve parallel execution of user statements. However, it is only a parallel process on a single machine. When the hardware technology cannot be reformed, the computing power of a single machine is also a bottleneck.

OpenMP transformation technology proposed in this paper is to use the idea of big data parallel processing to extend the parallel processing technology of OpenMP single node to multi-node parallel processing in a distributed environment, thus breaking through the parallel processing in a single machine environment. Bottlenecks can achieve faster processing speeds.

Although the distributed computing environment has its unique advantages, for example, even CPUs with less computing power can share some of the distributed computing tasks, but at the same time the distributed environment also brings problems that many single nodes do not have, such as information between nodes. The interaction problem, through the process of communication between the network to transfer messages on the one hand brings the inevitable delay in message delivery, on the one hand facing the complexity of the problem of message transfer between many nodes. These problems are also the key to this study.

Keywords: distributed, parallelization, middleware.

目录

摘 要 3

Abstract 4

第一章 绪论 6

1.1研究背景和意义 6

1.2研究现状 8

1.3本文主要工作 9

1.4论文组织与结构 10

第二章 问题定义及分析 11

2.1 OpenMP介绍 11

2.2 中间件概述 13

2.3 消息发布/订阅系统 14

2.3.1 发布/订阅架构定义 14

2.3.2发布/订阅架构模型 15

第三章 基于“订阅/发布”机制软件框架模型 16

3.1 软件功能介绍 16

3.2 软件设计方案 17

第四章 OpenMP代码识别算法模块 19

4.1 模块功能介绍 19

4.2 具体算法设计 20

4.3 算法测试结果 21

第五章 分布式计算任务分配模块 25

5.1 模块实现功能 25

5.2 算法具体设计 26

5.2.1 各节点任务数量分配 26

5.2.2 各节点任务内容 26

第六章 实验测试结果及分析 27

6.1 实验测试结果 27

6.2 结果分析 30

第七章 总结与展望 31

致谢 32

参考文献 32

第一章 绪论

1.1研究背景和意义

随着大数据、云计算平台和互联网的日渐普及,对庞大数据的处理分析正在一步步成为信息时代技术发展的转折点,在诸如电子商务、移动通信、社交网络乃至蓬勃兴起的物联网等信息技术的应用中,在每时每刻的数据计算过程中们都会产生巨大庞杂的海量数据,而云计算提供了对这些庞杂的海量数据进行并行化计算、并行化分析及移动台处理的庞大的分布式存储条件和计算平台。通过对网络上来自不同节点的不同数据进行筛选、计算与优化与分析,将每一步所得到的结果进行分析整合,结果提供反馈到不同的基于大数据平台的应用中,不仅加快了计算任务的处理时间,更是创造了可观的经济和社会价值。

自从互联网从Web 1.0迈入到如今的Web 2.0时期,互联网中的信息量以指数的速度增长着。互联网络上每天所产生的海量数据至少以TB为单位存储,若是将这些数据单一地存储到某一台机器,这无疑会产生数据的计算,每天所产生的大量冗余数据的处理以及有用数据的维护工作,这些大量的计算存储工作相较于传统意义而言的的关系型数据的存储和计算,抛开数据量大小不谈,这些每天计算产生的中间数据大多都是非关系性的、而且没有固定格式的数据,数据间的交互以及操作便十分的复杂,这就对传统的基于非分布式的计算模式进行挑战。

剩余内容已隐藏,请支付后下载全文,论文总字数:21701字

您需要先支付 80元 才能查看全部内容!立即支付

该课题毕业论文、开题报告、外文翻译、程序设计、图纸设计等资料可联系客服协助查找;