pthread平行計算入門

2021-06-26 14:55:12 字數 736 閱讀 8423

實現並行的庫有很多,比如mpi庫,openmp等,同樣pthread也是實現並行的乙個庫。pthread實現並行的是共享記憶體的方式,即如何cpu都可以訪問相同的記憶體區域。這種實現方式實現起來比較簡單,但是會存在臨界區等問題。

以下是最簡單的一段並行的**,其實現了建立多個執行緒,為多執行緒函式傳遞引數,從多執行緒函式獲取返回值等操作,

#include#include#includeusing namespace std;

int thread_count;

void *hello(void* a)

int main()

{ pthread_t threads[4];

int thread_count = 4;

for(int thread = 0;thread

g++ pthread.cpp -o pthread -lpthread

./pthread
執行結果如下

i am main.12

34

在pthread中,程式設計師並不直接控制程序在那個核上執行,在pthread_create函式中,沒有引數用於指定在那個核上執行執行緒。執行緒的排程是由作業系統來控制的。在負載很重的作業系統中,所有的執行緒可能都在同乙個核上執行。事實上,如果執行緒執行個數足夠多,就會出現多個執行緒執行在乙個核上。當然如果某個核處於空閒狀態,那作業系統就會將乙個新執行緒分配給該核。

平行計算入門案例

首先是cuda程式設計,分三步,把資料從記憶體拷貝進視訊記憶體,gpu進行計算,將結果從視訊記憶體拷貝回記憶體。cuda c程式氣泡排序案例 include cuda runtime.h include device launch parameters.h include include defin...

平行計算入門 openMP

openmp提供了對於並行描述的高層抽象,降低了並行程式設計的難度和複雜度,這樣程式設計師可以把更多的精力投入到並行演算法本身,而非其具體實現細節。對基於資料分集的多執行緒程式設計,openmp是乙個很好的選擇。同時,使用openmp也提供了更強的靈活性,可以較容易的適應不同的並行系統配置。執行緒粒...

python平行計算 python平行計算

0.基礎並行 發 multiprocessing threading 1.concurrent 2.併發 asynico 3.ipython下的平行計算 使用ipyparallel庫的ipython提供了前所未有的能力,將科學python的探索能力與幾乎即時訪問多個計算核心相結合。系統可以直觀地與本...