• 제목/요약/키워드: 메모리 경합

검색결과 30건 처리시간 0.05초

GPGPU 프로그램의 자료경합 탐지기법을 위한 벤치마크 모음 (A Benchmark Suite for Data Race Detection Technique in GPGPU Progrmas)

  • 이건표;최으뜸;전용기
    • 한국컴퓨터정보학회:학술대회논문집
    • /
    • 한국컴퓨터정보학회 2019년도 제59차 동계학술대회논문집 27권1호
    • /
    • pp.7-8
    • /
    • 2019
  • 자료경합은 두 개 이상의 스레드가 같은 공유메모리에 적절한 동기화 없이 접근하고, 적어도 한 개의 접근사건이 쓰기일 때 발생할 수 있는 동시성 오류이다. 자료경합은 프로그래머가 의도하지 않은 비결정적인 수행결과를 초래하여, 항공기 소프트웨어와 같은 고신뢰성이 요구되는 프로그램에서 치명적인 오류를 발생시켜 인적 물적 손해로 이어질 수 있다. 자료경합 탐지기법은 이러한 문제를 사전에 탐지하여 수정하는데 사용되어진다. 하지만 GPGPU 프로그램에서의 자료경합은 CPU 병행프로그램에서보다 복잡한 실행구조를 가지고 있어 스레드 및 메모리 계층, 스케줄링, 동기화 기법 등의 많은 변수가 존재한다. 이로 인해 실세계 프로그램에 자료경합 탐지기법을 적용하여 검증 시 이러한 변수들을 반영하여 실험하는데 많은 노력이 소요된다. 본 논문은 실세계 프로그램에서의 자료경합을 대표하는 4가지 패턴의 합성프로그램으로 이루어지고 실행 시 스레드 및 메모리 계층, 스레드 구조, 메모리 사용량 및 동기화 방안을 지정할 수 있는 벤치마크 모음을 제시한다.

  • PDF

멀티쓰레드 워크로드를 위한 DVFS 기반 메모리 경합 인지 스케줄링 기법 (DVFS based Memory-Contention Aware Scheduling Method for Multi-threaded Workloads)

  • 남윤성;강민규;염헌영;엄현상
    • 정보과학회 컴퓨팅의 실제 논문지
    • /
    • 제24권1호
    • /
    • pp.10-16
    • /
    • 2018
  • 비용절감을 위해 제한된 서버 워크로드를 통합하는 것은 데이터센터의 효율성에 중요하다. 하지만 더 많은 워크로드가 하나의 서버에 통합되면서, 워크로드들의 성능이 제한된 공유 자원에 대한 경합으로 인해 감소될 수 있다. 이러한 성능감소를 줄이기 위해서 공유자원에 대한 경합을 줄이는 스케줄이 필요하다. 본 논문에서는 이러한 공유자원, 특히 메모리 서브시스템에 대해서 경합을 줄일 수 있는 DVFS(Dynamic Voltage Frequency Scaling) 기반의 메모리 인지 쓰레드 스케줄링 방법을 제안한다. 제안한 알고리즘은 메모리 자원에 대한 경합을 줄이기 위해서, 메모리 자원에 대한 접근을 제한하는 방식으로 두 가지 방법을 사용한다. 메모리 인텐시브 쓰레드를 제한된 코어에서 수행하고, 메모리 인텐시브 쓰레드가 수행되는 코어의 주파수를 낮추어 경합을 완화한다. 제안한 알고리즘을 적용하여 쓰레드 스케줄링 시, 리눅스의 CFS(Completely Fair Scheduler) 대비 최대 43%의 성능향상을 이루고 파워소모를 38% 줄일 수 있었다.

임계구역을 가진 공유메모리 병렬프로그램에서 효율적인 경합 탐지를 위한 사건 선택기법 (Filtering Accesses for Detecting Races in Parallel Programs with Locking)

  • 김영주;이승렬;전용기
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2000년도 봄 학술발표논문집 Vol.27 No.1 (A)
    • /
    • pp.630-632
    • /
    • 2000
  • 경합은 공유메모리 병렬프로그램의 비결정적인 수행결과를 초래하므로, 디버깅을 위해서 경합탐지는 중요하다. 임계구역을 가진 병렬프로그램을 위한 수행중 경합 탐지 기법은 공유 자료구조를 사용하므로, 매 접근 사건 시에 병목현상을 유발한다. 본 연구에서는 동기화가 있는 병렬프로그램에서 매 반복을 수행할 때마다 공유 자료구조의 접근 횟수를 기껏해야 임계구역의 수에 비례하도록 매 접근사건을 검사한다. 그러므로 이 기법은 수행중 경합탐지의 확장성과 효율성을 제공한다.

  • PDF

