平行計算實驗一:VS2017+OpenMP環境配置
1、實驗目標
(1) 利用visual studio 2017配置OpenMP環境;
開啟VisualStudio 2017選單欄->檔案->新建->專案:新建Visual C++工程 :Windows控制檯應用程式
Figure 1 新建Parallel_Lab1_Martrix-Vecter專案
開啟選單欄->專案->Parallel_Lab1_Martrix-Vecter(視自己新建專案名,最下面一欄)屬性->配置屬性->C/C++->語言->OpenMp 支援:選擇是(/openmp)。(這一步是為了支援openmp。)點選“應用”。
Figure 2 開啟專案的OpenMP支援
開啟選單欄->專案->屬性-> Parallel_Lab1_Martrix-Vecter(視自己新建專案名,最下面一欄)屬性->配置屬性->程式碼生成—>執行庫:選擇多執行緒除錯(/Mtd)。(這一步是為了支援多執行緒。)點選“應用”。
Figure 3 開啟專案的多執行緒支援
開啟選單欄->專案->屬性-> Parallel_Lab1_Martrix-Vecter(視自己新建專案名,最下面一欄)屬性->配置屬性->除錯->命令引數: 在空白欄填入main函式的輸入引數(argv[i]的值)。如需多個引數,用空格分隔每個引數,此處暫編輯輸入“12”。
Figure 4 設定main函式的輸入引數
(2)對以下演算法利用OpenMP實現並行化。
i. Martrix-Vecter 乘法;
ii梯形積分法;
Figure 5 梯形積分法示意圖
iii奇偶變換排序
2、序列程式程式碼
Martrix-Vector乘法:
- Function: Mat_vect_mult
- Purpose: Multiply a matrix by a vector
- In args: A: the matrix
- x: the vector being multiplied by A
- m: the number of rows in A and components in y
- n: the number of columns in A components in x
- Out args: y: the product vector Ax
/*------------------------------------------------------------------
void Mat_vect_mult(
double A[] /* in */,
double x[] /* in */,
double y[] /* out */,
int m /* in */,
int n /* in */) {
int i, j;
for (i = 0; i < m; i++) {
y[i] = 0.0;
for (j = 0; j < n; j++)
y[i] += A[i*n+j]*x[j];
}
} /* Mat_vect_mult */
*/
梯形積分法:
/*------------------------------------------------------------------
* Function: Trap
* Purpose: Estimate integral from a to b of f using trap rule and
* n trapezoids
* Input args: a, b, n, h
* Return val: Estimate of the integral
*/
double Trap(double a, double b, int n, double h) {
double integral;
int k;
integral = (f(a) + f(b))/2.0;
for (k = 1; k <= n-1; k++) {
integral += f(a+k*h);
}
integral = integral*h;
return integral;
} /* Trap */
/*------------------------------------------------------------------
* Function: f
* Purpose: Compute value of function to be integrated
* Input args: x
*/
double f(double x) {
double return_val;
return_val = x*x;
return return_val;
} /* f */
奇偶變換排序:
/*-----------------------------------------------------------------
* Function: Odd_even_sort
* Purpose: Sort list using odd-even transposition sort
* In args: n
* In/out args: a
*/
void Odd_even_sort(
int a[] /* in/out */,
int n /* in */) {
int phase, i, temp;
for (phase = 0; phase < n; phase++)
if (phase % 2 == 0) { /* Even phase */
for (i = 1; i < n; i += 2)
if (a[i-1] > a[i]) {
temp = a[i];
a[i] = a[i-1];
a[i-1] = temp;
}
} else { /* Odd phase */
for (i = 1; i < n-1; i += 2)
if (a[i] > a[i+1]) {
temp = a[i];
a[i] = a[i+1];
a[i+1] = temp;
}
}
} /* Odd_even_sort */
未完待續
相關推薦
平行計算實驗一:VS2017+OpenMP環境配置
1、實驗目標 (1) 利用visual studio 2017配置OpenMP環境; 開啟VisualStudio 2017選單欄->檔案->新建->專案:新建Visual C++工程 :Windows控制檯應用程式 Fig
一:mask rcnn—— 環境配置 虛擬環境 不衝突
鑑於伺服器多人使用,並且普通使用者一般沒有許可權,所以。需要一種方法。我還要廢話兩句。比如pip anaconda這種安裝管理軟體背後最重要的是啥?當然是版本控制了,比如安裝的第一個包需要python3.5,第二個3.5 3.6都成,然而你制定了環境是3.6.那麼該管理軟體會怎麼辦?究竟安裝什麼
CCNA實驗一:路由器的基本配置
實驗拓撲 1.設定密碼: 2.配置路由器介面 3.show命令的使用: 1)R1#show flash 檢視路由器flash中的內容,可檢視IOS檔案相關 2)R1#show running-config
python實現opencv學習一:安裝、環境配置、工具
一:python的下載、安裝、配置以python2.7.9為例二:安裝pip進入Python安裝目錄下的Scripts路徑,執行 easy_install.exe pip 出現下圖,說明pip安裝成功。 pip 的作用:通用的 Python 包管理工具,提供了對 Python
實驗一:實驗環境配置與使用
png 黃色 變化 gdb調試 操作 分析 對比 spa -c 一、實驗目標: 熟悉Linux上C程序的編譯和調試工具,包括以下內容: 1. 了解Linux操作系統及其常用命令 2. 掌握編譯工具gcc的基本用法 3. 掌握使用gdb進行程序調試 二、實驗環境與工件
2018-2019-1 《資訊安全系統設計基礎》實驗一:開發環境的熟悉--實驗報告
2018-2019-1 《資訊安全系統設計基礎》實驗一:開發環境的熟悉--實驗報告 小組成員:20165221 譚笑 20165225 王高源 模組一:交叉編譯環境 可以使用自己的筆記本,也可以使用實驗室桌上型電腦,* 如附圖,開機時按F12,進入系統BIOS中,開啟虛擬化功能
20165231 20165232 20165235 實驗一:開發環境的熟悉
2018-2019-1 20165231 20165232 20165235 實驗一 開發環境的熟悉 任務一 交叉編譯環境 任務要求: 實驗三人一組 可以使用自己的筆記本,也可以使用實驗室桌上型電腦,使用實驗室機器的不用做本題 安裝老師提供的software目錄中的“VMwar
服務計算課程實驗一:使用 VirtualBox 讓 PC 提供雲桌面服務
實驗目標 學習瞭解虛擬化技術,理解雲端計算的相關概念 搭建私有云,為後續課程提供統一的程式設計與實驗環境 配置虛擬機器的開發環境 實驗環境與工具 Oracke VM VirtualBox虛擬化軟體、Windows 10作業系統 實驗
2018.9.10.Matlab實驗一:熟悉Matlab開發環境
一、實驗任務和目的 1. 熟悉Matlab的系統環境及基本操作方法。 2. 掌握Matlab的搜尋路徑及其設定方法。 3. 熟悉Matlab的幫助資訊的查閱方法。 二、實驗內容 1. 熟悉 Matlab 工作介面的多個常用視窗的及使用方法。 熟悉Co
實驗一: 熟悉實驗環境
實驗一:熟悉Linux環境 Linux一些基本命令: $ cd ~ :回到主目錄 $ cd - : 回到上級目錄 $ cd ~/xxx/xxx :從主目錄開始的路徑 $ cd xxx :進入當前目錄下的xxx目錄 $ make a
樹莓派實驗一:樹莓派在win7環境下的安裝 -- 新手詳細圖文篇
必備工具: 樹莓派闆闆一塊 (配有電源線、組裝塑料外殼、以及一根裝用的串列埠線) SD卡(至少2G) 步驟一: 下載頁面有4個可選擇的img : 1、Raspbian “wheezy” (新手就選擇它了) 2、Soft-float Debian “wheezy” 3
Exchange Server 2016安裝部署系列一:Exchange 簡述,環境需求及部署規劃
exchange 2016 先決條件 exchange 2016 準備ad和 exchange 2016 郵箱服務 exchange 2016 安裝 exchange 邊緣服務器部署 Exchange Server 2016簡述MicrosoftExchange Server 2016
20172332 實驗一《Java開發環境的熟悉》實驗報告
交互 代碼 tell -cp 面板 tro markdown img div 20172332 2017-2018-2 《程序設計與數據結構》實驗一報告 課程:《程序設計與數據結構》 班級: 1723 姓名: 於欣月 學號:20172332 實驗教師:王誌強 實驗日期:20
20165318 《Java程序設計》實驗一(Java開發環境的熟悉)實驗報告
src hello 正常 設置 code 環境 找到 JD over 20165318 《Java程序設計》實驗一(Java開發環境的熟悉)實驗報告 一、實驗內容及步驟 (一)使用JDK編譯、運行簡單的java程序 命令行下的程序開發 步驟一(新建文件夾):打開windo
實驗一:搭建動態論壇(ASP+ACCESS)
搭建動態論壇(ASP+ACCESS)實驗一:搭建動態論壇(ASP+ACCESS)實驗目的:在搭建好的論壇上新創建一個用戶,能夠讓這個用戶發帖 實驗準備:一臺server,一臺client 實驗情景:搭建一個web網站,把寫好的asp文件導入到web的目錄路徑下,能夠讓用戶訪問web,及讓用戶發送帖子 實驗過程
C語言快速入門一:win10系統環境搭建
atomic rap main b-s 驗證 完成 try enable -o 0、搭建環境:WIN10 64位 1.下載minGW.zip編譯器 2.解決上述文件,配置環境變量 3.配置變成後驗證:打開cmd命令行,輸入gcc -v 提示以下內容,說明編譯器安裝成功 D:
ESP32 LyraT音頻開發板試玩(一):搭建開發環境
star 技術 txt 開發板 工程 pri app 界面 比較 我是卓波,很高興你來看我的博客。 系列文章: ESP32 LyraT音頻開發板試玩(一):搭建開發環境 ESP32 LyraT音頻開發板試玩(二):播放音樂 關於ESP32的開發環境搭建,官方有教程,
SDN控制器之OVN實驗一:介紹和安裝OVN
OVN概覽 OVN是由開發出OVS的那群出色的程式設計師們的另一個優秀的作品。這個網路虛擬化專案從2015初宣告啟動,到不久前才釋出第一個正式版本OVN 2.6 。在這篇文章中,我會配置一個簡單示例:在三個主機之間配置一個layer-2 overlay網路。 首先講一下OVN工作機制中的2種
Java基礎 實驗一:簡單資料型別和流程控制
1.實驗目的 掌握識別符號的定義規則、表示式的組成、各種資料型別及其使用方法、各種運算子的使用及其優先順序控制。掌握分支結構,迴圈結構,continue,break,語句標號等內容。 2.實驗內容 (1)輸入一個三角形的3個邊長,檢查是否能構成一個直角三角形。 (2)任意從鍵盤輸入一個0到
PHP開發環境搭建一:PHP整合環境XAMPP的安裝與配置
1. XMAPP簡介 XAMPP(Apache+MySQL/MariaDB+PHP+Perl)開頭的X代表X-OS,代表可以在任何常見作業系統下使用,包括Windows、Mac、Linux,開源平臺。 XAMPP(Apache+MySQL+PHP+PERL)是一個