본문 바로가기
HOME> 보고서 > 보고서 검색상세

보고서 상세정보

GPU를 이용한 기기열유동해석 압력방정식 병렬계산모듈 개발

  • 사업명

    원자력연구기반확충사업

  • 과제명

    GPU를 이용한 기기열유동해석 압력방정식 병렬계산모듈 개발

  • 주관연구기관

    서울대학교
    Seoul National University

  • 연구책임자

    주한규

  • 보고서유형

    최종보고서

  • 발행국가

    대한민국

  • 언어

    한국어

  • 발행년월

    2010-04

  • 과제시작년도

    2009

  • 주관부처

    교육과학기술부

  • 사업 관리 기관

    한국연구재단

  • 등록번호

    TRKO201000013256

  • 과제고유번호

    1345099182

  • DB 구축일자

    2013-04-18

  • 초록 


    In the thermo-fluid analysis code named CUPID, the linear system of pressure equations must be solved in each iteration step. In ...

    In the thermo-fluid analysis code named CUPID, the linear system of pressure equations must be solved in each iteration step. In this linear system, large sparse matrices of Rank more than 50,000 are involved and the diagonal dominance of the system is hardly held. Also, the pressure matrix of the CUPID code is sparse and as no more than 10 entries are given for a single row. Therefore, it is essential to reduce the computing time of the linear system solver.
    Meanwhile, Graphics Processing Units (GPU) have been developed as highly parallel, multi-core processors for the global demand of high quality 3D graphics. For this reason, GPUs have been used in Computing Science. Besides, GPUs have the advantage of CPU in terms of power, heating and space. The parallelization of the linear system solver using GPU helps achieve higher performance. However, the developers need professional knowledge of graphics to parallelize the program using GPU. If a Software Development Kit named CUDA is provided, the parallelization using GPU can be available to engineering computing without background of graphics. Therefore, in this research we implement parallel routines for the linear system solver using CUDA.
    In the case of the parallelization using CUDA, it is important to embody the algorithm that fit in GPU to treat well the block, the thread and the shared memory. Considering this point, the algorithm is developed in this research. Then we test how the performance of each module depends on the number of block. Finally based on the results of test, we examine how faster the CUPID code parallelized using GPU calculate than CPU.
    The results show that the performance of GPU is better than CPU by up to about 4. Although this results show insignificant speed up compared the parallelization of CPU, we will achieve better higher performance if the CUPID code is converted into C language program. Also, we expect higher performance if the sophisticated algorithm is applied to the CUPID code and improved GPU model is used to parallelize the module.


    열유동해석 코드인 CUPID에서는 압력방정식에 대한 선형계를 매 계산 시구간마다 풀어야 한다. 이 선형계의 계산시간을 줄일 수 있는 방법을 찾는 것이 중요하다. 그래픽카드는 다수의 Core의 효율 때문에 계산과학(Computing ...

    열유동해석 코드인 CUPID에서는 압력방정식에 대한 선형계를 매 계산 시구간마다 풀어야 한다. 이 선형계의 계산시간을 줄일 수 있는 방법을 찾는 것이 중요하다. 그래픽카드는 다수의 Core의 효율 때문에 계산과학(Computing Science) 분야에서 사용되고 있다. 그래픽카드를 이용한 병렬화는 CPU의 병렬화보다 공간, 전력, 발열의 측면에서 이점을 갖는다. 이러한 장점을 살려CUPID를 병렬화한다면 보다 좋은 효율을 얻을 수 있을 것이다. 그러나 그래픽카드를 이용한 프로그래밍을 위해서는 상당한 수준의 그래픽스(graphic)에 대한 지식을 필요로 한다. 따라서 이번연구에서는 그래픽스와 관련된 지식 없이도 프로그래밍을 가능하게 해주는 CUDA라는 공개 소프트웨어를 사용하였다.
    CUDA 소프트웨어를 이용한 병렬화에서는 그래픽카드의 하드웨어 따라 block, thread, shared memory를 잘 이용할 수 있는 알고리즘 구현이 매우 중요하다. 이 점을 고려하여 CUPID에서 병렬화를 시킬 부분을 선정하고 그에 따른 알고리즘을 구현해보았다. 그리고 각 모듈이 block의 수에 따라서 성능이 어떻게 달라지는 지를 테스트해보았다. 마지막으로 테스트 결과를 바탕으로 최적의 조건에서 CUPID의 성능이 CPU에서의 계산결과보다 얼마나 빨라졌는지를 확인해 보았다.
    실험결과는 최고 약 4배에 가까운 속도향상을 얻을 수 있었다. 비록 이 수치는 CPU를 통한 병렬화에 비해 크게 차이 나지 않는 수치이다. 하지만 CUPID 코드를 C language로 바꾸고 알고리즘의 효율성 향상시키고 좀 더 좋은 성능 그래픽카드 모델을 사용한다면 충분히 더 좋은 속도향상을 기대해볼 수 있을 것으로 예상한다.


  • 목차(Contents) 

    1. 최종보고서(원자력대학생용) ...1
    2. 요약 ...2
    3. Abstract ...2
    4. 1. 서론 ...3
    5. 2. CUPID 코드에 대한 배경이론 ...3
    6. 2-1. CUPID 코드에서의 문제 해법 ...3
    7. 2-2. Krylov subspace method에서의 precondition...
    1. 최종보고서(원자력대학생용) ...1
    2. 요약 ...2
    3. Abstract ...2
    4. 1. 서론 ...3
    5. 2. CUPID 코드에 대한 배경이론 ...3
    6. 2-1. CUPID 코드에서의 문제 해법 ...3
    7. 2-2. Krylov subspace method에서의 preconditioner ...4
    8. 2-3. BiCGSTAB 알고리즘 ...4
    9. 3. GPU에 대한 배경이론 ...5
    10. 3-1. GPU computing 등장 배경 ...5
    11. 3-2. GPU와 CPU의 성능차이 ...6
    12. 3-3. GPU 하드웨어 구조(Nvidia 기준)...7
    13. 4. CUDA에 대한 배경이론 ...8
    14. 4-1. CUDA(Compute Unified Device Architecture)란? ...8
    15. 4-2. GPU와 CUDA의 구조의 연계성 ...9
    16. 4-3. CUDA 프로그래밍에서 processing 순서 ...9
    17. 4-4 CUDA 프로그래밍에서 중요한 점 ...10
    18. 5. 실험방법 ...10
    19. 5-1 기존의 CUPID코드 선형계의 구조 및 계산 방법 ...11
    20. 5-2 CUPID코드 선형계의 변형 과정 ...11
    21. 5-3 각각의 병렬화 커널의 알고리즘 ...12
    22. 5-4 실험상에서의 조건 ...13
    23. 6. 결과 및 분석 ...14
    24. 6-1 병렬화 커널의 block 수에 따른 속도 측정 ...14
    25. 6-2 가장 최적의 조건에서의 CUPID코드 성능 측정 및 비교 ...15
    26. 7. 결론 ...16
    27. 참고문헌 ...16
  • 참고문헌

    1. 전체(0)
    2. 논문(0)
    3. 특허(0)
    4. 보고서(0)

 활용도 분석

  • 상세보기

    amChart 영역
  • 원문보기

    amChart 영역