13国产集群并行程序开发环境用户手册_第1页
13国产集群并行程序开发环境用户手册_第2页
13国产集群并行程序开发环境用户手册_第3页
13国产集群并行程序开发环境用户手册_第4页
13国产集群并行程序开发环境用户手册_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目 录1并行开发环境简介11.11.2安装与初次. 1开发环境的启动12使用参考指南42.1项目管理.22.1.3基本概念5新建项目5添加移除文件62.2程序编辑...32.3.4常规功能9智能感知9程序结构管理10动态帮助11生成12基本概念和基本操作12编译命令13编译及生成输出14Makefile 文件162.4作业提交.2基本操作17提交命令设置182.5作业查询与. .2作业查询20作业. 202.6并行调试..4调试界

2、面的布局22现有局限22静态调试23动态调试291 并行开发环境简介众核集群并行程序开发环境是针对众核集群系统的特点,借鉴国内外相关领域内的技术,为众核集群系统设计的集成开发和调试的可视化环境。用户通过并行程序开发环境能方便地了解高效能计算机系统,有效地进行并行程序的编写、编译、执行和调试等。1.1安装与初次在安装过程中,首先要确认本地是否已安装 VS2008,如果未安装,则应先安装之。在安装 VS2008 之后,再运行“并行开发环境.msi”安装包。如果要对开发环境进行升级,则应首先卸载以前版本之后再重新运行安装包。安装完毕后,在桌面上将产生一个“用户”快捷方式,如图图 1:用户快捷方式用户

3、可以双击该快捷方式进入用户环境的登录总界面;也可通过桌面“开始”按钮“所有程序”“并行开发环境”“用户”来启动。注:用户可根据自己的需求自定义安装 VS2008。一般而言,必须安装 Visual C+模块。1.2开发环境的启动点击登录,弹出登录框,如下图:图 2:用户登录输入用户名、及服务器地址,点击登录进行登录,具体服务器地址请询问系统管理员。登录成功后,出现以下界面:图 3:点击开发环境,将弹出窗口:用户登录成功后图 4:并行开发环境总界面如果未出现以下工具条图 5: 并行开发环境工具条则使用工具-自定义图 6: 工具条自定义如图勾选并行开发环境及并行调试。登录成功后,将自动用户的 hom

4、e 路径到本地的W 盘。2 使用参考指南进入开发环境后,缺省将有的“并行”菜单栏和功能条,如下所示:图 7: 并行菜单图 8:并行调试工具条图 9:并行开发环境工具条其中,菜单项中的各个子项大体功能如下,详见以下各个章节的具体描述:“配置”用于显示用户登陆成功后用户 home 与W:盘的信息及设置执行前确认参数;“编译”用于编译用户源文件;“生成”用于生成并行项目;“重新生成”用于重新生成并行项目;“作业执行”用于执行并行作业;“作业查询”用于查询并行作业;“作业”用于并行作业;“启动调试”用于静态调试启动;“附加到进程”用于动态调试启动。调试子项目包含“继续”、“中断”、“退出”、“逐过程”

5、、“逐语句”等调试命令菜单项。其中调试工具条包含“继续”、“中断”、“退出”、“逐过程”、“逐语句”等调试命令快捷按钮。包含“进程下拉框”和“线程下拉框”,用于选择当前活动进程和活动线程。图 10: 调试工具条中的“其他”子项“进程组选择”用于设置进程集合;“执行定位”弹出输出归纳窗口,显示进程当前执行定位的归纳信息;“调试堆栈”显示当前活动进程的堆栈信息;“表达式”用于打印和赋值表达式。并行开发环境以项目作为开发的起点,以下分项目管理、程序编辑、生成、作业提交、作业查询与和并行调试等六大部分进行介绍。2.1项目管理2.1.1 基本概念项目:项目是在并行开发环境中开发并行程序的起点。它用作一种

