• 제목/요약/키워드: Multithreaded programming

검색결과 6건 처리시간 0.021초

다중스레드 계산 모델을 이용한 병렬 객체 지향 프로그래밍 환경의 구현 및 성능 평가 (Implementation and Performance Evaluation of an Object-Oriented Parallel Programming Environment with Multithreaded Computational Model)

  • 송종훈;김흥환;한상영
    • 한국정보과학회논문지:컴퓨팅의 실제 및 레터
    • /
    • 제5권6호
    • /
    • pp.708-718
    • /
    • 1999
  • 본 논문에서 제안하는 시스템은 일반적인 병렬 시스템의 하드웨어 구조에서, 다중 스레드 계산 모델을 이용하여 객체 지향 프로그래밍 환경을 구현한 시스템이다. 제안하는 시스템을 효과적으로 구현하기 위하여 컴파일러와 실행 시간 시스템의 측면에서 여러 가지 기법을 제시한다. 컴파일러의 측면에서는 멤버 변수의 접근 분석, 메소드의 병렬성 분석 기법을 제시하고, 실행 시간 시스템에서는 실시간 스레드/메시지 결합, 프레임 공유 기법을 제시한다. 본 논문에서 제안된 프로그래밍 환경은, MPI 메시지 인터페이스를 이용하여 구현하였으며, 벤치마크 프로그램을 실행함으로써 성능 분석을 하였다. 분석의 결과는 실행시간 시스템의 여러 가지 기법들이 성능 향상에 많은 효과가 있음을 보여주며, 이러한 결과는 일반적인 병렬 시스템에서도 적용 가능하다.Abstract In this paper, we suggest an object-oriented programming environment with multithreaded computation model on general parallel processing systems. We developed many methods for our environment to be efficient : in compiler, the analysis of member variable and method parallelism, and in runtime system, thread/message merging and frame sharing. The programming environment is implemented with MPI message interface, and its performance is analyzed with executing benchmark programs. The results show that the developed methods have influence on performance improvement, and this improvement can be applied to general parallel processing systems.

다중쓰레드 프로그래밍을 위한 분산공유메모리 관리 기법 (Distributed Shared Memory Scheme for Multi-thread programming)

  • 서대화
    • 한국정보처리학회논문지
    • /
    • 제3권4호
    • /
    • pp.791-802
    • /
    • 1996
  • 본 논문에서는 대규모 다중처리기 시스템에서 다중쓰레드를 지원하는 기법에 관하여 다룬다. 분산공유메로리에서의 주소번역표 관리, 블록 일관성 유지 방법, 그리고 블록 대치 정책에 대하여 쓰레드 프로그래밍 환경에 적합한 새로운 기법을 제안한다. 이 기법은 분산공유메모리에서 일반적으로 발생하는 문제점들인 거짓 공유, 불필요한 중복, 블록 바운싱, 그리고 주소 엘리어싱 등을 효율적으로 해결한다. 그리고 응용프 로그램의 투명성을 제공하고, 시스템의 확장과 구현 용이하도록 해주며, 다중쓰레드 환경을 사용자에서 제공한다.

  • PDF

동시성으로 작성하는 파이썬 크롤러 (Modern Concurrent Programming for Multicode Environment)

  • 김남규;강영진;이훈재
    • 한국정보통신학회:학술대회논문집
    • /
    • 한국정보통신학회 2017년도 춘계학술대회
    • /
    • pp.430-433
    • /
    • 2017
  • 동시성을 보장하는 프로그래밍은 개발자에게 있어서 필수적이다. 이를 사용하지 않는다면 하드웨어 자체의 기술 발전이 있지 않는 한 프로그램의 속도 향상을 기대하기 힘들다. 뛰어난 동시성 코드를 지원하는 프로그래밍 언어로 go, elixir, scala 등이 있다. 수많은 유용한 라이브러리를 지원하는 파이썬 역시 asyncio나 coroutine과 같은 동시성 프로그래밍을 지원하고 있다. 본 지에서는 동시성과 병렬성의 개념을 정의하며, 파이썬에서 동시성 프로그래밍을 작성할 시에 유의해야 할 점에 대해 설명한다. 웹 데이터를 수집하는 크롤러를 동시성 코드로 작성하여 순차, 멀티스레딩 코드로 작성된 프로그램과 성능을 비교한다.

  • PDF

