是時候把我們的目光從cuda樣例程式移開,建構并運作我們自己的程式。在本節我們将給出完成相同功能的兩個應用的代碼<code>dist_v1</code>和<code>dist_v2</code>。每個應用都計算了從一個參考點到n個在直線上均勻分布的點之間的一組距離。這一任務精心設計,力求簡單,但是對于工程師而言仍然具有明确的指導意義。讀者也很容易考慮到如何将這裡的實作推廣到更加通用的場合。
值得注意的是,雖然<code>dist_v1</code>與<code>dist_v2</code>實作的是同一個任務,但是它們通過不同的方法來完成。
<code>dist_v1</code>使用一個for循環,循環内先對循環變量進行歸一化得到一個輸入位置然後計算并存儲該位與參考位置的距離。這裡我們建立一個<code>distance()</code>函數計算一個參考位置和某個點間的距離,該函數調用了n次。
<code>dist_v2</code>以建立一個輸入位置的數組作為開始,然後将這個數組指針傳給<code>distance-array()</code>函數,該函數在一次調用中計算并存儲整個數組距離值。
<code>dist_v1</code>和<code>dist_v2</code>将作為我們在第3章中講解并行化的初始實驗對象。這裡給出它們的代碼,每個程式的建立、編譯以及運作的指南和詳細解釋參見附錄c。這裡給出另一個提示:你需要能夠編譯并運作<code>dist_v1</code>和<code>dist_v2</code>這兩個程式。如果你對此有任何問題,請參考附錄c來找到解決這些問題的方法。
<code>dist_v1</code>應用隻包含一個檔案main.cpp,内容如代碼清單1.1所示。對應的linux下的makefile檔案參見代碼清單1.2。

<code>dist_v2</code>應用的代碼包含了三個檔案:main.cpp(參見代碼清單1.3)、aux_functions.cpp(參見代碼清單1.4)以及頭檔案aux_functions.h(參見代碼清單1.5)。linux下的makefile檔案參見代碼清單1.6。
這裡我們到達了本章的最後一個提示:在繼續之前,讀者需要運作dist_v1和dist_v2并且使用一個調試器證明計算的距離的值從0.5開始(歸一化得到的值0與參考點0.5的距離),在接近數組中間的時候遞減到0,繼續到末尾時增長到0.5(對應于從參考點0.5到歸一化值1.0之間的距離)。如果讀者遇到了任何問題,請閱讀附錄c“c語言程式設計需知”中的相關内容。