教堂是由克雷公司正在开发为DARPA为首的高生产率计算系统计划(HPCS)的一部分,一个新的并行编程语言。教堂的目的是提高高端电脑用户的工作效率,同时也作为可以在商品集群或多核台式机系统中使用的便携式并行编程模型。礼拜堂努力大大提高大规模并行计算机的可编程性,同时匹配或击败像MPI电流编程模型的性能和便携性。
该教堂的应用程序支持通过高层次的抽象数据并行,任务并行,并发性和嵌套并行&NBSP多线程执行模型;教堂的区域类型允许用户指定和推理的数据和任务上的目标架构的布局,以调整的地方。教堂支持全局视野数据聚集体与用户定义的实现方式中,允许对分布式的数据结构的操作被表达以自然的方式。相较于以前的许多更高级别的并行语言,教堂是围绕一个多分辨率的理念,允许用户在最初写的很抽象的代码,然后逐步加入更多的细节他们的需求需要,直到他们尽量靠近机器。礼拜堂支持代码重用和快速原型,通过面向对象的设计,类型推断,和通用编程功能。
教堂是从第一原则,而不是通过扩展现有的语言设计的。这是一个必要的块结构的语言,设计成简单易学的C,C ++,Fortran语言,Java和Perl中,MATLAB和其他流行的语言的用户。 /克雷XMT及贸易;同时建立教堂从以前的许多语言的概念和语法,它的并行功能由ZPL,高性能的Fortran(HPF),和克雷MTA和贸易最直接的影响;扩展C和Fortran
什么在此版本中是新的:
- 在亮点(详见下文)李>
- 在分裂'高清'关键字为'PROC'(用于程序)和“ITER”(用于迭代器)
- (见'$ CHPL_HOME / UTIL /转换-DEFS --help'帮忙更新现有的代码)
- 添加'复制'的分布和改进的“块循环”分布
- (见"标准分布和QUOT;在规范和实例/底漆/ distributions.chpl)
- 在加入单一语言环境的任务图层的Nano ++(BSC)和Qthreads(桑迪亚)
- (见DOC / README.tasks)
- 范围语义和实施重大返工
- (见"语义变化/更改教堂语言及QUOT;下面详细)
- 挥发性类型初步支撑:BOOL,INT,UINT,真正的,IMAG
- (见DOC /技术说明/ README.volatile)
- 进行的extern consts和类的支持(指针到结构)
- (见DOC /技术说明/ README.extern)
- 为数据并行的改进支持对克雷XMT
- 在例子/目录下的示例代码大量改进
- (参见“示例代码”下面和实例/ README)
- 添加最代码示例从规范到一个新的例子/目录
- (见例子/规格/ *)
- 补充的技术说明,描述了用户定义的域地图界面
- (见DOC /技术说明/ README.dsi)
- 大量更新到语言规范
- (见“文档”下面)
- 若干改进运行任务和通信层
- (见"运行时库变更];下同)
- 句法/命名更改
- 在分裂'高清'关键字为'PROC'(用于程序)和“ITER”(用于迭代器)
- (见'$ CHPL_HOME / UTIL /转换-DEFS --help'帮忙更新现有的代码)
- 更名为“算术”域/阵列'长方形'域/阵列
- 增加了支持浮动窗体的文本点“1.E ......”
- (以前,只有'1E ......'和'... 1.0E“被支持)
- 在语义变化/更改礼拜堂语言
- 若干改进范围(参见“范围”的语言规范章节):
- 添加排列的概念来表示对齐模|步幅|
- 添加一个“对齐”运营商和查询范围,指定/查询比对
- (例如,“1..10 3对齐2'=>'2,5,8',因为2 == == 5 8,MOD 3)
- 定义的范围在它们生成的整数序列而言==
- 定义的ident(R1,R2)说r1和r2是否具有相同的语义
- 在定义'#K'的K< 0为意指" ;从所述范围&QUOT的结束计数
- 添加'第一','最后','alignedLow,“alignedHigh”方法的范围
- (例如,“1..10由-2'=>首先== 10,最后== 2,alignedLow = 2,alignedHigh = 10)
- 添加了支持各种新的范围查询功能
- (例如,alignLow(),hasFirst(),hasLowBound(),isAligned(),boundsCheck()...)
- 添加了对挥发性BOOL,INT,UINT,真实的,IMAG类型
- (见DOC /技术说明/ README.volatile)
- 添加文件结束的检查文件类型
- (例如,“虽然!infile.eof ...')
- 删除支持在迭代器治疗'回报'为'产量'
- (例如,改变“ITER富(){返回X;}'到'富国际热核实验堆(){产量X;回报;}')
- 添加支持引用模块无需先“use',其中荷兰国际集团
- (例如,模块M1 {VAR X ...}模块M2 {... M1.x ...}现在是合法的)
- 加入了callStackSize查询到的区域类型
- (例如,“here.callStackSize'返回调用堆栈大小当前区域)
- 删除从枚举声明结束 先前要求的分号
- (例如,“枚举颜色红{蓝,绿}”现在是合法的;以前需要';')
- 增加了支持单尾随逗号枚举列表的末尾
- (例如,“枚举颜色红{蓝,绿,}'现在是合法的)
- 删除支持+/-运营矩形域;使用翻译功能()
- 在新实施的功能
- 实施== /!=矩形,联想,以及稀疏域
- 标准分布
- 添加了初稿'复制'分配用于存储数据冗余
- (见例子/底漆/ distributions.chpl)
- 改进'块循环“,足以正确执行HPCC PTRANS和HPL
- (见例子/ HPCC / ptrans.chpl,hpl.chpl;例子/引物/ distributions.chpl)
- 在规范域/阵列领导者之间的迭代器去除冗余
- 标准模块
- 添加无穷大,NAN常数的Math.chpl模块
- (参见“数学”下"标准模块和QUOT;语言规范)
- 添加isinf()和isfinite()测试程序的Math.chpl模块
- (参见“数学”下"标准模块和QUOT;语言规范)
- 加入了半打以上例程的GMP.chpl模块
- 文档
- 添加了新的技术说明,描述了用户定义的域地图界面
- (见DOC /技术说明/ README.dsi)
- 在做了许多改进,语言规范
- 重大修改的域章节,以提高清晰度/精度
- 改进和记录统一的结构和类章
- 重大修改域映射章,以提高清晰度/精度
- 命名的例子代码提供相互参照的例子/规格/节目
- 澄清标签/休息合法性/继续并行循环
- 更新说明
- 定格在文件中的字段的一些问题订购
- 重新格式化规范作为“书”在乳胶
- 在各种小修正
- 改进定义/几个方面说明
- 添加locale.name的文档
- 和其他许多变化...
- 在更新的快速参考文件,其中包括def-> PROC / ITER的变化,调整运 。
- 在重写/重组README.extern澄清解释并带来了最新
- 添加一个README描述“本地”声明(DOC /技术说明/ README.local)
- 添加一个README描述挥发性类型(DOC /技术说明/ README.volatile)
- 更新README.comm诊断提快叉统计
- 在更新的各种自述文件
- 示例代码
- 放在最代码示例从语言规范。到一个新的投机/子目录
- 改进引物/目录:
- 添加了一个新的引物使用过程(引物/ procedures.chpl)
- 添加一个基本的底漆域(底漆/ domains.chpl)
- 改名语言环境引物locales.chpl和改进它
- 改进的分布底漆,并添加块循环和复制使用
- 更新范围底漆(底漆/ range.chpl)
- 改进的迭代底漆(底漆/ iterators.chpl)
- 在提高削减引物(引物/ reductions.chpl)
- 添加getCurrentTime()的定时器底漆(底漆/ timers.chpl)
- 添加类型别名和配置类型的说明变量的引物
- (见底漆/ variables.chpl)
- 在提高HPCC /基准目录
- 添加HPCC PTRANS的第一个版本到HPCC /目录(ptrans.chpl)
- 添加HPCC HPL清洁版本HPCC /目录(hpl.chpl)
- 添加一个变种/子目录例子/ HPCC表现出其他方法
- 在添加流promoted.chpl显示使用促进全球STREAM三合会
- 在加入RA-cleanloop.chpl展现清洁剂(但目前更慢)RA内核
- 在改善顶层的例子:
- 改名现有"你好,世界"实例表明逻辑阅读顺序
- (见例子/你好* .chpl)
- 添加数据并行和分布式数据并行你好,世界的例子
- (见例子/ hello3-datapar.chpl,例子/ hello4-datapar-dist.chpl)
- 添加注释到各种你好,世界的例子(例子/ *你好.chpl)
- 更新了所有的实例当前语言语义
- 使用'PROC'/'ITER',而不是'高清'
- 更新,以反映新的语义范围
- 在特定平台的注意事项
- 为克雷XT /克雷XE,提高了aprun和PBS-aprun发射
- (见"启动特定的说明"下同)
- 为克雷XMT,增加了支持并行循环超过范围
- 为克雷XMT,加代noalias编译指示到FORALL循环变量
- 添加了支持BSC的计算机MareNostrum包括文档和一个特殊的启动
- (见DOC /平台/ README.marenostrum)
- 启动特定的说明
- 添加启动特定选项--help能力
- 的退出状态码,通过发射器改善传播
- 改变发射器,支持EXEC为主(而不是基于系统的)命令
- 在做发射使用“断开链接”,而不是系统(“RM”),删除临时文件
- 添加一个启动程序BSC的计算机MareNostrum
- 用来捕捉“系统”输出的临时文件数量减少命令
- aprun发射器的改进:
- 加入了--cc标志指定CPU分配瓦特/一个节点
- 加入了-q标志运行在安静模式下启动
- 通过CHPL_LAUNCHER_DEBUG添加调试能力,以保持周围 TMP文件
- 在PBS-aprun发射器的改进:
- 加入了--cc标志指定CPU分配瓦特/一个节点
- 通过CHPL_LAUNCHER_DEBUG添加调试能力,以保持周围 TMP文件
- 在清理输出摆脱一些多余的印刷
- 在制作启动支持,我们的测试系统
- 添加--walltime和--queue标志来发射作为替代信封瓦尔。
- 在编译器的更改
- 提出的编译器打印“真”/“假”在类型签名,而不是1/0
- 添加配置参数“noRefCount”禁用引用计数(可能泄漏内存)
- 在编译器标志
- 加入了--print-调用堆栈上错误标记,以表明是什么导致了一个糟糕的通话
- 加入了--no-codegen的标志来跳过代码生成和链接阶段
- 互操作性更改
- 添加了对外部C&QUOT支持;类" (指针到结构类型)
- 增加了支持的extern consts(见README.extern)
- 在错误信息的改进
- 添加警告孤儿声明模块之外“使用”的语句
- (例如,'用M1,M2模块{}“通常应该是”模块M2 {使用M1;}')
- 在做分析时错误信息使用标准的“文件名:LINENO:”格式
- 产生的错误信息指的是一个类名的主要方法
- (例如,'C类{高清CM(){...}}',产生错误消息)
- Bug修复/新语义检查(旧语义)
- 防止配置类型的使用时间执行命令行标志被设置
- 固定的编译器的能力来处理与工会没有字段
- 固定minloc / MAXLOC减少处理的值范围空/子范围
- 固定在其中'路径'参数文件的构造函数被忽略的错误
- 在空做工会工作的正确
- 在分块了范围分发/并行固定的溢出问题
- 涉及固定空的extern记录类型支持的一个错误
- 在涉及固定extern函数返回的记录中的错误
- 固定与复制外部记录的错误
- 在固定的+/-运营商对联想实施/稀疏域
- 修正了有关包含多个“基于文件名的模块名称错误。的
- 为扩大不规则域/外部/内部添加的错误信息
- 添加了一个错误的构造函数/析构函数与指定的返回类型
- 在固定的一对有关的错误'快上“优化
- 加入对建设类的检查,而不指定通用领域
- 包装更改
- 添加语法高亮代码为GNU源亮点
- (见ETC /源光/ README)
- 改进Emacs的着色进行版本22.x暂时支持
- (见ETC / emacs的/ README)
- 更新VIM语法着色,以反映新的“PROC”/“国际热核实验堆”的关键字
- (见ETC / VIM / README)
- 添加了一个脚本,将现有代码'使用“高清”到“国际热核实验堆'/'PROC'
- (见$ CHPL_HOME / UTIL /转换-DEFS)
- 删除multirealm实例和文档暂时
- 在第三方软件更改
- 更新GASNet到1.16.1版本
- 加入BSC的nanos ++和桑迪亚国家实验室的Qthreads 副本
- (见第三方/ README)
- 为做一个GASNet安装后一步改变的绝对路径相对
- 删除PVM暂且由于不稳定
- 在运行时库更改
- 在加入单一语言环境的任务图层的Nano ++(BSC)和Qthreads(桑迪亚)
- 若干改进运行任务层:
- 添加了一个新的界面具有任务层调用chpl_main()
- 改变任务初始化函数采取maxThreadsPerLocale / callStackSize的args
- 添加一个任务收益能力的任务层接口
- 在提高运行时代码,以避免使用同步初始化之前瓦尔任务
- 删除任务界面的宏观美化版的形式;使用标准名称,而不是
- 统一命名为chpl_sync _ *()和chpl_task _ *()
- 删除要求,实现单一变量接口
- 螺纹,从FIFO任务层的pthreads线程终止移动
- 同步变量的pthread的线程层简化实施
- 移动线程数从责任FIFO任务处理线程PTHREAD
- 若干改进运行时通信层:
- 重组的通信接口,支持长度/类型参数
- 添加非阻塞的界面让操作的通讯。接口
- 统一所有远程获取操作使用CHPL_COMM_GET()宏
- 在重构/重命名通信接口标题
- 测试系统
- 极大地改善了性能测试和图形功能
- (请参阅start_test的文档的正面评论)
- 改进了清理测试系统的支持后,本身
- 补充能力,以避免使用标准输入的任何间接
- 添加一个选项,以提供一个全系统prediff选项
- 加入到使用发射器的原生超时功能,而不是Python的 能力
- 完善的检测系统是如何杀死一个测试,超时
- 固定在.preexec文件只有当工作中的错误'。“是在你的路径
- 内部
- 加入了--break-ON-ID编译器标志为开发商找到AST节点创建
- 的UTIL /目录下的内容改进组织
- 在改变版本号计算方式/显示SVN基础的用户
- 添加了支持与任务/线程特定的模块代码
- 添加了一个功能,打印分配每遍之间的AST计数
- 添加了一个新的GDB别名编译--gdb:“禄”打印一个AST节点的位置
- 的编译指示/标志大大提高了执行,以避免错误的情况下
- 删除几个实例
- 在删除错误倾向使用CHPL_TASKS和CHPL_THREADS作为预处理器符号
- 添加bestPractices文档开发人员(不包括在释放)
- 改变内部需要改写'='和'=='到'ASSIGN'和'等于'分别为
- 加入了--print-ID-的错误开发商标志印刷上的错误AST ID
- 改进了C ++原型检查严格
- 添加外部贡献者协议SVN树(不释放) 的
- 加入由编译器使用的内部类型的概念,但不是用户
阅读[LN] /写[LN] 到
错别字的/错误
所有任务层程序
不必要的字符串比较在编译
评论没有发现