OpenMP (1)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1内容简介本书是一本学习OpenMP编译原理和实现技术的入门级教材。内容分成三篇,第一篇是并行计算及OpenMP编程的基础内容,第二篇是OpenMP编译及其运行环境,第三篇是实践内容。在第二篇中,以一般编译器常见结构为主线,通过结合详细的OMPi源代码分析向读者介绍OpenMP编译器的工作原理及其实现技术,具体包括词法分析、语法分析、AST树的结构、AST树的生成及相关操作、OpenMP编译制导指令的代码变换、OpenMP线程与OS线程库的接口、运行环境等细节。OpenMP编译制导指令的变换是OpenMP编译的核心内容,需要将OpenMP制导指令的语义功能利用操作系统的线程库来实现,分成并行域管理问题、任务分担和同步问题、变量数据环境问题三个核心内容。第三篇的四章给出了常见编译器、性能测试工具以及OMPi源代码的框架分析。本书是国内第一本关于OpenMP编译器工作原理和实现细节的尝试。读者对象是研究OpenMP编译技术的研究人员和高校师生,作为入门的初步阅读材料,也可以作为研究生和高年级本科生学习并行语言编译技术相关课程的辅助参考书。由于作者才疏学浅,书中难免不少错漏,欢迎读者指正。联系邮件:lqm@szu.edu.cn。2前言编写《OpenMP编译原理及实现技术》教材是深圳大学“计算机科学与技术国家特色专业建设点”的建设内容之一。该教材和相应课程的设计目的有三点:衔接本科《编译原理》课程、扩展OpenMP并行语言编译的知识、增强学生的动手实践和编程能力,书中以OpenMP的一个开源编译器——OMPi作为分析对象,做到理论与实践紧密结合,为进一步学习和研究打下必要的基础。本书读者虽然不要求对编译原理有深入理解,但是还是需要先对编译有初步认识、具备基本概念。对于关心实现技术的读者,建议下载OMPi1.0.0的源码并进行同步阅读。书中第一篇基础部分共两章,分别讲述并行平台和OpenMPC编程作为预备知识。对于没有接触过并行计算技术的读者可以作为一个补充阅读,第2章的OpenMP编程基本上将相关的语言要素作了全面的介绍,没有特殊需要一般不再需要去阅读OpenMP的标准。第二篇编译部分共八章,主要讲述OpenMP的编译器以及运行环境。第3章介绍OpenMP编译器基本框架。第4章介绍词法分析和语法分析,主要以Lex和Yacc工具实现OpenMP词法和语法分析为主要内容。第5章介绍OpenMP编译中使用的AST中间表示。第6章、第7章和第8章介绍OpenMP编译中的并行域管理、任务分担和同步、变量数据环境三大问题,这是OpenMP编译的核心所在。第9章讲述目标代码生成,主要是如何利用“框架”来实现OpenMP翻译的技术。第10章以OMPi运行环境为例讲述相应的运行环境,。第三篇实践部共有四章内容。第11章给出了几种常见的OpenMP编译器以及性能测试工具,用于读者测试自己设计的或修改的编译器性能。第12章、13章和第14章是关于OMPi编译器工作流程和框架的内容,并有两个主要的上层源文件的代码分析,如果希望在OMPi的基础之上进行增强改进,那么这3章的内容将有所帮助。对学习或课程的安排可以分成不同流程,比如根据教学偏向于原理性还是实践性、是否具有并行计算基础等情况,选取书中部分章节作为参考材料,书中各章倾向性情况安排如下:虽然书中有大量的代码,但是读者在第一遍阅读时可以只作粗略浏览,第二遍阅读时再仔细阅读代码。由于源代码阅读往往需要参考不同章节的内容,因此书中有大量的交叉引用说明。第1章并行计算基础预备知识第3章OpenMP编译原理性内容第4章词法语法分析第5章AST第6章并行域第7章任务分担第8章数据环境第9章目标代码OpenMP专有内容第2章OpenMP编程第10章运行环境第11章编译器及工具第12章OMPi框架第13章ompicc.c实践性内容第14章ompi.c3如果对OpenMP编译有一定了解,并希望掌握OMPi的具体编码实现技术,可以从第12章开始阅读,将整体框架看完,再根据需要返回第二篇阅读编译细节。限于作者的学识水平,书中难免有不少错误和不足,恳请读者批评指正。作者在编写本书时深感“抛砖引玉”一词不仅仅是场面上的客套话,更是作者的内心体会和期望。4致谢本书得以顺利完稿,是许多人的共同努力!在此首先要感谢陈国良院士的支持和帮助。陈院士于2009年到深圳大学主持计算机与软件学院的教学科研的全面工作,作者作为其高性能团队成员有幸参与了众多高性能计算的科研工作,包括参与全国产万亿次个人高性能计算机KD-60研制、作为核心人员研制了SD-1PHPC以及正在进行基于龙芯处理器的SD-30十万亿次全国产化高性能计算机的研制等等。在这些工作中,作者萌发了编写OpenMP编译方面的书籍,陈院士表示认可和支持并给出了非常有价值的意见和建议,这就是本书得以编写并顺利完稿的最初原因。其次需要感谢明仲教授,在本书的最初构思、规划和资料整理的初期,明仲教授不仅阅读了初步的稿件材料并给出了大量的指导和修改意见,对后期稿件也提出了许多建设性意见。刘刚老师编写了第一章的部分内容和第二章的大部分内容,毛睿老师参与了多个章节的编写和订正工作,陆克中老师阅读了初期的稿件并给出了有益的意见。正因为有了这几位老师的贡献,使本书的编写质量和水平得以提高。另有两位研究生参与了本书的编写,孔畅同学完成了第11章的所有实验并编写了该章内容,刘成健同学是该书的第一位真正意义上的读者,并参与了稿件查错订正工作。对于深圳大学高性能计算团队中给本书编写工作提供了各种帮助的老师和同学,不能一一尽数,在此一并表示衷心的感谢!5目录第一篇基础.............................................................................................................................1第1章并行计算基础.............................................................................................................21.1基本概念...................................................................................................................21.2并行计算平台...........................................................................................................31.2.1典型结构.....................................................................................................31.2.2SMP..............................................................................................................51.2.3NUMA..........................................................................................................71.2.4GPU..............................................................................................................91.2.5Cluster........................................................................................................101.3并行程序设计技术.................................................................................................131.3.1并行程序设计...........................................................................................141.3.2OpenMP.....................................................................................................161.3.3MPI.............................................................................................................161.3.4CUDA..........................................................................................................171.3.5HPF.............................................................................................................181.4小结........................................................................................................................18第2章OpenMP编程基础....................................................................................................192.1OpenMP基本概念.................................................................................................192.1.1执行模式...................................................................................................192.1.2OpenMP编程要素....................................................................................202.2OpenMP编程.........................................................................................................222.2.1并行域管理...............................................................................................232.2.2任务分担...................................................................................................242.2.3同步........

1 / 25
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功