OS X上基於OpenMP進行並行程式開發

2021-07-25 00:20:58 字數 2076 閱讀 1729

openmp是目前被廣泛接受的,用於共享記憶體並行系統的多處理器程式設計的一套指導性的編譯處理方案。它提供了對並行演算法的高層的抽象描述,程式設計師通過在源**中加入專用的pragma來指明自己的意圖,由此編譯器可以自動將程式進行並行化,並在必要之處加入同步互斥以及通訊。在windows下利用visual studio來開發基於openmp的併發程式已有很多現成的資料可查,本文主要來討論在os x系統上利用gcc來開發基於openmp之併發程式的基本方法。

在前面的文章《os x上安裝homebrew和gcc的**攻略》裡,我們已經在os x上搭建了乙個gcc的開發環境。注意新版的xcode已經不再支援openmp,因此你仍然需要安裝並配置乙個純gcc的環境,而非用蘋果的clang來進行對映。

開啟terminal,然後新建乙個子目錄來存放即將要編輯的程式原始檔,再用nano新建乙個新的cpp檔案:

> mkdir omp_test

> cd omp_test

> nano omp_test.cpp

然後在nano中編輯如下所示之示例**:

#include 

#include

#include

#include

int main( int argc, char* argv )

std::cout

<< "done!"

<< std::endl;

return

0;}

你的**編輯介面應該是類似下面這樣的: 

當然你也完全可以在擁有gui的sublime text下來編輯你的源**,我們這裡僅僅是要讓大家體驗一下在命令列模式下開發的感覺。

接下來我們就來編輯makefile檔案,請在terminal上使用下面命令:

> nano makefile
跟前面編輯源**的方法類似,在nano中編輯如下所示的內容:

cc := g++-5

# replace this

with your correct compiler as identified above

arch := core2 # replace this

with your cpu architecture.

# core2 is pretty safe for most modern machines.

cflags := -march=$(arch) -o3 -fopenmp -m64 -std=c++11

compile_command := $(cc) $(cflags)

output := my_test

all: omp_test.cpp

$(compile_command) -o $(output) omp_test.cpp

clean:

rm -f *.o $(output).*

編輯完成後退出nano回到terminal,然後在命令下輸入:

> make

> ./my_test

剛剛編寫的openmp程式就會被執行,輸出應該如下: 

allocating memory … 

done!

entering main loop …  

done!

最後是乙個可能 troubling shooting(儘管上面的**我已經做了調整,應該不會出現下面這個問題): if the make command gives errors like 「** missing separator」, then you need to replace the white space (e.g., one or more spaces) at the start of the 「$(compile_command)」 and 「rm -f」 lines with a single tab character. 

後續我們還會介紹更多關於openmp並行程式設計方法的技術。

在OS X上執行Docker

brew update brew install docker brew install boot2docker docker剛開始推出的時候,只支援ubuntu。因為docker依賴於linux container,預設是不支援os x系統的。因此如果我們想在os x上使用docker,就必須借助...

在OS X上的WEP加密攻擊

為了在os x上破解wep,你要有kismac和aircrack ng的發現能力。kismac可以通過重新注入資料報來產生資料通訊,但它缺乏aircrack ng所具有的先進加密ptw 攻擊。這意味著你需要配置kismac以便將所有通訊資料報捕獲到pcap檔案中 kismac preferences...

在VirtualBox上安裝OS X 10 10

下面將介紹的嚮導用於介紹怎樣通過免費而強大的virtualbox在虛擬機上安裝os x yosemite 10.10 怎樣做 3 安裝iesd,若要自定義os x installesd gem install iesd4 開始安裝映象到基本系統 iesd i o yosemite.dmg t bas...