• Title/Summary/Keyword: 내포병렬성

Search Result 30, Processing Time 0.025 seconds

Efficient On-the-fly Detection of First Races in Shared-Memory Programs with Nested Parallelism (내포병렬성을 가진 공유메모리 프로그램의 수행중 최초경합 탐지를 위한 효율적 기법)

  • 하금숙;전용기;유기영
    • Journal of KIISE:Computer Systems and Theory
    • /
    • v.30 no.7_8
    • /
    • pp.341-351
    • /
    • 2003
  • For debugging effectively the shared-memory programs with nested parallelism, it is important to detect efficiently the first races which incur non-deterministic executions of the programs. Previous on-the-fly technique detects the first races in two passes, and shows inefficiencies both in execution time and memory space because the size of an access history for each shared variable depends on the maximum parallelism of program. This paper proposes a new on-the-fly technique to detect the first races in two passes, which is constant in both the number of event comparisons and the space complexity on each access to shared variable because the size of an access history for each shared variable is a small constant. This technique therefore makes on-the-fly race detection more efficient and practical for debugging shared-memory programs with nested parallelism.

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

  • 강문혜;김영주;전용기
    • Journal of KIISE:Computer Systems and Theory
    • /
    • v.31 no.1_2
    • /
    • pp.41-50
    • /
    • 2004
  • Detecting races is important for debugging shared-memory Parallel programs, because races result in unintended nondeterministic executions of the programs. Particularly, the first races to occur in an execution of a program must be detected because they can potentially affect other races that occur later. Previous on-the-fly techniques that detect such first races based on candidate events that are likely to participate in the first races monitor access events in order to collect the candidate events during a program execution, and try to report the races only from determining the concurrency relationships of the candidates. Such races reported in this way. however, are not guaranteed to be first races, because they are not determined by taking into account how they are affected with each other. This paper presents a new post-mortem technique that analyzes, on each nesting level, candidate events collected from an execution of a shared-memory program with nested parallelism in order to report only first races. This technique is efficient, because it guarantees that first races reported by analyzing a nesting level are the races that occur first at the level, and does not require more analyses to the higher nesting levels than the current level. The Proposed technique facilitates more practical and effective debugging than the previous techniques, because it guarantees to detect first races if candidate events are collected from an execution instance of the program with nested parallelism.

The 3-Dimensional Visualization in Shared-Memory Programs with Nested Parallelism (내포 병렬성을 가진 공유메모리 프로그램의 3차원 시각화)

  • Park, Myeong-Chul;Hur, Hwa-Ra;Ha, Seok-Wun
    • Journal of the Korea Institute of Information and Communication Engineering
    • /
    • v.12 no.1
    • /
    • pp.53-58
    • /
    • 2008
  • A pellet program including a nested parallelism has a result of non-deterministic because of executed concurrently without synchronization. In order to detect like this error the visualization technique which is various is used. But the intuition characteristic is decreased because of limits of space and excessive abstraction. In this paper, proposes 3-D visualization engines which provide global structure of the arranging in a parallel program with nested parallelism which is complicated to the user. The visualization engine which is proposed provides global structure to the user as program easily to understand, it provides an effective debugging environment.

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

  • Chon, Byoung-Gyu;Woo, Jong-Jung;Jun, Yong-Kee
    • The KIPS Transactions:PartA
    • /
    • v.8A no.3
    • /
    • pp.253-260
    • /
    • 2001
  • It is important to detect races for debugging shared-memoy parallel programs, because the races cause unintended nondeterministic program execution. Previous on-the-fly techniques to detect races can not guarantee the first race detection in nested parallel programs. Detecting the first race is important for debugging parallel programs, since the removal of the first race may make the next occurred races disappear. In this paper, we presents an on-the-fly detection technique to detect all of the first races through the reexecution of the debugged programs. We assume that the debugged parallel program may have one-way nested parallel programs. The number of reexecution is at the least the nesting depth of the program in the worst case. The space complexity is O(VT) and the time complexity to detect race in each access of access history is O(T), where V is number of shared variables and T is the maximum parallelism of the program. This efficiency of our technique in each execution is the same with the previous on-the-fly detection techniques. Therefore, this technique makes debugging parallel programs more effective and practical.

  • PDF

