• Title/Summary/Keyword: 공유메모리 병렬프로그램

Search Result 44, Processing Time 0.033 seconds

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

  • 김영주;이승렬;전용기
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2000.04a
    • /
    • pp.630-632
    • /
    • 2000
  • 경합은 공유메모리 병렬프로그램의 비결정적인 수행결과를 초래하므로, 디버깅을 위해서 경합탐지는 중요하다. 임계구역을 가진 병렬프로그램을 위한 수행중 경합 탐지 기법은 공유 자료구조를 사용하므로, 매 접근 사건 시에 병목현상을 유발한다. 본 연구에서는 동기화가 있는 병렬프로그램에서 매 반복을 수행할 때마다 공유 자료구조의 접근 횟수를 기껏해야 임계구역의 수에 비례하도록 매 접근사건을 검사한다. 그러므로 이 기법은 수행중 경합탐지의 확장성과 효율성을 제공한다.

  • PDF

Implementation of parallel blocked LU decomposition program for utilizing cache memory on GP-GPUs (GP-GPU의 캐시메모리를 활용하기 위한 병렬 블록 LU 분해 프로그램의 구현)

  • Kim, Youngtae;Kim, Doo-Han;Yu, Myoung-Han
    • Journal of Internet Computing and Services
    • /
    • v.14 no.6
    • /
    • pp.41-47
    • /
    • 2013
  • GP-GPUs are general purposed GPUs for numerical computation based on multiple threads which are originally for graphic processing. GP-GPUs provide cache memory in a form of shared memory which user programs can access directly, unlikely typical cache memory. In this research, we implemented the parallel block LU decomposition program to utilize cache memory in GP-GPUs. The parallel blocked LU decomposition program designed with Nvidia CUDA C run 7~8 times faster than nun-blocked LU decomposition program in the same GP-GPU computation environment.

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

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

  • PDF

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

  • Park, Hui-Dong;Jeon, Yong-Gi
    • Journal of KIISE:Computer Systems and Theory
    • /
    • v.26 no.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.

Trojan : A High-Performance Simulator for Shared Memory Architectures (Trojan : 공유메모리 구조를 위한 고성능 시뮬레이터)

  • Park, Dae-Yeon;An, U-Hyeon
    • Journal of KIISE:Computer Systems and Theory
    • /
    • v.26 no.4
    • /
    • pp.420-431
    • /
    • 1999
  • 이 논문은 병렬 공유 메모리 시스템의 성능을 정확하게 평가할수 있으며 MIT의 Proteus 시뮬레이터의 기능을 확장한 시뮬레이터인 Trojan 에 대해 언급한다. 이 논문에서 언급되는 trojan 의 주요한 기능으로는 다음과 같다. 첫째, Trojan 은 프로세스 기반 응용 프로그램(예를 들어 SPLASH)과 쓰레드 기반 응용 프로그램들(예를 들어 SPLASH2) 에 대해 효율적 시뮬레이션을 제공한다. 둘째, 수행 구동 시뮬레이터 중에 처음으로 가상 메모리 시뮬레이션 기능이 구현되었다. 실제 운영체제의 가상 메모리 시스템과 하드웨어 시스템과의 상호작용 및 가상 메모리 시스템의 성능을 평가할수 있게 되었다. 기존의 공유 메모리 시뮬레이터들은 공유 메모리를 참조하기위해서 시뮬레이터 자체가 제공하는 문법에 맞게 변경해야만 하는 단점이 있다. 이 논문에서처럼 Trojan 시뮬레이터는 캐쉬동작, 네트웍통신양, 다주프로세서 시스템 설계,그리고 병렬 공유 응용 프로그램동작 및 성능 연구에 효율적이고 폭넓게 사용되고 있다.

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.

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

  • Song, Tae-Seob
    • Journal of the Korea Institute of Information and Communication Engineering
    • /
    • v.16 no.3
    • /
    • pp.391-398
    • /
    • 2012
  • Detecting races is important for debugging shared-memory parallel programs, because the races result in unintended non-deterministic executions of the programs. Previous on-the-fly techniques to detect races in parallel programs with general inter-thread coordination show serious space overhead which depends on the maximum parallelism of the program. Therefore, this paper presents a loop splitting technique for on-the-fly race detection of parallel programs which is more efficient in space complexity than previous techniques. This loop splitting technique is the debugged program which preserves semantics of the original program. Monitering loop splitting program in on-the-fly can detect first races.

