• 제목/요약/키워드: OpenMP programs

검색결과 26건 처리시간 0.037초

A Study on the Automatic Parallelization Method and Tool Development

  • Shin, Woochang
    • International Journal of Internet, Broadcasting and Communication
    • /
    • 제12권3호
    • /
    • pp.87-94
    • /
    • 2020
  • Recently, computer hardware is evolving toward increasing the number of computing cores, not increasing the clock speed. In order to use the performance of parallelized hardware to the maximum, the running program must also be parallelized. However, software developers are accustomed to sequential programs, and in most cases, write programs that operate sequentially. They also have a lot of difficulty designing and developing software in parallel. We propose a method to automatically convert a sequential C/C++ program into a parallelized program, and develop a parallelization tool that supports it. It supports open multiprocessing (OpenMP) and parallel patterns library (PPL) as a parallel framework. Perfect automatic parallelization is difficult due to dynamic features such as pointer operation and polymorphism in C/C++ language. This study focuses on verifying the conditions of parallelization rather than focusing on fully automatic parallelization, and providing advice to developers in detail if parallelization is not possible.

OpenMP프로그램을 위한 경합디버깅 환경의 자동생성 (Automatic Generation of Race Debugging Environment for OpenMP Programs)

  • 강문혜;김영주;전용기
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2002년도 봄 학술발표논문집 Vol.29 No.1 (A)
    • /
    • pp.601-603
    • /
    • 2002
  • 공유메모리 병렬프로그램에서 경합은 프로그램의 비결정적인 수행을 초래하므로 디버깅을 위해서 반드시 탐지되어져야 한다. 경합을 수행 중에 디버깅하기 위한 기존의 도구들은 경합탐지 엔진과 시각화 엔진으로 구성된 경합디버깅 엔진을 특정 프로그램 모델에 의존적으로 적용하여 경합디버깅 환경을 구성한다. 이러한 도구들은 프로그램 모델의 변경 시에 경합디버깅 환경이 최적의 경합 디버깅 엔진으로 구성되지 못한다는 문제점이 있다. 본 논문에서는 OpenMP 병렬프로그랭에서 각 프로그램 모델에 따라 효과성, 효율성, 확장성 등을 고려한 경합탐지 엔진과 추상성을 고려한 시각화 엔진으로 경합디버깅 환경을 자동으로 생성하는 도구를 제안한다. 이 도구는 디버깅 대상이 되는 프로그램의 모델에 최적인 경합디버깅 엔진을 적용하므로 경합탐지 목적에 부합하는 최적의 성능과 효과적인 시각화를 제공한다. 따라서, 본 도구는 디버깅 환경을 생성하기 위한 부담을 줄여서 효과적인 디버깅을 할 수 있게 한다.

  • PDF

멀티 스레딩 기반 병렬 프로그램의 효과적인 디버깅을 위한 추상적 시각화 (Abstract Visualization for Effective Debugging of Parallel Programs Based on Multi-threading)

  • 김영주
    • 한국정보통신학회논문지
    • /
    • 제20권3호
    • /
    • pp.549-557
    • /
    • 2016
  • 효과적인 시각화는 일반적으로 대용량의 디버깅 정보와 프로그램의 추상적 수행모델을 표현하는 것이 중요하다. 본 논문에서는 스레드들간의 논리적 병행성 관계를 나타내는 부분순서 수행그래프를 이용하여 내포병렬성과 임계구역을 가진 OpenMP 병렬 프로그램의 수행양상과 경합정보의 효과적 디버깅을 위해서 효과적으로 제공하는 추상적 시각화 도구를 제안한다. 본 도구는 수행중 추적선택 기법으로 시각화 정보를 위한 공간적 복잡성을 줄이고, 추적된 시각화 정보에 프로그램의 내포병렬성과 임계구역 동기화를 위한 그래프 추상화를 제공하여 시각적 복잡성을 해결한다. 그래프 추상화를 통한 스레드들간의 부분순서 관계와 경합탐지 정보는 프로그램의 제어흐름과 경합의 위치를 구조적으로 파악할 수 있게 하므로 프로그램 수행의 이해와 경합 탐지 및 수정에 효과적이다.