동기화를 가진 공유메모리 병렬 프로그램의 최초경합을 위한 효율적인 수행중 탐지 기법 (Scalable On-the-fly Detection of the First Races in Parallel Programs with Synchronization)

  • 이승렬;김영주;전용기
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 1999년도 가을 학술발표논문집 Vol.26 No.2 (3)
    • /
    • pp.774-776
    • /
    • 1999
  • 공유메모리 병렬프로그램에서의 경합은 프로그램 수행에서 원하지 않는 비결정성을 야기할 수 있기 때문에 반드시 탐지되어져야 한다. 기존의 탐지 기법들은 경합을 탐지하기 위해서 공유 자료구조를 사용하므로 심각한 병목현상을 일으킨다. 본 논문에서는 동기화가 있는 프로그램에서 병목현상을 줄임으로써 탐지의 효율성을 높임과 동시에, 최초로 발생한 경합을 탐지하기 위해서 감시대상이 되는 접근사건들의 수를 감소시키는 기법을 제시한다. 이러한 목적을 위해서 사건선택 알고리즘과 실제적인 실험결과를 통해 본 기법의 효율성을 보인다.

  • PDF

공유 메모리 병렬 프로그램의 수행중 오류 탐지를 위한 루프 분리 (Loop Splitting for On-the-fly Race Detection of Sharded-memory Parallel Programs)

  • 송태섭
    • 한국정보통신학회논문지
    • /
    • 제16권3호
    • /
    • pp.391-398
    • /
    • 2012
  • 병렬 프로그램은 의도되지 않은 비결정적인 수행을 야기하므로 공유 메모리를 사용하는 병렬 프로그램에서는 경합을 탐지하는 것은 매우 중요하다. 수행 중 기법에서 경합을 탐지하기 위해서 요구되는 기억장소의 부담은 매우크다. 특히 동기화가 있는 병렬 프로그램에서 경합 탐지에 필요한 기억 공간의 문제는 더욱 심각하다. 그래서, 본 논문에서는 원시 프로그램의 시멘틱을 유지하면서 동기화를 가지는 공유 메모리 병렬 프로그램의 디버깅을 위한 루프 분리 기법을 제시한다. 이것은 동기화를 가지는 병렬 프로그램의 수행 중 경합 탐지에 필요로 하는 기억공간의 복잡성을 줄일 수 있고, 루프 분리된 프로그램을 수행 중에 감시하여 최초 경합들을 탐지할 수 있다.

내부적 비결정성을 가진 공유 메모리 프로그램의 잠재적 경합 탐지 (Potential Races Detection in Shared-Memory Programs with Internal Nondeterminism)

  • 정민섭;김영주;하옥균;전용기
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2008년도 춘계학술발표대회
    • /
    • pp.553-556
    • /
    • 2008
  • 임계구역을 가진 공유 메모리 기반의 병렬 프로그램에서 발생하는 경합은 프로그래머가 의도하지 않은 비결정적인 수행 결과를 초래하므로 반드시 디버깅해야 한다. 이러한 경합을 수행 중에 탐지하는 기존의 기법들은 임계구역의 실행순서에 의해서 발생하는 내부적 비결정성이 존재하지 않는 프로그램에 대해서만 경합의 존재를 검증할 수 있다. 본 논문에서는 내부적 비결정성을 가진 프로그램에 존재하는 비결정적 접근사건을 정적으로 분석하고, 이 정보를 이용하여 수행 중에 경합을 탐지함으로써 잠재되어 있는 경합까지 탐지할 수 있는 도구를 제안한다. 제안한 도구는 비결정성이 포함된 합성프로그램과 공인된 OpenMP 벤치마크 프로그램인 Microbenchmark를 이용하여 경합 검증이 가능함을 보인다.