6、管理源代码、数据连的容器。使用并行开发环境进行并行程序开发,可新建一个项目作为起始,也可将接和源文件引入现有的项目。项目模板:项目模板是对应于某一项目类型的一组通用原型文件。项目模板提供用户所选项目最基本的程序语句和程序结构,用户可以在项目模板自动生成的文件中进行源码扩展以开发应用程序。2.1.2 新建项目在开发环境菜单栏中点击“文件”“新建”“项目”,弹出“新建项目”框如下图。在左侧的“项目类型”中,“Visual C+项目”下有一个“并行程序项目”,对应在右侧“模板”中提供了开发“MPI C”、“并行 C”等项目模板。图 11: 新建项目选中将要开发的项目类型以及对应模板,输入项目名称和项

7、目所在位置,点击“确定”按钮,之后进入该项目的开发界面。缺省的,并行开发环境会根据所选模板类型,在项目创建之初生成一组文件,包括头文件,源文件、说明文件和 Makefile.penv 文件,分别归属为相应的文件组。如果要使新建的项目能够编译、生成、运行,其所在位置必须在用户 home 路径所的 w 盘上。图 12: 解决方案资源管理器在资源管理器中双击源文件名,将在代码视窗中打开源文件。2.1.3 添加移除文件大多数的项目都由若干文件组成,由开发环境自动生成的文件常常不能满足要求,还有就是用户想重用以前编写的源码文件。为此,文件管理器提供了添加删除文件的功能,用户可以将现有源文件添加到项目之中

8、,也可在当前项目中添加新文件。具体操作如下:在“资源管理器”中,于项目名或文件组名上点击右键,选择右键菜单“添加”“添加现有项”,或“添加”“添加新项”,对于后者,用户可选择相应的文件模板作为添加对象。图 13: 添加源文件对于项目中不需要的文件,用户可以将其从项目中移除。在待移除文件上点击右键,选择“移除”即可,如图:图 14: 移除源文件文件添加可批量进行。并且如果是在项目名称上添加文件,项目管理器可根据后缀名自动将文件进行分类。图 15: 批量添加源文件和头文件使用 Shift 或 Ctrl 配合鼠标批量选择.h 和.c 文件(主要文件必须位于用户盘上),点击添加按钮进行添加。的 w如果

9、所添加的文件不在当前项目下,那么添加文件的操作并不能将位于其它目录的文件拷贝(Copy)至当前项目文件中;文件移除并非将文件从介质中删除,该文件仍然在项目目录中。针对以上描述,用户请根据自己的需要进行文件操作。2.2程序编辑并行开发环境的编辑器完全继承自 VS2008,并在其上对新的语言提供支持。2.2.1 常规功能程序编辑器提供了如下进行文本操作的常规功能:本地文件及项目的打开、保存、另存、关闭、全部保存等;对编辑动作的撤销、重复,对内容的、剪切、粘贴,删除单词、删除行、删除等;查找、替代、到指定行、设置书签、查找书签等。另外,程序编辑器还提供了其作为程序制作工具的常规功能:智能感知、显示行

10、号等;保留字、注释等文本的彩显;程序结构管理;初步的词法分析;动态帮助。2.2.2 智能感知智能感知是程序编辑器智能化提示用户下一步程序信息从而帮助用户编写程序的功能。例如,在函数调用时当用户输入了函数名后,编辑器可自动的给予参数列表提示,如下图所示,在用户使用结构或类的实例时,编辑器也可以自动将实例所能的成员列表显示出来,其好处在于它可以将用户从繁琐的或查询工作中解放出来,而专注于其它更为重要的方面。而且,这种功能也提高了程序输入的准确性。图 16: 智能感知2.2.3 程序结构管理为了将有限的屏幕空间进行合理利用,方便用户快速的阅读和定位程序,程序编辑器将每个源文件组织为若干树形结构。其中