Performance Comparison of Parallel Programming Frameworks in Digital Image Transformation

  • Shin, Woochang
    • International Journal of Internet, Broadcasting and Communication
    • /
    • 제11권3호
    • /
    • pp.1-7
    • /
    • 2019
  • Previously, parallel computing was mainly used in areas requiring high computing performance, but nowadays, multicore CPUs and GPUs have become widespread, and parallel programming advantages can be obtained even in a PC environment. Various parallel programming frameworks using multicore CPUs such as OpenMP and PPL have been announced. Nvidia and AMD have developed parallel programming platforms and APIs for program developers to take advantage of multicore GPUs on their graphics cards. In this paper, we develop digital image transformation programs that runs on each of the major parallel programming frameworks, and measure the execution time. We analyze the characteristics of each framework through the execution time comparison. Also a constant K indicating the ratio of program execution time between different parallel computing environments is presented. Using this, it is possible to predict rough execution time without implementing a parallel program.

OpenMP 프로그램을 위한 효율적 병행성 정보의 생성기법 (An Efficient Scheme for Creating Concurrency Information in OpenMP Programs)

  • 하옥균;김선숙;전용기
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2010년도 한국컴퓨터종합학술대회논문집 Vol.37 No.1(C)
    • /
    • pp.534-539
    • /
    • 2010
  • OpenMP 프로그램의 수행 중에 발생하는 자료 경합과 같은 병행성 오류는 디버깅을 위하여 반드시 탐지되어야만 한다. 그러나 이를 탐지하는 것은 어려운 일이다. 접근사건의 발생 후 관계를 기반으로하는 경합 탐지 기법은 프로그램의 수행 중에 발생하는 스레드의 병행성 정보를 식별하기위한 레이블을 생성하고, 생성된 스레드의 레이블을 기반으로 공유변수에 접근하는 사건을 접근역사를 통해 감시함으로써 경합을 탐지한다. 이러한 경합 탐지의 방법에서 레이블 생성을 위한 NR 레이블링 기법은 병행성 정보생성 시에 지역자료 구조를 사용함으로써 병목현상이 발생하지 않으며, 접근역사에 저장하는 레이블의 크기가 상수 값을 갖는 공간적 효율성을 제공한다. 또한 부모스레드의 정보역사를 정렬된 리스트 형태로 가져 병행성 정보 비교 시에 이진탐색이 가능하므로 시간적 효율성을 가지는 우수한 기법이다. 그러나, NR 레이블링은 레이블의 생성시에 부모스레드의 정보역사를 유지하기 위해서 내포 병렬성의 깊이에 의존하는 시간적 비용이 요구된다. 본 논문에서는 부모스레드의 정보역사 유지를 위해 상수적인 시간 및 공간적 복잡도를 갖도록 NR 레이블링 기법을 개선한다. 합성 프로그램을 이용하여 실험한 결과에서 개선된 기법은 최대 병렬성의 증가에 따라 레이블의 생성과 유지시 기존의 기법보다 평균 4.5배 빠르고, 레이블링을 위해 평균 3배 감소된 기억공간을 요구하며, 내포 병렬성에 의존적이지 않음을 보인다.

  • PDF

병렬 프로그램의 디버깅을 위한 관심정보 모니터링 시스템 (Interest-Information Monitoring System for Debugging of Parallel Programs)

  • 박명철
    • 한국정보통신학회:학술대회논문집
    • /
    • 한국해양정보통신학회 2007년도 추계종합학술대회
    • /
    • pp.607-610
    • /
    • 2007
  • 본 논문에서는 OpenMP 기반의 병렬프로그램을 대상으로 각 스레드의 수행양상을 추적할 수 있는 감시 시스템을 제안한다. 기존의 감시 시스템은 각 스레드의 레이블링 정보를 이용하여 접근역사를 통한 분석기법이 대부분 이였다. 이는 대량의 정보 생성으로 인한 시간적, 공간적 복잡도를 높이는 문제점을 가진다. 본 논문에서는 관심 정보에 따른 스레드만을 대상으로 추적 정보를 생성하고 사용자에게 직관성 높은 정보로 제공하기 위한 시각화 시스템을 동시에 제공한다. 시각화를 위한 모델은 영상정보를 기반하여 구성되며 이는 영상처리 기법을 통하여 프로그램 수행양상을 인지할 수 있게 한다. 따라서, 본 논문은 병렬프로그램을 효과적으로 디버깅할 수 있는 환경을 제공한다.

  • PDF

