說明:由于年代久遠(yuǎn),寫這篇文章時(shí)用到的知識(shí)和軟件都是那個(gè)時(shí)間節(jié)點(diǎn)上所找到的最優(yōu)方案,但是卻可能已經(jīng)不適合于當(dāng)前。雖然基本東西都在,但是細(xì)節(jié)已然不同,能夠幫到大家最好,如若未夠還請(qǐng)各位看官諒解。
2017-11-13 16:45:01
1 使用說明
- 系統(tǒng)環(huán)境:Ubuntu 14.04 LTS
- Intel版本:Intel? Parallel Studio XE Professional Edition for C++ Linux* 2016
- JDK 版本:Java SE Development Kit 7u79
- Eclipse版本:Eclipse IDE for C/C++ Developers
2 安裝流程
2.1 安裝g++
如果沒有安裝g++的話,在后續(xù)安裝程序時(shí)會(huì)卡住,并被提示需要安裝該程序。
網(wǎng)上有許多關(guān)于解決此問題的介紹,需要注意的一點(diǎn)是,由于我們的系統(tǒng)時(shí)14.04,版本號(hào)較高,里面涉及到的一些預(yù)裝軟件需要降級(jí)才能安裝g++,需要注意。
2.2 Intel Parallel Studio 安裝
根據(jù)User Guide來進(jìn)行安裝,大致過程如下,
- 找到下載的安裝文件并解壓
- 采用比較常規(guī)的GUI安裝方式,
$ sh install_GUI.sh - 一步一步安裝,同win下安裝一樣。只注意在要求序列號(hào)(VLNH-ZGFRJ53D)的地方,輸入自己免費(fèi)試用或購買的序列號(hào)即可。
2.3 配置環(huán)境變量
與win下設(shè)置環(huán)境變量相同,需要有這個(gè)環(huán)境變量來讓程序可以運(yùn)行。
當(dāng)上面的程序安裝完成后,如果此時(shí)在終端輸入"icpc -v"或"icc -v"是提示找不到命令的。
需要以如下方式解決:進(jìn)入計(jì)算機(jī)/etc/profile 文件,在末尾加入:
source /opt/intel/bin/compilervars.sh intel64
之后遇到的問題就是如何在命令行中使用intel c++編譯器,并使用openmp和mkl來編譯自己的程序,并運(yùn)算。
為了正常使用mkl,同樣需要在環(huán)境變量中加入內(nèi)容,與前述相同,所加內(nèi)容如下:
source /opt/intel/compilers_and_libraries_2016.0.109/linux/mkl/bin/mklvars.sh intel64 ilp64
2.4 命令行運(yùn)行程序
$ icpc main.cpp -mkl=parallel -qopenmp(還有問題)
但是就目前而言,好像并沒有什么用,這樣運(yùn)行出來的結(jié)果時(shí)生成了以個(gè)名為 a.dat 的可執(zhí)行文件,但是并沒有調(diào)動(dòng)起所有的線程,并且也沒有正常運(yùn)行,知道了一半。也是醉了。現(xiàn)在打算把 JDK 和 Eclipse 裝上,在上面配置intel c++。
3 安裝JDK
3.1 下載JDK
3.2 解壓JDK
可以參照該網(wǎng)頁文檔
我自己整理的步驟如下:
- 對(duì)應(yīng)JDK文件解壓后的文件夾名稱為“jdk1.7.0_79”
- 在 /usr/ 文件夾下建立 jdk 文件夾
$ sudo mkdir -p /usr/jdk
- 將第1步解壓后的文件夾“jdk1.7.0_79”復(fù)制或移動(dòng)到第2步建立的jdk文件夾目錄下
$ sudo cp -r jdk1.7.0_79/ /usr/jdk/
- 配置環(huán)境變量,打開 /etc/profile 文件
$ sudo subl /etc/profile
在profile文件最后加入如下語句:
export JAVA_HOME=/usr/jdk/jdk1.7.0_79
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$CLASSPATH:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin
- 確認(rèn)是否安裝成功。第一句時(shí)由于一般需要注銷重新登錄才能生效,但這句話可以起到相同效果。
$ source /etc/profile
$ java -version
4 安裝Eclipse
4.1 下載Eclipse C++
4.2 解壓文件到 /opt/
$ cd /opt/ && tar zxvf (文件路徑)
4.3 在 /opt/eclipse 運(yùn)行 eclipse
此時(shí)不經(jīng)任何操作的話,雙擊 eclipse 是不能直接運(yùn)行的。因?yàn)樘崾镜腻e(cuò)誤里面說 jre目錄 搜索不到需要用到的java。我們也注意到在 eclipse 目錄下是不存在 jre 文件夾的。因此通過下面的方式解決:
- 在 eclipse 文件夾下 新建 jre 文件夾
$ mkdir jre
- 進(jìn)入 jre 文件夾,鏈接 jdk 的絕對(duì)目錄 /bin bin 到j(luò)re,這樣就可以在jre搜索到j(luò)ava啦
$ sudo ln -s /usr/jdk/jdk1.7.0_79/bin bin
- 將eclipse加入到環(huán)境變量中使其可以在終端通過 eclipse 命令打開
$ sudo subl /etc/profile
在profile 末尾加入 export PATH=$PATH:/opt/eclipse,并通過注銷重新登錄或以下命令結(jié)束:
$ source /etc/profile
5 Eclipse 中設(shè)置 intel c++
下面的工作主要都是在 Eclipse 軟件界面下進(jìn)行。
5.1 安裝 C/C++ Development Tooling(CDT)
- Help -> Install new software
- Work with -> CDT
- 不選中(Deselect) -> Group items by category
- next 知道安裝完成
5.2 安裝 intel c++ 編譯器
該部分具有重要參考意義的鏈接,這個(gè)比Parallel studio的幫助文檔有用多了,因?yàn)楹笳呓o的是錯(cuò)誤的幫助。
- Help -> Install new software
- Work with -> Add -> Local -> 選擇intel安裝目錄下的如下文件夾/opt/intel/ide_support_2016/eclipse/compiler_xe
- 勾選 與intel相關(guān)的編譯器,并同樣不勾選 Group items by category
- next 知道安裝完成
5.3 可能需要的命令行
一般情況下就可以使用集成在 eclipse 下的 intel c++ 編譯器了。
但是可能存在些許小問題,可以通過如下命令試著解決。
$ source <istall-dir>/compilers_and_libraries/linux/bin/compilervars.sh intel64
$ LANG=en_US eclipse
5.4 使用 mkl 以及 openmp 的程序設(shè)置
- 新建以 Toolchains 為 Intel(R) C++ Compiler XE 的C++工程文件
- 將相關(guān)程序文件(包括 源文件和頭文件)放在目錄 src 文件夾,所需要讀取的文件放置在程序根目錄
- 查看工程文件的屬性,修改相關(guān)部分,在此只列打開mkl和openmp的相關(guān)設(shè)置,其他優(yōu)化待后續(xù)嘗試及添加
- 打開 mkl
C++ Build -> Settings -> Performance Library Build Components -> Use Intel(R) Math Kernel Library -> -mkl=parallel
- 打開 openmp
C++ Build -> Settings -> Language -> Process OpenMP Directives -> Generate Parallel Code(-qopenmp)
說明:在centos上屬性欄設(shè)置選項(xiàng)中就沒有關(guān)于openmp的設(shè)置項(xiàng),但是目前主流編譯器中都集成了openmp,因此針對(duì)這種情況在 設(shè)置選項(xiàng)的 C++附加項(xiàng)中手動(dòng)加上 -qopenmp 就行
- 然后正常運(yùn)行,Build -> Compile -> Run,查看結(jié)果