通俗地講,kdb+/q平行計算是把比較大的計算任務拆分成許多小任務,讓這些小計算任務同時跑,這樣就可以在較短的時間內完成整個計算任務。
讓小計算任務同時跑的方法主要有三種:
第一種,這些小任務同時跑在同乙個q中,
第二種,這些小任務同時跑在同一臺電腦上的多個q中,
第三種,這些小任務同時跑在多台電腦上的多個q中。
這裡先聊第一種情況(以後會聊其它情況):通過乙個非常簡單例子,聊聊如何在同乙個q中同時跑多個小任務。
這個簡單例子是:分別計算1、2、3的平方。
我們可以把這個「大」的計算任務拆分為3個「小」任務,即
(1)計算1的平方,
(2)計算2的平方,
(3)計算3的平方。
接下來有兩種做法,一種是序列計算:首先計算1的平方,然後計算2的平方,最後計算3的平方;另一種是平行計算:同時計算1、2、3的平方。
在q中平行計算上述3個小任務的步驟為:
操作步驟
1第一步,啟動q,使它支援平行計算
這裡假設作業系統為windows,q為32位版本,q安裝於d:\kdb\q\。在windows「命令提示符」視窗中執行:
set qhome=d:\kdb\q
d:\kdb\q\w32\q -s 3
這樣就啟動了q,這個q支援同時跑3個小任務。
2第二步,分發計算任務,返回結果
在q控制台提示符「q)」後面執行:
peach 1 2 3
相當於同時執行[1]、[2]、[3],最後返回結果(11;22;33),得到1 4 9。
是的,這就是平行計算!不要被「平行計算」所嚇倒。
(注:如果執行 each 1 2 3就是序列計算)
上面這種平行計算叫多執行緒平行計算,kdb+多執行緒平行計算的相關概念(如主線程、子執行緒)以及一些注意事項等,可以參考《kdb+中文教程》第九章,或 另外,kdb+ v4.0版本,即使q啟動時不加引數-s n,許多函式預設進行多執行緒計算,詳見
python平行計算 python平行計算
0.基礎並行 發 multiprocessing threading 1.concurrent 2.併發 asynico 3.ipython下的平行計算 使用ipyparallel庫的ipython提供了前所未有的能力,將科學python的探索能力與幾乎即時訪問多個計算核心相結合。系統可以直觀地與本...
平行計算模型
平行計算模型通常指從並行演算法 的設計和分析出發,將各種並行計算機 至少某一類並行計算機 的基本特徵抽象出來,形成乙個抽象的計算模型。從更廣的意義上說,平行計算模型為平行計算提供了硬體和軟體介面 在該介面的約定下,並行系統硬體設計者和軟體設計 者可以開發對並行性 的支援機制,從而提高系統的效能。有幾...
平行計算模型
平行計算指的在同一時刻存在多於乙個計算任務被執行。由於cpu主頻提高的上限,使用多核心處理器進行平行計算早已成為主流。gpu也是乙個多核心的處理器,但它的平行計算模型與多核的cpu有很大區別。我們有必要了解gpu的並計算模型。對平行計算模式進行分類是了解cpu和gpu平行計算區別的有效方式。一種分類...