• 제목/요약/키워드: Shared-memory parallel programs

검색결과 22건 처리시간 0.027초

Modular MIN에 관한 연구 (A Study on Modular Min)

  • 장창수;최창훈;유창하
    • 한국콘텐츠학회논문지
    • /
    • 제2권2호
    • /
    • pp.103-111
    • /
    • 2002
  • 비록 MIN이 짧은 직경을 갖고 있을지라도 지역화된 통신 형태를 갖는 병렬응용 프로그램에 있어서 hypercube와 fee구조를 비교했을 때 전체적인 시스템 성능은 떨어지게 된다. 그것은 MIN이 지역참조성의 활용할 수 있는 클러스터링 구조를 제공하는 것이 불가능하기 때문이다. 그러나 제안된 MIN은 잦은 데이터 통신 형태를 갖는 프로세서-메모리 클러스터의 내부에 짧은 경로 및 다중 경로를 제공하여 지역화된 통신 구조에 적합하도록 구성할 수 있다. 따라서 제안된 MIN은 지역화된 통신 형태를 갖는 병렬 응용 프로그램에 있어서 향상된 성능을 이룰 수 있게 된다.

  • PDF

요약보고 방법에 의해 병목현상을 개선한 최초경합의 수행중 탐지기법 (On-the-fly Detection of the First Races for Reducing Bottlenecks by Summary Report Method)

  • 김정시;전용기
    • 한국정보과학회논문지:시스템및이론
    • /
    • 제26권9호
    • /
    • pp.1042-1054
    • /
    • 1999
  • 공유메모리 병렬프로그램의 오류수정에서 경합의 탐지는 중요하다. 왜냐하면 경합은 잘못된 수행 결과를 초래할 뿐만 아니라, 의도하지 않은 프로그램의 비결정적인 수행을 유발하여 오류수정을 어렵게 하기 때문이다. 특히 최초경합의 탐지는 더욱 중요하다. 그 이유는 최초경합을 제거함으로써 나머지 경합들을 방지할 수도 있기 때문이다. 기존의 수행중 경합 탐지기법들은 접근별 보고방식을 기반으로 하는데, 이 기법들은 임의 공유변수에 대한 병행 쓰레드들의 모든 접근사건들을 검사하기 위해서 접근역사라는 유일한 공유정보를 이용하므로 탐지과정에 심각한 병목현상을 유발시킨다. 그러나, 최초경합 탐지를 위한 경우 이러한 병목현상은 크게 개선될 수 있다. 본 논문에서는, 각 접근사건 검사를 위해 각 쓰레드에 공유되지 않는 독립적인 접근역사를 별개로 두고, 경합을 보고하는 시점인 쓰레드 합류시점에서만 공유되는 접근역사를 이용하도록 함으로써 병목현상을 개선하여 최초경합을 탐지할 수 있는 새로운 수행중 탐지기법을 제안한다. 그러므로 본 기법은 최초경합을 보다 효율적으로 탐지할 수 있기 때문에 수행중 경합 탐지를 더욱 효율적이고 실용적으로 할 수 있다. Abstract Detecting races is important for debugging shared-memory parallel programs, because the races lead to unintended nondeterministic executions of the programs as well as erroneous result and then make debugging programs difficult. Especially, detecting the first races is more important. The reason is that the removal of the first races can make other races disappear. Most existing on-the-fly techniques to detect the races are based on per- access reporting method incurring the serious central bottleneck, because the techniques use unique shared information called access history for checking all accesses of concurrent threads to a shared variable. Such bottleneck, however, can be improved considerably in case of detecting first races. This paper presents a new on-the-fly technique which detects the first races with reduced bottleneck through checking each accesses with private access histories and finally reporting races with shared access histories. Therefore, this technique makes on-the-fly race detection more efficient and practical.

A topology optimization method of multiple load cases and constraints based on element independent nodal density

  • Yi, Jijun;Rong, Jianhua;Zeng, Tao;Huang, X.
    • Structural Engineering and Mechanics
    • /
    • 제45권6호
    • /
    • pp.759-777
    • /
    • 2013
  • In this paper, a topology optimization method based on the element independent nodal density (EIND) is developed for continuum solids with multiple load cases and multiple constraints. The optimization problem is formulated ad minimizing the volume subject to displacement constraints. Nodal densities of the finite element mesh are used a the design variable. The nodal densities are interpolated into any point in the design domain by the Shepard interpolation scheme and the Heaviside function. Without using additional constraints (such ad the filtering technique), mesh-independent, checkerboard-free, distinct optimal topology can be obtained. Adopting the rational approximation for material properties (RAMP), the topology optimization procedure is implemented using a solid isotropic material with penalization (SIMP) method and a dual programming optimization algorithm. The computational efficiency is greatly improved by multithread parallel computing with OpenMP to run parallel programs for the shared-memory model of parallel computation. Finally, several examples are presented to demonstrate the effectiveness of the developed techniques.

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

  • 박대연;한재선
    • 한국정보과학회논문지:시스템및이론
    • /
    • 제26권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.