11、,命令语句(包括#include,#define函数体、结构和类被组织为节点,节点可以折叠和展开,如图:等)、注释、图 17:大纲显示展开图 18:大纲显示折叠2.2.4 动态帮助编辑器与帮助系统相关联,比如,将光标移至库函数名上,如 MPI_Finalize 上,按下F1 键,该库函数的帮助内容,如图:图 19: 动态帮助2.3生成并行开发环境不仅实现了项目的自动生成机制,同时又对用户自定义生成提供支持。2.3.1 基本概念和基本操作编程阶段完成后,用户可通过编译将单个源文件转化为目标码。或者使用生成将项目中的源文件全部编译为目标码(源文件未编译情况下),并将若干个目标文件可执行文件。关于二

12、者的区别与联系请看补充说明。为编译生成重新生成重新生成指目标码及可执行文件后再次执行生成。编译是对当前文档进行单个编译,这种情况一般发生在只修改了项目中一个或少数几个源文件,此时没必要对其他文件再重新编译,再使用生成,则生成起到一个链接器的作用。在源文件修改后未编译的情况下使用两个过程。生成,则生成完成了编译和2.3.2 编译命令用户可通过以下操作设置编译选项:在“资源管理器”中,在项目名上点击右键,选择 “属性”,或者通过菜单栏“项目”“属性”(其中为项目名)进入属性页。然后点击“配置属性”“C/C+”“命令行”,可在右侧“附加选项”编辑框中填写编译命令。图 20: 项目属性图 21: 设置

13、编译指示2.3.3 编译及生成输出编译的输出在输出面板中给出,它典型的作用为输出编译报错信息,并在双击报错语句后会自动跳转到源码中对应的位置。如图:图 22: 编译报错指示2.3.4 Makefile 文件5.1.2 节提到,开发环境在新建项目时自动生成一个Makefile.penv 文件,用户可以对该文件进行编辑修改以满足自己的需要。如果项目下有一个标准的 Makefile 文件,那么编译过程中将忽略自动生成的 Makefile.penv 文件,而使用标准的 Makefile 文件。如果用户程序有自己的标准 Makefile 文件,那么 节讲述的编译参数设置将不起作用。项目中

14、不要有和项目路径同名的.c 和.h 文件,如果有的话,请在新建完成项目后编辑修改。用户可以在说明文档栏中添加打开现有项,查看编辑Makefile 文件。如果项目生成文件编译时带有宏定义,请修改Makefile 文件,定义宏值。如移植 NPB 测试课题,利用并行开发环境对 BT 课题进行再开发,该课题路径如下/mnt/swgfs/export/gfstest/NPB3.2-MPI,则使用开发环境在 W: NPB3.2-MPI 下新建项目 mybt将 w: NPB3.2-MPIBT 目录下的源文件及头文件添加到资源管理器中的源文件及头文件栏,并且添加 Makefile 文件,文件内容示例如下:de

15、fault:cd.; make f ./Makeficlean:cd ./; make clean rebuild: clean defaultt CLASS=A NPROCS=4其中 rebuild 伪目标用于重新生成,default 伪目标用于Makefile 重新生成目标码 bt.A.4。生成,下图为使用自定义图 23: 自定义 Makefile2.4作业提交2.4.1 基本操作点击“作业执行”按钮,或者通过菜单栏“并行”“作业执行”,提交运行当前项目生成的可执行文件。作业输出在开发环境“输出”面板的“作业执行”窗口中。图 24: 作业执行若项目中的文件未编译而直接提交,则会先进行编译,

16、生成新的可执行程序后,再进行提交。2.4.2 提交命令设置提交命令可由用户修改。方法 1:用户可通过项目“属性页”进行修改。进入“属性页”。在属性页中,点击“配置属性”“调试”,在右侧“命令”一栏中进行修改。方法 2:通过勾选“配置”的“执行前确认参数”复选框。这样在每次提交作业的时候都会弹出“作业执行参数配置”框。用户可在“命令”文本框中修改提交命令。图 25: 作业提交命令设置图 26:选择执行前确认参数2.5作业查询与2.5.1 作业查询用户可通过点击“作业查询”按钮,或通过菜单栏“并行”“作业查询”查询当前用户提交了哪些作业正在运行。图 27: 作业查询2.5.2 作业用户可通过点击“

17、作业”按钮,或通过菜单栏“并行”“作业”当前作业。图 28: 作业此处的当前作业是指,由当前项目生成,并通过开发环境提交运行的程序。对在并行开发环境中提交非最近作业用户可通过作业执行命令如 bkill修改作业提交命令)。(注: 此方图 29: 通过作业执行参数设置执行作业2.6并行调试并行开发环境提供的调试有动态和静态两种启动方式。按照并行C 的功能分类,并行调试支持两种编程模型:运算模型和加速运算模型。为支持系统的调试,该环境为并行C、MPI 等类型的并行程序提供了基本的调试功能,采用动态和静态两种方式启动调试:静态方式是指在调试界面下启动程序的运行,可先在程序中的一行上设置一个断点,再启动

18、调试,使程序停在这个断点。动态方式指在作业已经运行后动态地进入调试方式,然后在调试界面下控制一个或多个进程的运行。启动调试后,通过设置和删除断点,驱使程序分段执行,检查到达断点后的程序上下文,并验证一些重要数据变量的正确性,从而判断程序的执行是否符合预期的逻辑。并行编程不符合人类条理化串行做事的思维,所以并行编程和调试的过程是复杂的,用户需要不断探索调试方法,积累良好的编程。例如用户可先借助于打印,了解程序中各并行部分执行的大致情况,分析出程序运行出错的可能位置(设为 X)和失败原因,然后再把断点设置在 X 稍前的位置,静态启动调试,到达 X,或者在 X 位置添加类似这样的语句:waitdeb

19、ug=1; while (waitdebug); 以此暂停程序的执行,然后把 X 改为 0,跳出Sic循环,再调试该进程。如果程序出错的位置和现象、时机等有不固定的情况,一般原因是程序中的变量未初始化导致缓冲区的内容被覆盖,或条件被随机选择;也可能是缺少正确的同步控制,导致数据读写或写写竞争,因此这些情况需要先分析程序。由于体系结构的快速发展和版本的不断更换,的并行调试还在不断完善,所以目前的版本还有一些使用限制,用户可以提出自己的需求,为优化调试功能提供指南,不断提高的实用性和好用性。2.6.1 调试界面的布局调试界面包括并行调试式窗口等模块。、源程序编辑窗口、进程组选择窗口、堆栈窗口、表达

20、图 31: 调试界面布局位于界面上方,可执行集合操作、选择当前活动进程与线程、弹出其它并行调试项(包括进程组选择、调用堆栈、表达式)等操作。继续命令():使程序继续执行,直到断点命中或程序运行结束;暂停命令():暂停运行中的程序;逐过程、逐语句():被调试的程序执行一条语句,当该语句中包含函数调用,逐过程执行完该行,逐语句进入该行调用的函数。界面是源程序编辑窗口,该区域供用户浏览程序,设置断点。界面左侧是进程组选择窗口,显示进程的运行状态,选择其中的一行可定为程序上下文的源码位置。界面右侧是表达式窗口,可打印变量或表达式的值。界面下方是堆栈窗口,展示当前进程或线程的堆栈信息。2.6.2 现有局

21、限1所有被调试程序的编译选项设置必须附加-g,并行 C编译选项;运算模型,还需附加-self-par2对于并行 C 程序的模型,控制核被语言隐藏,所有的断点都是计算核断点,建议在“启动调试”之前,仅在 main 函数处设置一个断点,调试启动成功后,可以设置多个断点。3. 对于并行C 程序的加速模型,语言手册规定#pragma ccc sync call 后面紧接的一行调用计算核函数。在静态调试的时候,如果需要进入计算核函数调试,必须在执行到#pragma ccc sync call 之前设置且仅设置一个计算核断点。如果没有设置任何计算核断点,单步命令不会进入计算核函数,就像串行程序调试中单步执

22、行fork 和 execl 系统调用的结果一样。在进入计算核函数之后可设置多个计算核断点。4为了不干扰并行进程和计算核线程的并行交互、同步通信,数据状态的全局一致,建议在进入计算核函数之后,计算核断点设置在所有计算核都执行的语句行上,以保证所有的计算核 all go 或 all stop,以防止其它计算核的潜在动作干扰用户检查程序上下文。5启动下一次调试之前,要先退出本次调试,并选择“调试-清除所有断点”清除所有计算核断点。2.6.3 静态调试断点并行开发环境断点设置与取消方法与.net 设置和取消断点方法相同。用户设置和取消断点后,该操作对其后首次执行“继续”、“逐过程”、“逐

23、语句”等操作的进程组集合有效。启动用户以静态方式启动调试,需新建或打开并行程序项目。在启动调试前可打开源文件设置断点,该断点对用户作业中的所有进程有效,如果不设置任何断点,程序将运行至出错的地方或程序结束。点击启动静态调试,开发环境首先按用户所设置参数提交作业,如果作业成功提交,自动弹出进程组选择窗口,并在进程组选择窗口指示其每个进程的运行状态。进程组选择在动态调试进程 Attach 成功后和静态调试成功启动后,都会自动弹出进程组选择窗口,对进程的执行进行显示,加速运算模型和运算模型分别呈二级目录结构和一级目录结构显示,如下图所示:图 31: 进程组选择窗口(加速运

24、算模型)图 32: 进程组选择窗口(运算模型)双击“逻辑任务”下的子项,如“pros3”则会尝试定位进程 3 目前源行信息,如果能够定位,则打开源文件并显示源码行。如果不能定位则忽略此次操作。图 33: 定位源行信息命令执行状态栏指示调试命令的执行状态,分别为“命令执行中”和“命令执行结果返回”,用绿色字体和红色字体进行区分,绿色字体代表“命令执行中”,红色字体代表“命令执行结果返回”。只有在命令执行状态为“命令执行结果返回”状态下,才能继续执行下一条调试命令,在“命令执行中”时可以使用“中断”命令对之中断。下图所示为执行继续命令未运行到断点时进程选择窗口状态:图 34:进程组选择同一任务空间

25、(进程空间)下支持调度非活动运算操作。同一进程空间下的进程组选择中,勾选的计算核线程集合为活动运算集,未勾选的为非活动运算集。进行集合操作时,活动运算集根据用户选择执行;勾选“执行”时,非活动运算执行,勾选“暂停”时,非活动运算暂停执行,等待用户调试命令。图 35:调度非活动运算”窗口支持对“进程组选择”下的进程、线程的各类规模增加成员“当前活动运算和减少成员操作,匹配模式包括全集(all)、单元素集(8)、多元素集合(8-63),以及这些集合的组合(2,6,8-25,32,36,48-62)。首先在“任务逻辑号”框(最大 128)和“逻辑运算号”框(最大 64)中填写操作规模,接着点击“增加

26、成员”或“减少成员”按钮,“进程组选择”窗口下的逻辑任务框会自动进行相应的下图为“任务逻辑号”框填写“all”、“逻辑运算操作。号”框填写“0-3,10,22-62”,单击“减少成员”按钮后的执行结果。图 36:手动选择执行下图中有三个进程(pros),每个进程分别有八个线程(thread)。其中,pros0在主程序中运行,定位在 68 行,线程还未生成;pros1 进入线程执行,八个线程等待其它线程同步;pros2 进入线程执行,八个线程都定位在 22 行。图 37:进程运行状态展示注:计算核分组调试需按照程序的执行模型调度执行,否则有可能会挂起无输出响应。活动进程执行堆栈、表达式信息等操作之前需要确定当前活动进程和线程,这些操作只对所选择的进、线程有效。设置当前活动进程和当前活动线程,如下图所示:图 38:活动进程和活动线程选择点击组合框中的下拉箭头,选择当前活动进程和线程。图 39: 设置当前活动进程和活动线程注:此处选择的进、线程必须在“进程组选择”框中已选上。堆栈功能: 堆栈信息从函数调用关系的角度,展示被调试进程的执行流程。操作步骤:1点击组

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论