Efficient Executions of MPI Parallel Programs in Memory-Centric Computer Architecture (메모리 중심 컴퓨터 구조에서 MPI 병렬 프로그램의 효율적인 수행)

  • Lee, Je-Man;Lee, Seung-Chul;Shin, Dong-Ha
    • Proceedings of the Korean Society of Computer Information Conference
    • /
    • 2019.07a
    • /
    • pp.257-258
    • /
    • 2019
  • 본 논문에서는 "프로세서 중심 컴퓨터 구조"에서 개발된 MPI 병렬 프로그램을 수정하지 않고 "메모리 중심 컴퓨터 구조"에서 더 효율적으로 수행시키는 기술을 제안한다. 본 연구에서 제안하는 기술은 메모리 중심 컴퓨터 구조가 가지는 "빠른 대용량 공유 메모리" 특징을 이용하여 MPI 표준 라이브러리가 수행하는 네트워크 통신을 통한 느린 데이터 전달을 공유 메모리를 통한 빠른 데이터 전달로 대체하여 효율성을 얻는다. 본 연구에서 제안한 기술은 도커 가상화 기술을 사용한 분산 시스템 환경에서 MC-MPI-LIB 라이브러리 및 MC-MPI-SIM 시뮬레이터로 구현되었으며 다수의 MPI 병렬 프로그램으로 시험 수행하여 효율성이 있음을 보였다.

  • PDF

A Parallel Task Oriented Memory Manager for Dynamic Objects (동적 객체에 대한 병렬 타스크 중심의 메모리 관리기)

  • Kim, Eun-Jeong;Bae, Jong-Min
    • The Transactions of the Korea Information Processing Society
    • /
    • v.4 no.5
    • /
    • pp.1391-1400
    • /
    • 1997
  • 공유 메모리 다중 프로세서상에서 많은 동적 객체를 생성하는 언어가 실행될 때, 동적 객체에 대한 메모리 관리 알고리즘은 프로그램의 실행 속도에 큰 영향을 미친다. 본 논문에서는 이러한 환경에서 프로그램의 성능을 향상 시킬 수 있는 새로운 메모리 관리 알고리즘을 제안한다. 이를 위해 힘 영역의 할당 및 회수 작업을 병렬 타스크 중심으로 행한다. 또한 동적 객체를 병렬 타스크사이에 공유 되는 객체(shared data) 와 비공유 객체(mon-shared data)로 구분하고, 힘 영역을 공동 영역과 전용 영역으로 분리 한다. 이는 병렬 타스크가 동적으로 스케줄링되는 것을 자유롭게 하고 창조 지역성 을 높이는 효과가 있으며, 전용 영역에 대한 메모리 재사용으로 인하여 볼용 셀수집기의 수행 횟수를 줄일 수 있다.

  • PDF

Performance Improvement of Parallel Processing System through Runtime Adaptation (실행시간 적응에 의한 병렬처리시스템의 성능개선)

  • Park, Dae-Yeon;Han, Jae-Seon
    • Journal of KIISE:Computer Systems and Theory
    • /
    • v.26 no.7
    • /
    • pp.752-765
    • /
    • 1999
  • 대부분 병렬처리 시스템에서 성능 파라미터는 복잡하고 프로그램의 수행 시 예견할 수 없게 변하기 때문에 컴파일러가 프로그램 수행에 대한 최적의 성능 파라미터들을 컴파일 시에 결정하기가 힘들다. 본 논문은 병렬 처리 시스템의 프로그램 수행 시, 변화하는 시스템 성능 상태에 따라 전체 성능이 최적화로 적응하는 적응 수행 방식을 제안한다. 본 논문에서는 이 적응 수행 방식 중에 적응 프로그램 수행을 위한 이론적인 방법론 및 구현 방법에 대해 제안하고 적응 제어 수행을 위해 프로그램의 데이타 공유 단위에 대한 적응방식(적응 입도 방식)을 사용한다. 적응 프로그램 수행 방식은 프로그램 수행 시 하드웨어와 컴파일러의 도움으로 프로그램 자신이 최적의 성능을 얻을 수 있도록 적응하는 방식이다. 적응 제어 수행을 위해 수행 시에 병렬 분산 공유 메모리 시스템에서 프로세서 간 공유될 수 있은 데이타의 공유 상태에 따라 공유 데이타의 크기를 변화시키는 적응 입도 방식을 적용했다. 적응 입도 방식은 기존의 공유 메모리 시스템의 공유 데이타 단위의 통신 방식에 대단위 데이타의 전송 방식을 사용자의 입장에 투명하게 통합한 방식이다. 시뮬레이션 결과에 의하면 적응 입도 방식에 의해서 하드웨어 분산 공유 메모리 시스템보다 43%까지 성능이 개선되었다. Abstract On parallel machines, in which performance parameters change dynamically in complex and unpredictable ways, it is difficult for compilers to predict the optimal values of the parameters at compile time. Furthermore, these optimal values may change as the program executes. This paper addresses this problem by proposing adaptive execution that makes the program or control execution adapt in response to changes in machine conditions. Adaptive program execution makes it possible for programs to adapt themselves through the collaboration of the hardware and the compiler. For adaptive control execution, we applied the adaptive scheme to the granularity of sharing adaptive granularity. Adaptive granularity is a communication scheme that effectively and transparently integrates bulk transfer into the shared memory paradigm, with a varying granularity depending on the sharing behavior. Simulation results show that adaptive granularity improves performance up to 43% over the hardware implementation of distributed shared memory systems.