내포 병렬성을 가지는 OpenMP 프로그램의 최초 경합 탐지 (Detecting the First Race in OpenMP Program with Nested Parallelism)

  • 천병규;우종정;전용기
    • 정보처리학회논문지A
    • /
    • 제8A권3호
    • /
    • pp.253-260
    • /
    • 2001
  • 공유 변수를 가지는 병렬 프로그램의 오류 수정에서 경합 탐지는 중요하다. 왜냐하면, 경합은 프로그램의 비결정적인 수행을 유발하기 때문이다. 기존에 제시된 병렬 프로그램의 오류 수정 기법인 수행중 탐지 기법은 내포된 병렬 프로그램에서 최초 경합 탐지를 보장할 수 없다. 최초 경합을 수정하면 이후에 발생하는 경합들이 나타나지 않을 수 있으므로, 최초경합의 탐지는 중요하다. 본 논문에서는 내포 병렬 루프 프로그램을 대상으로 반복 수행을 통해서 최초경합을 탐지하는 기법을 제시한다. 반복 수행의 횟수는 최악의 경우에 프로그램의 내포 깊이 만큼이며 각 수행시의 효율성은 공유변수의 개수를 V, 프로그램의 최대 병렬성을 T라 할 때, 공간 복잡도 O(VT)와 시간 복잡도 O(T)를 가지므로 기존의 수행중 탐지 기법과 동일하다. 그러므로 본 기법은 효과적이고 실용적인 오류 수정을 가능하게 한다.

  • PDF

PERFORMANCE OF A KNIGHT TOUR PARALLEL ALGORITHM ON MULTI-CORE SYSTEM USING OPENMP

  • VIJAYAKUMAR SANGAMESVARAPPA;VIDYAATHULASIRAMAN
    • Journal of applied mathematics & informatics
    • /
    • 제41권6호
    • /
    • pp.1317-1326
    • /
    • 2023
  • Today's computers, desktops and laptops were build with multi-core architecture. Developing and running serial programs in this multi-core architecture fritters away the resources and time. Parallel programming is the only solution for proper utilization of resources available in the modern computers. The major challenge in the multi-core environment is the designing of parallel algorithm and performance analysis. This paper describes the design and performance analysis of parallel algorithm by taking the Knight Tour problem as an example using OpenMP interface. Comparison has been made with performance of serial and parallel algorithm. The comparison shows that the proposed parallel algorithm achieves good performance compared to serial algorithm.

A Study on Filtering Techniques for Dynamic Analysis of Data Races in Multi-threaded Programs

  • Ha, Ok-Kyoon;Yoo, Hongseok
    • 한국컴퓨터정보학회논문지
    • /
    • 제22권11호
    • /
    • pp.1-7
    • /
    • 2017
  • In this paper, we introduce three monitoring filtering techniques which reduce the overheads of dynamic data race detection. It is well known that detecting data races dynamically in multi-threaded programs is quite hard and troublesome task, because the dynamic detection techniques need to monitor all execution of a multi-threaded program and to analyse every conflicting memory and thread operations in the program. Thus, the main drawback of the dynamic analysis for detecting data races is the heavy additional time and space overheads for running the program. For the practicality, we also empirically compare the efficiency of three monitoring filtering techniques. The results using OpenMP benchmarks show that the filtering techniques are practical for dynamic data race detection, since they reduce the average runtime overhead to under 10% of that of the pure detection.