A Labeling for on-the-fly Detection of Access Anomalies in Nested Parallel Loop Programs with Synchronization Operations (동기화 명령을 가지는 내포 병렬 루프 프로그램의 수행중 접근이상 탐지를 위한 레이블링)

  • 배상현;전용기;배종민
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 1998.10a
    • /
    • pp.712-714
    • /
    • 1998
  • 공유 메모리 병렬 프로그램의 주요 문제의 하나는 공유 변수에 접근하는 비 결정적 수행이다. 본 연구에서는 공유 메모리 병렬 프로그램의 접근이상(access anomaly)을 탐지하는 방법들중 수행중 탐지 기법을 보인다. 수행중 접근이상 탐지기법은 접근이상이 존재하면 적어도 하나는 탐지 할 수 있는 장점을 가지고 있다. 수행중 탐지 기법인 English-Hebrew Labeling 은 동기화 명령을 가지고 내포 병렬 루프 프로그램에서 적용될 수 있는 레이블링 기법으로 레이블링에 많은 저장장소를 필요로 하는 단점을 가지고 있었다. 본 연구에서는 새로운 레이블링 방법을 소개하고, 기존의 English-Hebrew Labeling과 최악의 경우에 기억 장소 복잡도의 측면과 시잔 복잡도의 측면에서 효율성을 비교, 분석하게 된다.

  • PDF

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

  • Ha, Ok-Kyoon;Kim, Sun-Sook;Jun, Yong-Kee
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2010.06c
    • /
    • pp.534-539
    • /
    • 2010
  • OpenMP 프로그램의 수행 중에 발생하는 자료 경합과 같은 병행성 오류는 디버깅을 위하여 반드시 탐지되어야만 한다. 그러나 이를 탐지하는 것은 어려운 일이다. 접근사건의 발생 후 관계를 기반으로하는 경합 탐지 기법은 프로그램의 수행 중에 발생하는 스레드의 병행성 정보를 식별하기위한 레이블을 생성하고, 생성된 스레드의 레이블을 기반으로 공유변수에 접근하는 사건을 접근역사를 통해 감시함으로써 경합을 탐지한다. 이러한 경합 탐지의 방법에서 레이블 생성을 위한 NR 레이블링 기법은 병행성 정보생성 시에 지역자료 구조를 사용함으로써 병목현상이 발생하지 않으며, 접근역사에 저장하는 레이블의 크기가 상수 값을 갖는 공간적 효율성을 제공한다. 또한 부모스레드의 정보역사를 정렬된 리스트 형태로 가져 병행성 정보 비교 시에 이진탐색이 가능하므로 시간적 효율성을 가지는 우수한 기법이다. 그러나, NR 레이블링은 레이블의 생성시에 부모스레드의 정보역사를 유지하기 위해서 내포 병렬성의 깊이에 의존하는 시간적 비용이 요구된다. 본 논문에서는 부모스레드의 정보역사 유지를 위해 상수적인 시간 및 공간적 복잡도를 갖도록 NR 레이블링 기법을 개선한다. 합성 프로그램을 이용하여 실험한 결과에서 개선된 기법은 최대 병렬성의 증가에 따라 레이블의 생성과 유지시 기존의 기법보다 평균 4.5배 빠르고, 레이블링을 위해 평균 3배 감소된 기억공간을 요구하며, 내포 병렬성에 의존적이지 않음을 보인다.

  • PDF

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

  • Kim, Young-Joo
    • Journal of the Korea Institute of Information and Communication Engineering
    • /
    • v.20 no.3
    • /
    • pp.549-557
    • /
    • 2016
  • It is important for effective visualization to summarize not only a large amount of debugging information but also the mental models of abstract ideas. This paper presents an abstract visualization tool which provides effective visualization of thread structure and race information for OpenMP programs with critical sections and nested parallelism, using a partial order execution graph which captures logical concurrency among threads. This tool is supported by an on-the-fly trace-filtering technique to reduce space complexity of visualization information, and a graph abstraction technique to reduce visual complexity of nested parallelism and critical sections in the filtered trace. The graph abstraction of partial-order relation and race information is effective for understanding program execution and detecting to eliminate races, because the user can examine control flow of program and locations of races in a structural fashion.

Flat Indexing: A Compilation Technique to Enhance the Parallelism of Logic Programs (논리 프로그램의 병렬도 개선을 위한 플랫 인덱싱 기법)

  • Kim, Hie-Cheol;Lee, Yong-Doo
    • The Transactions of the Korea Information Processing Society
    • /
    • v.5 no.7
    • /
    • pp.1908-1922
    • /
    • 1998
  • 본 논문은 논리언어 프로그램의 효율적인 클로즈(Clause) 인덱싱을 위한 컴파일 기법에 대한 체계적인 접근방법을 제시한다. 본 접근방법의 핵심으로서 노드당 평균 병렬도와 클로즈 수행시도(clause trial) 횟수를 정확하게 나타낼 수 있는 기법으로서 인덱싱트리(Indexign Tree)를 제안한다. 인덱싱트리는 인덱싱 수행 시에 인덱싱을 위한 지시어(Instruction)의 수행 결과로 프로그램으 컨트롤이 실패처리코드로 이동하는 경우도 정량적으로 나타내 준다. 인덱싱트리를 사용하여 논리 프로그램을 위한 대표적인 가상머신인 WAM(Warren Abstract Machine)을 분석한 결과, WAM에서 사용하는 인덱싱 기법이 논리 프로그램의 병렬 처리에 있어 탐색트리의 병렬도를 감소시키며, 또한 스케쥴링의 효율성을 저하시키는 결점을 내포하고 있음을 발견할 수 있었다. 이러한 결점을 해결하기 위하여 본 논문은 플랫 인덱싱이라는 새로운 인덱싱 기법을 제안하고 이것을 실제 논리언어 컴파일러에 구현하여 측정한 향상 및 분석 결과를 보여준다.

  • PDF

An Analysis of Race Detection Tool for OpenMP Programs (OpenMP 프로그램을 위한 경합탐지 도구의 분석)

  • 김영주;강문혜;전용기
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2003.10a
    • /
    • pp.478-480
    • /
    • 2003
  • 공유메모리 기반의 OpenMP 프로그램에서 발생하는 경합은 의도하지 않은 비결정적 수행 결과를 초래하므로 효과적으로 경합을 탐지하는 도구가 필요하다. 본 연구는 OpenMP 프로그램의 경합탐지를 위한 Intel 사의 Thread Checker를 내포병렬성의 여부와 접근사건들의 분포 형태를 기준으로 개발한 커널프로그램 집합을 이용하여 분석한 결과로서, 스레드들을 순서적으로 수행하면서 내포된 스레드를 부모 스레드와 동일한 스레드로 간주하고 적어도 하나의 읽기와 쓰기 접근사건들을 유지하면서 수행중에 경합을 탐지하는 도구임을 보인다. 이 도구는 접근사건의 발생 시에 이전 접근사건들과의 경합 여부를 검사한 후에 그 접근사건의 유지 여부를 결정하므로, 논리적 병행성 관계를 반영하지 못하는 내포된 스레드가 존재하지 않으면 경합의 존재를 검증한다.

  • PDF