순서적 동기화를 포함하는 공유 메모리 병렬프로그램에서의 수행중 최초경합 탐지 기법 (On-the -fly Detection of the First Races for Shared-Memory Parallel Programs with Ordered Synchronization)

  • 박희동;전용기
    • 한국정보과학회논문지:시스템및이론
    • /
    • 제26권8호
    • /
    • pp.884-894
    • /
    • 1999
  • 순서적 동기화 및 내포 병렬성을 포함하는 공유메모리 병렬 프로그램에서의 경합(race)은 프로그램 수행에서 원하지 않은 비결정성(nondeterminism)을 야기할 수 있기 때문에 반드시 탐지되어져야 한다. 특히 프로그램 수행에서 최초경합(first race)을 탐지하는 것은 중요한데, 그 이유는 이 경합을 제거하면 다른 경합이 나타나지 않을 수도 있기 때문이다. 본 논문에서는 결정적 공유메모리 병렬프로그램을 위한 2단계 수행중 (two-pass on-the-fly) 최초경합 탐지 기법을 제시하며, 이것은 공유메모리 병렬 프로그램의 특정 수행에서 "최초로 발생되는" 경합들을 탐지하는 기법이다. 그리고 HPF 컴파일러를 이용하여 본 탐지 프로토콜을 공인된 벤치마크 프로그램에 적용하여, 병렬 프로그램 디버깅 시 고려하여야 할 파라미터들에 대한 실험으로부터 본 기법의 효율성을 보였다.Abstract Detecting races is important in debugging shared-memory parallel programs which have ordered synchronization and nested parallelism, because the races result in unintended non- deterministic executions of the programs. The first races are important in debugging, because the removal of such races may make other races disappear. It is even possible that all races reported would disappear once the first races are removed. This paper presents a new two-pass on-the-fly algorithm to detect the first races in such parallel programs. The algorithm reported in this paper is an on-the-fly algorithm that detects the races that "occur first" in a particular execution of shared-memory parallel programs. The experiment has accomplished, where two certified benchmark programs which can be executed under High Performance Fortran environments to get some parameters which improve debugging performance with our algorithm. with our algorithm.

소프트웨어 트랜잭셔널 메모리를 이용한 자료경합 치유 기술 설계 (A Design of Healing Data Races using Software Transactional Memory)

  • 최으뜸;하옥균;전용기
    • 한국컴퓨터정보학회:학술대회논문집
    • /
    • 한국컴퓨터정보학회 2016년도 제54차 하계학술대회논문집 24권2호
    • /
    • pp.3-4
    • /
    • 2016
  • 멀티스레드 프로그램의 수행 중에 발생할 수 있는 자료경합은 프로그래머가 의도하지 않은 비결정적 수행으로 인해 신뢰할 수 없는 프로그램의 결과를 발생시킨다. 이러한 자료경합의 디버깅을 위해서 시간 및 자원적 비용이 과도하게 발생하기 때문에 프로그램의 수행 중에 이를 용인하고 치유하는 것이 중요하다. 본 논문은 멀티스레드 프로그램을 대상으로 소프트웨어 트랜잭셔널 메모리(STM)를 사용하여 공유변수에 대한 트랜잭션 영역을 설정하고 공유변수에 대한 이벤트 충돌 유형에 따른 자료경합 치유기법을 설계한다. 최종적으로는 프로그램 수행 중에 자료경합을 치유하는 기법의 실현가능성을 확인한다.

  • PDF

공유메모리 프로그램의 최초경합 탐지를 위한 접근역사 분석 (Analyzing Access Histories for Detecting First Races in Shared-memory Programs)

  • 강문혜;김영주;전용기
    • 한국정보과학회논문지:시스템및이론
    • /
    • 제31권1_2호
    • /
    • pp.41-50
    • /
    • 2004
  • 공유메모리 병렬프로그램의 디버깅을 위해서 비결정적인 수행결과를 초래하는 경합을 탐지하는 것은 중요하다. 특히, 프로그램 수행에서 가장 먼저 발생하는 최초경합은 이후에 발생하는 경합에 영향을 줄 수 있으므로 반드시 탐지되어야 한다. 이러한 최초경합을 탐지하기 위해 최초경합에 참여할 가능성이 있는 후보사건들을 수행 중에 수집하는 기존의 기법은 접근사건들을 감시하여 후보사건들을 수집하고, 그들간의 병행성 관계만을 검사하여 경합을 보고한다. 그러나 이렇게 보고된 경합은 경차들간의 영향관계가 고려되지 않으므로 최초경합임을 보장하지 못한다 본 논문에서는 내포병렬성을 가진 병렬프로그램의 수행 중에 수집된 후보사건들을 프로그램 수행 후에 각 내포수준에서 분석하여 영향 받지 않은 경합만을 보고하는 기법을 제안한다. 제안된 기법은 임의의 내포수준까지 분석하여 보고된 최초경합이 그 내포수준 까지는 영향 받지 않은 경합임을 보장하므로, 상위 내포수준에 대한 재분석이 필요 없는 효율적인 최초경합 탐지기법이다. 본 기법은 내포병렬성에서 후보사건들만 수집되면 최초경합을 탐지할 수 있으므로 기존의 기법에 비해서 현실적이고 효과적인 디버깅을 가능하게 한다.

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

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

  • PDF