1. 程式人生 > >平行計算實驗一:VS2017+OpenMP環境配置

平行計算實驗一: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。)點選“應用”。
開啟專案的OpenMP支援


Figure 2 開啟專案的OpenMP支援

開啟選單欄->專案->屬性-> Parallel_Lab1_Martrix-Vecter(視自己新建專案名,最下面一欄)屬性->配置屬性->程式碼生成—>執行庫:選擇多執行緒除錯(/Mtd)。(這一步是為了支援多執行緒。)點選“應用”。
 開啟專案的多執行緒支援
Figure 3 開啟專案的多執行緒支援

開啟選單欄->專案->屬性-> Parallel_Lab1_Martrix-Vecter(視自己新建專案名,最下面一欄)屬性->配置屬性->除錯->命令引數: 在空白欄填入main函式的輸入引數(argv[i]的值)。如需多個引數,用空格分隔每個引數,此處暫編輯輸入“12”。
設定main函式的輸入引數


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)是一個