병렬프로그램의 경합조건을 수행 중에 효율적으로 탐지하기 위한 레이블링 기법 (A Labeling Scheme for Efficient On-the-fly Detection of Race Conditions in Parallel Programs)

  • 박소희;우종정;배종민;전용기
    • 정보처리학회논문지A
    • /
    • 제9A권4호
    • /
    • pp.525-534
    • /
    • 2002
  • 병렬프로그램에서 경합 조건은 비결정적인 수행 결과를 초래하므로 디버깅을 위해 반드시 탐지되어야 한다. 이러한 경합을 수행 중에 탐지하는 기존의 기법들은 병행성 정보 생성 시에 공유 자료구조를 사용하여 심각한 병목현상을 발생시키거나, 병행성 정보 비교 시에 내포병렬성의 정도에 의존하는 비효율적인 시간 복잡도를 가진다. 본 논문에서는 개별 자료구조를 사용함으로써 병목현상을 제거하여 병행성 정보를 확장적으로 생성하며, 생성된 병행성 정보의 비교 시간을 상수적인 복잡도로 개선한 새로운 레이블링 기법을 제안한다. 그러므로 제안된 레이블링 기법의 확장성 및 효율성은 공유메모리와 메시지전달 프로그램뿐만 아니라 이를 혼합하여 사용하는 병렬프로그램에서도 효율적인 수행중 경합탐지를 가능하게 한다.

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

  • 박명철;허화라;하석운
    • 한국정보통신학회논문지
    • /
    • 제12권1호
    • /
    • pp.53-58
    • /
    • 2008
  • 내포 병렬성을 가지는 병렬 프로그램은 동기화 없이 병행적으로 수행되는 양상으로 인하여 비결정적인 결과를 초래하는 경향이 있다. 이러한 오류를 탐지하기 위하여 다양한 시각화 기법이 이용되고 있지만, 공간의 제한성과 과다한 추상화로 인하여 직관성이 매우 저하되는 실정이다. 본 논문에서는 내포 병렬성을 가지는 복잡한 병렬 프로그램의 전역적 구조를 사용자에게 제공하는3차원 시각화 엔진을 제안한다. 제안된 시각화 엔진은 전역적 구조를 사용자에게 제공함으로서 프로그램의 이해를 용이하게 하고 효과적인 디버깅 환경을 제공한다.

Proposition and Evaluation of Parallelism-Independent Scheduling Algorithms for DAGs of Tasks with Non-Uniform Execution Time

  • Kirilka Nikolova;Atusi Maeda;Sowa, Masa-Hiro
    • 대한전자공학회:학술대회논문집
    • /
    • 대한전자공학회 2000년도 ITC-CSCC -1
    • /
    • pp.289-293
    • /
    • 2000
  • We propose two new algorithms for parallelism-independent scheduling. The machine code generated from the compiler using these algorithms in its scheduling phase is parallelism-independent code, executable in minimum time regardless of the number of the processors in the parallel computer. Our new algorithms have the following phases: finding the minimum number of processors on which the program can be executed in minimal time, scheduling by an heuristic algorithm for this predefined number of processors, and serialization of the parallel schedule according to the earliest start time of the tasks. At run time tasks are taken from the serialized schedule and assigned to the processor which allows the earliest start time of the task. The order of the tasks decided at compile time is not changed at run time regardless of the number of the available processors which means there is no out-of-order issue and execution. The scheduling is done predominantly at compile time and dynamic scheduling is minimized and diminished to allocation of the tasks to the processors. We evaluate the proposed algorithms by comparing them in terms of schedule length to the CP/MISF algorithm. For performance evaluation we use both randomly generated DAGs (directed acyclic graphs) and DACs representing real applications. From practical point of view, the algorithms we propose can be successfully used for scheduling programs for in-order superscalar processors and shared memory multiprocessor systems. Superscalar processors with any number of functional units can execute the parallelism-independent code in minimum time without necessity for dynamic scheduling and out-of-order issue hardware. This means that the use of our algorithms will lead to reducing the complexity of the hardware of the processors and the run-time overhead related to the dynamic scheduling.

  • PDF

