英语原文共 93 页,剩余内容已隐藏,支付完成后下载完整资料
Matlab的D:编译与并行MATLAB用户定义的数据分布
向用户提供的信息:
这个复制的质量取决于提交复印件的质量。残破的或不明显的打印,彩色或质量差的插图和照片,打印渗色透,不合格的利润,和不正确的对齐方式再现产生不利影响
在作者没有发送完整的手稿,有缺页万一,这些都会加以注意。另外,如果未经授权的版权内容已被删除,一个音符将显示删除。
摘要
Matlab的D:编译并行MATLAB与用户定义的数据分布 by Mary E. Fletcher
虽然许多科学家喜欢写在高级语言像MATLAB应用程序,这些语言往往不提供高性能,对于计算密集型应用程序,通常科学家写低级语言并行代码,这是乏味的。要启用从MATLAB翻译直接进入高性能并行代码中,我们增强与Matlab的分布式数组和并行FORALL循环创造了Matlab D语言。
我们开发了一个编译器,翻译Matlab的D写入并行的Fortran
分布式内存的机器。编译器分区使用数组分布为指导,处理器之间的工作。要生成一个广泛的应用质量代码Matlab的D编译器支持用户定义的分布。
我们的实验表明,Nlatlab D编译器比串行ntilde;显著更高的性能生成并行代码/ latlab,使用户能够获得高级语言的高性能。本文介绍了编译器实现,并展示了其与多个计算内核的研究前景。
致谢
我很感谢我有机会与肯·肯尼迪的工作。他的专业知识和热情为他的工作做很容易看到他是如何赢得了他的成功。他错过了。我感谢约翰·梅勒对于“采纳”我和抽时间给我提供实质性的方向时,他已经有了一套完整的责任。我还要感谢基斯库珀让我上了轨道,动机,和丹尼索伦森从一个Matlab用户的角度提供指导。谢丽尔和蒂姆·哈维帮助我,一切从编程研究的问题。从我的丈夫JC的支持是非常宝贵的。他帮我靠听我解决了很多问题。他读了我的论文草稿,听取了练习会谈,并取得了饼干为我辩护。我还要感谢我的父母和姐姐一直支持和鼓励我。
目录
内容
1引言hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;.1
1.1论文hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;.3
1.2捐款hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;3
2相关工作hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;.5
2.1并行MATLABhellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;. 5
2.2并行语言和编译hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;8
3 Matlab的D语言创建hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;10
3.1分布阵列hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;..10
3.2 FORALL循环hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;12
3.3执行模型hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;.15
4用户自定义分布hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;..20
4.1接口hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;22
4.2举例:块状分布hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;.26
4.3与编译器交互hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;28
5编译Matlab的Dhellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;...29
5.1高级概述hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;..29
5.2分布类型推断hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;.32
5.3并行hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;..34
5.3。我分区fora11-循环迭代。hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip; 34
5.3.2编译阵列声明hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;37
5.4同步hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;40
5.4.1插入障碍hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;40
5.42护卫写入分布式数据hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;41
5.4.3同步与嵌套并行hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;41
5.5通信hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;43
5.5.1阅读与写作分布阵列hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;43
5.5.2优化:预取数据hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;43
5.6传递数组部分,以功能。hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip; 45
5.7 专业化hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;47
5.8代码生成hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;48
5.9优化:直接修改数组存储hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;48
5.10在IVIatlab部门样机的局限性 hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;50
6 Matlab的ETH;运行的分布式内存hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;51
6.1 GASNet通信系统hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;51
6.1.1活动消息hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;52
6.1.2预取数据hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;53
6.2定期节设置hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;53
6.2.1应用常规部分。hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip; 54
6.3分配分布阵列hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;56
7实验结果hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;57
7.1效益分布开拓常规结构。 hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;58
7.2五点模板计算hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;60
7.3三点模板计算hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;66
7.4高斯消元hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;68
7.4.1初步结果hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;69
7.4.2改进的结果hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;72
7.5 讨论hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;76
8,总结与展望hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;hellip;77
图表
3.1实施例的二维块,并在2times;2处理器网格环状分布。11
3.2司代码数据的清单3.3在四个处理器16
4.1阵列分布有两个非传统的数据分布20
4.2 8times;8阵列上的,2x2的处理器网格的二维块分布。在数组元素的数目是所属处理器,
Matlab的D编译器5.1结构26
5.2流程图在Matlab的D编译器库预处理31
7.1计算五个单元素和三个点模具58
7.2执行时间10,000 10,000元素数组Matlab的eth;五点模板代码使用和不使用直接数组访问优化五点模板的变化,以增加投票前的30000分30000元阵列上59
7.3并行效率62
7.4通信模式的五点模板有4个,8个和16个处理器五点模版
7.5并行效率与元素阵列上增加投票
7.6加速比相对于10,000-由-10000元阵列上连续五点模板Matlab中
7.7加速比相对于元素阵列上的顺序三点模板Matlab中三点模板的元素阵列上
7.8并行效率
7.9执行时间为1500按1500元阵列Matlab的二维高斯消代码。 (x轴不使用对数标度)。
7.10执行时间为7000按7000元阵列上的优化高斯消元法码
7.11 7000按7000元阵列上的优化高斯消元法代码的并行效率
7.12击穿的执行时间为一个单元阵列上的优化高斯消元法码4 121处理器
第1章
介绍
科学家面临的生产效率和性能之间的权衡。许多喜欢写在易于使用的应用程序,高水平的语言,如MATLAB,l通过使用图书馆或专门到他们域“工具箱”。虽然应用程序
可以用高级语言来迅速发展,他们往往不提供高性能。为了实现计算密集型应用程序所需的性能,科学家们必须经常写在低层次的语言,如C或Fortran的并行代码,这种方法既繁琐且容易出错,所以大多数并行应用程序是由高技能的专业程序员制作。因为这个原因,许多
科学家和工程师有高端计算很少或没有接入。
探索从MATLAB自动获取高性能的代码策略,我们已经开发了Matlab D编译器来翻译含有高水平的并行结构成并行的Fortran代码Matlab的脚本。我们增加了两个功能,MATLAB,分布式数组和并行FORALL循环,创造了Matlab D语言。分布式阵列的元件在一个分布式存储器机的多个处理器之间划分。基于该数据如何处理器之间分布,在并行FORALL循环和阵列陈述的计算也分布在处理器之间。
由于Matlab的D编译器使用数组的分布来确定如何并行化的应用,分布是并行性能的关键,遗憾的是,大多数编译器和应用框架既支持固定的分布,如高性能Fortran编译器[30],或支持自适应分布为特定应用程序,如科佩特应用框架[38]
递归平分[5,12]和multipartitioning [17,36]是对于在某些应用中的高性能的关键非传统分布的例子。递归二分法是在应用程序中实现更好的负载平衡,其中的工作是整个数据,如从劳伦斯利弗莫尔国家实验室的天堂中的应用[11]不规则有用。相反发放的元素固定大小的块
注释,以每个处理器,分配递归细化基于与所述阵列的每个区域相关联均匀分布的处理器之间的工作的计算密度的块大小。
Multipartitioning是用于行扫描的算法,其中数据依赖性sequentialize计算沿着每个维度,例如在交替方向隐(ADI)积分算法[17]是有用的。与multipartitioning,每个处理器具有相同数目的沿任何单个维度的块。其结果是,沿任何尺寸的扫描是负载平衡和完全平行。
要生成适合多种应用程序的代码,Matlab的D编译器支持增加用户定义的分布的高层次,全通用接口。如果用户开发,将非传统的,从数据分布应用程序中受益,他们可以提供新的发行接口程序的实现。编译器生成的代码调用接口例程按照所提供的分布自动划分数据和计算。
1.1论文
我的论点是,通过增加分布式数组,并行˚Forall循环,用户自定义分布到MATLAB,编译器可以比串行Matlab的显著更高的性能生成并行代码,使用户能够编写高水平的代码,并获得较高的性能。
1.2捐款
为了验证这一论断,我们实现了Matlab D编译器,其中包括定义新的数据分布,获得的并行编译器转换和并行运行系统的接口。通过实施,我们探讨了其中利用目前在大多数发行版使用分配接口处理器之间更有效地划分数据和计算块状规律的方式。我们展示Nlatlab D语言和编译器与多个计算内核的研究的promiso。
本文的第2章介绍并行MATLAB,并行LAN-相关工作
轨距,和用户定义的分布。第3章介绍了Matlab D语言。
我们提出了支持用户自定义的数据分布在第4章我们讨论了Matlab D编译器在第5章的执行情况,并在第6章章运行7给出了战略的实验验证的框架。
第2章
相关工作
2.1并行MATLAB
MATLAB分布式计算工具箱和引擎是来自MathWorks [31,35]官方并行MATLAB产品。用户到发动机提交使用工具箱后端并行任务。在发动机的作业管理器把多个MATLAB会话中的任务并返回每个会话的结果
完成后的前端。该工具箱提供了并行循环,称为PARFOR,与独立的迭代循环。由一个特定的迭代访问的数据被发送到执行循环之前迭代的处理器。对于执行过程中需要的通信任务工具箱提供通信原语明确地传输数据。
星-P [16)类似于从Nlathworks工具箱并且还享有商业成功。在星 - P时,数据是通过服务器分布,并且用户与前端一个Ivlatlab解释相互作用。在分布式数据进行操作,用户调用的设置平行IVIatlab功能之一,并传递一个布局对象的illstance到的功能。该功能将请求传递到服务器,从并行数值库,如ScaLAPACK的[42]调用相应的程序。结果存储在服务器上,直到要求降低通信流量。
星-P通过并行例程固定库支持数据并行,并通过ppeval命令,它运行在后端尴尬的并行任务支持任务的并行。该任务只能访问输入数组不相交的部分,并在执行过程中的任务不能通信值。通过这种策略,用户无法对其中的处理器需要的,除非有一个提供程序来共享或交换价值的应用程序获得并行性。 Matlab的D编译器生成与用户代码直接在所需的通信并行代码,这意味着用户不需要依靠并行程序的
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[152620],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。