Experimental Performance Comparison of Dynamic Data Race Detection Techniques

  • Yu, Misun;Park, Seung-Min;Chun, Ingeol;Bae, Doo-Hwan
    • ETRI Journal
    • /
    • 제39권1호
    • /
    • pp.124-134
    • /
    • 2017
  • Data races are one of the most difficult types of bugs in concurrent multithreaded systems. It requires significant time and cost to accurately detect bugs in complex large-scale programs. Although many race detection techniques have been proposed by various researchers, none of them are effective in all aspects. In this paper, we compare the performance of five recent dynamic race detection techniques: FastTrack, Acculock, Multilock-HB, SimpleLock+, and causally precedes (CP) detection. We experimentally demonstrate the strengths and weaknesses of these dynamic race detection techniques in terms of their detection capability, running time, and runtime overhead using 20 benchmark programs with different characteristics. The comparison results show that the detection capability of CP detection does not differ from that of FastTrack, and that SimpleLock+ generates the lowest overhead among the hybrid detection techniques (Acculock, SimpleLock+, and Multilock-HB) for all benchmark programs. SimpleLock+ is 1.2 times slower than FastTrack on average, but misses one true data race reported from Mutilock-HB on the large-scale benchmark programs.

New execution model for CAPE using multiple threads on multicore clusters

  • Do, Xuan Huyen;Ha, Viet Hai;Tran, Van Long;Renault, Eric
    • ETRI Journal
    • /
    • 제43권5호
    • /
    • pp.825-834
    • /
    • 2021
  • Based on its simplicity and user-friendly characteristics, OpenMP has become the standard model for programming on shared-memory architectures. Checkpointing-aided parallel execution (CAPE) is an approach that utilizes the discontinuous incremental checkpointing technique (DICKPT) to translate and execute OpenMP programs on distributed-memory architectures automatically. Currently, CAPE implements the OpenMP execution model by utilizing the DICKPT to distribute parallel jobs and their data to slave machines, and then collects the results after executing these distributed jobs. Although this model has been proven to be effective in terms of performance and compatibility with OpenMP on distributed-memory systems, it cannot fully exploit the capabilities of multicore processors. This paper presents a novel execution model for CAPE that utilizes two levels of parallelism. In the proposed model, we add another level of parallelism in the form of multithreaded processes on slave machines with the goal of better exploiting their multicore CPUs. Initial experimental results presented near the end of this paper demonstrate that this model provides significantly enhanced CAPE performance.

Design of HUST-PTF beamline control system for fast energy changing

  • Li, Peilun;Li, Dong;Qin, Bin;Zhou, Chong;Han, Wenjie;Liao, Yicheng;Chen, Aote
    • Nuclear Engineering and Technology
    • /
    • 제54권8호
    • /
    • pp.2852-2858
    • /
    • 2022
  • A proton therapy facility is under development at Huazhong University of Science and Technology (HUST). To meet the need for fast energy changes during treatments, a beamline control system (BCS) has been designed and implemented. The BCS coordinates and controls various beamline devices by adopting a distributed architecture divided into three layers: the client, server, and device layers. Among these, the design of the server layer is the key to realize fast energy changes. The server layer adopts the submodule programming paradigm and optimizes the data interface among modules, allowing the main workflow to be separated from the device workflow and data. Furthermore, this layer uses asynchronous, multithreaded, and thread-locking methods to improve the system's ability to operation efficiently and securely. Notably, to evaluate the changing energy status over time, a dynamic node update method is adopted, which can dynamically adjust the update frequency of variable nodes. This method not only meets the demand for fast updates on energy changes but also reduces the server's communication load in the steady state. This method is tested on a virtual platform, and the results are as expected.