병렬 프로그램의 적응형 실행 기법 (Adaptive Execution Techniques for Parallel Programs)

  • 이재진
    • 한국정보과학회논문지:시스템및이론
    • /
    • 제31권8호
    • /
    • pp.421-431
    • /
    • 2004
  • 본 논문은 병렬 프로그램을 실행할 때 계산량이 작은 병렬 루프를 병렬로 실행하는 경우에 생기는 프로그램의 성능 저하를 피하기 위하여, 컴파일 시나 실행 시에 성능 예측 모델을 이용하여 병렬 루프의 성능을 예측한 다음 적응형 실행 기법을 이용하여 병렬 프로그램을 실행하는 방법을 소개한다. 성능예측 알고리즘과 적응형 실행 알고리즘은 컴파일러 전처리기에 구현이 되었으며, 이 전처리기는 병렬 루프가 실행되는 방식을 컴파일 시나 실행 시에 결정하는 코드를 원래의 병렬 프로그램에 삽입한다. Fortran77로 씌어진 다섯 개의 대표적인 과학 수치계산 병렬 벤치마크 프로그램을 32개의 프로세서로 구성된 분산 공유 메모리 병렬 컴퓨터(SGI Origin2000)에 실행하여 본 논문에서 제안한 방법의 성능 평가를 하였을 때, 제안한 기법을 적응한 경우가 32, 16, 8, 및 4개의 프로세서에서 원래의 병렬 프로그램 보다 각각 26%, 20%, 16%, 및 10% 빨리 실행되었다. 이중 한 프로그램은 원래 병렬 프로그램 보다 32개 프로세서에서 두 배 이상 빠르게 실행되었다.

워크스테이션 클러스터 상에서 분산공유메모리 인터페이스로 배열 데이터의 공유를 지원하는 Java 패키지의 설계와 구현 (Design and Implementation of a Java Package for Sharing Array Data by the DSM Interface on a Cluster of Workstations)

  • 임혜정;김명
    • 한국멀티미디어학회논문지
    • /
    • 제2권3호
    • /
    • pp.355-365
    • /
    • 1999
  • 본 연구에서는 배열 데이터를 여러 호스트 상에 분산시켜 생성하고 편리하게 공유할 수 있도록 하는 Java 패키지인 JPAS (Java Package for Array Sharing)를 설계하고 구현하였다. JPAS는 순수 Java로 구현되어 이식성이 뛰어나고, Java RMI를 이용하여 분산공유메모리 모델과 같이 위치 독립적인 접근 인터페이스로 배열 데이터를 공유할 수 있도록 한다. JPAS는 네트원 오버헤드로 인한 성능 저하를 막기 위해서, 프로그래머 가 알고 있는 애플리케이션의 특성을 공유 데이터 사용시에 반영할 수 있도록 한다. 또한, 데이터의 일관성을 유지하기 위해서, JPAS의 모든배열 데이터들은 값을 갱신 할수 있는 메소드틀을 갖는다. 실제로, 병렬프로그램들을 작성하여 워크스테이션 클러스터 상에서 실행시켜 본 결과, JPAS가 비교적 우수한 성능의 병렬 프로그래밍 도구임을 보였다.

  • PDF

SCI 네트워크 상의 소프트웨어 VIA기반 PC글러스터 시스템 (A Software VIA based PC Cluster System on SCI Network)

  • 신정희;정상화;박세진
    • 한국정보과학회논문지:시스템및이론
    • /
    • 제29권4호
    • /
    • pp.192-200
    • /
    • 2002
  • PC 클러스터 시스템에서 노드 사이의 데이타 교환을 위해 사용되는 TCP/IP 기반 통신 방식은 소프트웨어 부하가 크기 때문에 전체 시스템의 성능을 저하시키는 요인이 된다. 이러한 문제점을 해결하기 위해 사용자 수준 통신(user-level communication) 구조가 제안되었다. 사용자 수준 통신은 성능에 치명적인 영향을 미치는 커널을 통신 단계에서 제거함으로써 적은 지연 시간과 높은 대역폭을 제공하며, 이러한 우수한 성능은 업계 표준인 VIA(Virtual Interface Architecture)를 만들었다. 본 논문에서는 공유 메모리 기반 Interconnect의 IEEE 표준인 SCI(Scalable Coherent Interface) 네트워크에 기반하여 VIA 클러스터 시스템을 구현하였다. 본 논문의 클러스터 시스템은 메시지 패싱 및 공유메모리 프로그래밍 환경을 동시에 제공하며, 최대 84MB/s의 대역폭과 $8{\mu}s$의 지연 시간을 가진다. 또한, 본 시스템이 병렬 벤치마크 프로그램의 수행시 비교 대상 시스템들에 비해 성능이 우수함을 입증하였다.