教堂是由克雷公司正在開發為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模塊
- 文檔li>
- 添加了新的技術說明,描述了用戶定義的域地圖界面
- (見DOC /技術說明/ README.dsi)
- 在做了許多改進,語言規範
- 重大修改的域章節,以提高清晰度/精度
- 改進和記錄統一的結構和類章
- 重大修改域映射章,以提高清晰度/精度
- 命名的例子代碼提供相互參照的例子/規格/節目
- 澄清標籤/休息合法性/繼續並行循環
- 更新說明
- 定格在文件中的字段的一些問題訂購
- 重新格式化規範作為“書”在乳膠
- 在各種小修正
- 改進定義/幾個方面說明
- 添加locale.name的文檔li>
- 和其他許多變化...
- 在更新的快速參考文件,其中包括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] 到
錯別字的/錯誤
所有任務層程序
不必要的字符串比較在編譯
評論沒有發現