簡易檢索 / 詳目顯示

研究生: 劉思辰
Liu, Ssu-Chen
論文名稱: 利用OpenMP-CUDA實現雙GPU系統上的 BiCGstab方法
An OpenMP-CUDA implementation of BiCGstab method on two-GPU systems
指導教授: 陳人豪
Chen, Jen-Hao
口試委員: 李金龍
Li, Chin-Lung
陳仁純
Chen, Ren-Chuen
學位類別: 碩士
Master
系所名稱: 理學院 - 計算與建模科學研究所
Institute of Computational and Modeling Science
論文出版年: 2019
畢業學年度: 107
語文別: 英文
論文頁數: 22
中文關鍵詞: 平行化OpenMPBiCGstab 演算法CUDA多GPU 計算
外文關鍵詞: parallelization, OpenMP, BiCGstab, CUDA, multi-gpu
相關次數: 點閱:2下載:0
分享至:
查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報
  • 本文提出了 BiCGstab 演算法在雙 GPU 中的並行化。我們將使用 OpenMP來實現兩個 GPU 的並行化。OpenMP 的主要優點是易於在並行編程中使用。BiCGstab 演算法用於求解基於 Poisson-Fermi 模型的 NCX 離子通道模擬產生的線性系統。我們首先在多核心 CPU 上通過 OpenMP 執行並行計算。結果表示與單核心 CPU 相比具有良好的性能。此外,由於設備內存(GPU 記憶體)的大小,單 GPU 無法計算大規模問題。因此,我們進一步開發了雙 GPU 系統中BiCGstab 方法的並行化。結果表示我們的代碼能夠計算離子通道模擬,矩陣大小高達七千萬。


    This thesis proposes the parallelization of the BiCGstab algorithm in two-GPU. We will use OpenMP, the parallel programming model, to achieve parallelization of the two GPUs. The main advantage of OpenMP is easy to use on parallel programming. The BiCGstab algorithm is used to solve the linear systems arising from the NCX ion channel simulations based on Poisson-Fermi model. We first perform the parallel computations through OpenMP on multi-core CPU. The result shows the good performance compared with single CPU core. In addition, the single GPU is unable to compute the large-scale problems due to the size of device memory. We therefore further develop the parallelization of BiCGstab method in two-GPU system. The result indicates that our code is able to compute the ion channel simulation with matrix size of up to seventy million.

    Abstract i Acknowledgement iii 1 Introduction 1 2 Poisson-Fermi Model for NCX Channel 2 2.1 Poisson-Fermi Equation . . . . . . . . . . . . . . . . . . . . . . . . 2 2.2 BiCGstab method . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 3 Accelerating operation with OpenMP in multi-core CPU 4 3.1 Directive Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3.2 Runtime Library Routines . . . . . . . . . . . . . . . . . . . . . . . 6 3.3 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.3.1 AXPBY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.3.2 Dot Product . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.3.3 Sparse MV . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.4 Result . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 4 Accelerating opeartion with OpenMP in two-GPU 10 4.1 Overview of GPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 4.2 Use OpenMP with two-GPU . . . . . . . . . . . . . . . . . . . . . . 11 4.2.1 AXPBY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 4.2.2 Dot Product . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 4.2.3 Sparse MV . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 4.3 Result . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 5 Conclusion 21 Reference 22

    [1] Jen-Hao Chen, Ren-Chuen Chen, and Jinn-Liang Liu. A gpu poisson-fermi
    solver for ion channel simulations. arXiv preprint arXiv:1711.04060, 2017.
    [2] Liu J.-L. Numerical methods for the poisson–fermi equation in electrolytes. J.
    Comput. Phys., 247, 2013.
    [3] Youcef Saad and Martin H Schultz. Gmres: A generalized minimal residual
    algorithm for solving nonsymmetric linear systems. SIAM Journal on scientific
    and statistical computing, 7(3):856–869, 1986.
    [4] Openmp — Wikipedia, the free encyclopedia, 2018. [Online; accessed 11-June-
    2019].
    [5] Barbara Chapman, Gabriele Jost, and Ruud Van Der Pas. Using OpenMP:
    Portable Shared Memory Parallel Programming. MIT Press Ltd, 2007.
    [6] OpenMP. Openmp 4.5 api c/c++ syntax reference guide, 2019. [Online;
    accessed 11-June-2019].
    [7] NCHC. Taiwania1, 2019. [Online; accessed 11-June-2019].

    QR CODE