ZT - 怎樣提高呼叫數學函式的程式的效能(2)
自動化向量技術是一種過程,在這個過程中 IBM XL C/C++ 或者 Fortran 彙編器會識別一個機會,去改善彙編過程中程式的效能,方法就是將對一次迴圈中一個標準庫(C/C++ 庫或者 Fortran 本質)的訪問替換為對相應 MASS 向量函式的訪問。因為 MASS 向量函式要比對一個標準庫函式的重複訪問快很多(倍數接近 30 倍),所以最後得到的效能改善效果將會是驚人的。
一個簡單的例子就是為多個論斷計算特定函式的迴圈,例如接下來的 Fortran 程式。
subroutine sub (y, x, n) real*8 y(*), x(*) integer n, i intrinsic exp do i=1,n y(i) = exp(x(i)) ! standard intrinsic end do end subroutine |
有了適當的彙編器選項,彙編器就會意識到機會去給程式加速,方法就是將對 exp() 的重複訪問替換為相應的 MASS 向量函式 vexp(),結果會產生一個程式,好像最開始是這樣寫成的這樣:
include 'massv.include' subroutine sub (y, x, n) real*8 y(*), x(*) integer n call vexp (y, x, n) ! MASS vector function end subroutine |
這只是一個簡單的範例,演示了自動向量化背後的基本思想。XL 彙編器實際上能夠識別更加複雜的機會,並在需要的條件下重新安排源程式中的指南,以建立自動向量化的機會。
在本文中的範例研究部分中,會檢查一個更加複雜和實際的範例。
[@more@]來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16896827/viewspace-1036475/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ZT - 怎樣提高呼叫數學函式的程式的效能(1)函式
- ZT - 怎樣提高呼叫數學函式的程式的效能(4)函式
- ZT - 怎樣提高呼叫數學函式的程式的效能(5)函式
- ZT - 怎樣提高呼叫數學函式的程式的效能(6)函式
- ZT - 怎樣提高呼叫數學函式的程式的效能(7)函式
- [Q]怎樣建立基於函式索引zt函式索引
- 怎樣提高伺服器的效能伺服器
- 透過使用型別庫提高VB呼叫DLL函式的效能 (轉)型別函式
- 利用函式的惰性載入提高 javascript 程式碼效能函式JavaScript
- 移除函式呼叫能有更好的效能函式
- 函式的呼叫方式和引數函式
- 【函式】Oracle函式系列(2)--數學函式及日期函式函式Oracle
- Sql Server函式全解(2):數學函式SQLServer函式
- Itrace跟蹤程式呼叫庫函式引數選項-怎麼學習linux運維函式Linux運維
- 【C語言】函式的概念和函式的呼叫(引數傳遞)C語言函式
- 函式呼叫的引數規則與解包函式
- 像數學公式一樣徹底簡單理解JavaScript函式呼叫與this 指標公式JavaScript函式指標
- 怎樣測試程式的平均效能
- 函式呼叫引數變數傳值的問題函式變數
- 在C++中使用Lambda函式提高程式碼效能C++函式
- 淺析一個函式呼叫另一個函式的變數函式變數
- C程式函式呼叫&系統呼叫C程式函式
- 外部函式的呼叫函式
- js中的寫出想jquery中的函式一樣呼叫JSjQuery函式
- 人人都能學會的python程式設計教程10:呼叫函式Python程式設計函式
- 程式中的函式引數函式
- 輕鬆學習 JavaScript (2):函式中的 Rest 引數JavaScript函式REST
- JS中函式內套函式的呼叫JS函式
- Javascript的函式呼叫與thisJavaScript函式
- Lua中呼叫ref和out修飾引數的函式/過載函式函式
- 數學函式函式
- java可以像python中的函式式工具裡的reduce那樣呼叫嗎?JavaPython函式
- js函式 函式自呼叫 返回函式的函式 (閉包)JS函式
- Swift 呼叫 Objective-C 的可變引數函式SwiftObject函式
- ASP中函式呼叫對引數的影響 (轉)函式
- 函數語言程式設計(2) 高階函式函數程式設計函式
- C#程式碼與javaScript函式的相互呼叫C#JavaScript函式
- 透過例子學習Lua(4)--函式的呼叫(轉)函式