kdb 平行計算(1)

2021-10-14 05:34:40 字數 1041 閱讀 5766

通俗地講,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平行計算區別的有效方式。一種分類...