• Title/Summary/Keyword: 다중스레드

Search Result 80, Processing Time 0.02 seconds

Exploiting implicit Parallelism for Single Loops in Java Programming Language (Java 프로그래밍에서 단일 루프 구조의 병렬성 검출)

  • Hwang, Deuk-Yeong;Gwon, O-Jin;Choe, Yeong-Geun
    • The Transactions of the Korea Information Processing Society
    • /
    • v.5 no.7
    • /
    • pp.1730-1745
    • /
    • 1998
  • 순차 Java 프로그램을 병렬 시스템에서 실행할 경우 루프는 전체 수행 시간 중 많은 부분을 차지하므로 병렬성 검출의 기본이 된다. 본 논문은 기존에 작성된 단일 루프 구조를 갖는 Java 프로그래밍 언어에서 종속성 분석을 수행하여 묵시적 병렬성을 검출하는 방법을 제안한다. 또한 재구성 컴파일러에 의하여 병렬 코드를 생성하는 방법과 Java 원시 프로그램을 Java 프로그래밍 언어 자체에서 지원하는 다중스레드 기법으로 변환하는 방법을 제안한다. 스레드 문장으로 변환된 프로그램에 대해 루프의 반복계수와 스레드 수를 매개변수로 하여 성능 분석을 하였다. 재구성 컴파일러에 의한 장점은 사용자의 병렬성 검출에 대한 오버헤드를 줄이고, 순차 Java 프로그램에 대한 효과적인 병렬성 검출을 가능하게 한다.

  • PDF

Transform Nested Loops into MultiThread in Java Programming Language for Parallel Processing (자바 프로그래밍에서 병렬처리를 위한 중첩 루프 구조의 다중스레드 변환)

  • Hwang, Deuk-Young;Choi, Young-Keun
    • The Transactions of the Korea Information Processing Society
    • /
    • v.5 no.8
    • /
    • pp.1997-2012
    • /
    • 1998
  • It is necessary to find out the parallelism in tlle sequential Java program to execute it on the parallel machine. The loop is a fundamental source to exploit parallelism as it process a large portion of total execution time in sequential Java program on the parallel machine. However, a complete parallel execution can hardly be achieved due to data dependence. This paper proposes the method of exploiting the implicit parallelism by structuring a dependence graph through the analysis of data dependence in the existing Java programming language having a nested loop structure. The parallel code generation method through the restructuring compiler and also the translation method of Java source program into multithread statement. which is supported by the Java programming language itself, are proposed here. The perforance evaluatlun of the program translaed into the thread statement is conducted using the trip cunt of loop and the trip Count of luop and the thread count as parameters The resttucturing compiler provides efficient way of exploiting parallelism by reducing manual overhead conveliing sequential Java program into parallel code. The execution time for the Java program as a result can be reduced un the parallel machine.

  • PDF

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

  • Song, Jong-Hun;Kim, Heung-Hwan;Han, Sang-Yeong
    • Journal of KIISE:Computing Practices and Letters
    • /
    • v.5 no.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.

Multithread design of Enterprise Java Beans (EJB 애플리케이션을 위한 멀티 쓰레드 구현 방법에 대한 연구)

  • Lee, Young-Ji;Kim, Tae-Yoon
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2001.10b
    • /
    • pp.1557-1560
    • /
    • 2001
  • EJB는 Sun사에서 발표한 분산 객체 구조에 맞는 서버쪽 컴포넌트 아키텍처이다. EJB를 사용하면 다중 네트워크 환경에서 애플리케이션의 디자인과 개발, 배포가 쉬워진다. 개발자는 하부 사항에 대해 신경쓰지 않고 상위 레벨에서 애플리케이션을 설계할 수 있다. EJB 1.1 명세서는 그러한 내용을 나타내고 있는 명세서이다. 하지만 이 명세에서는 멀티 스레드를 허용하지 않는다. 멀티 스레드는 프로그래밍에서 상당히 유용한 것으로 멀티 스레드를 사용하면 다른 오브젝트에 영향을 주지 않으면서 작업을 수행할 수 있는 등 여러 가지 이점이 많다. 본 논문에서는 이러한 이점을 살려서 명세서에 따르면서 멀티 스레드를 생성하는 방법에 대해 알아보고자 한다 본 논문에서 제시하는 방법은 클라이언트 쪽에서 멀티 스레딩을 생성하는 방법, 콜백 서비스를 이용하는 방법, 메세징 서비스를 이용하는 방법 3가지이고 각각에는 장단점이 따른다. 따라서 실제 구현 시에는 각자의 요구 사항에 맞춰 알맞은 방법을 찾아야 한다.

  • PDF

Thread Block Scheduling for Multi-Workload Environments in GPGPU (다중 워크로드 환경을 위한 GPGPU 스레드 블록 스케줄링)

  • Park, Soyeon;Cho, Kyung-Woon;Bahn, Hyokyung
    • The Journal of the Institute of Internet, Broadcasting and Communication
    • /
    • v.22 no.2
    • /
    • pp.71-76
    • /
    • 2022
  • Round-robin is widely used for the scheduling of large-scale parallel workloads in the computing units of GPGPU. Round-robin is easy to implement by sequentially allocating tasks to each computing unit, but the load balance between computing units is not well achieved in multi-workload environments like cloud. In this paper, we propose a new thread block scheduling policy to resolve this situation. The proposed policy manages thread blocks generated by various GPGPU workloads with multiple queues based on their computation loads and tries to maximize the resource utilization of each computing unit by selecting a thread block from the queue that can maximally utilize the remaining resources, thereby inducing load balance between computing units. Through simulation experiments under various load environments, we show that the proposed policy improves the GPGPU performance by 24.8% on average compared to Round-robin.

Deterministic Testing of Java Multi-Threaded Programs through Program Transformation (프로그램 변환을 통한 Java 다중 스레드 프로그램의 결정적 테스팅)

  • Chung, In-Sang
    • Journal of KIISE:Software and Applications
    • /
    • v.27 no.6
    • /
    • pp.607-617
    • /
    • 2000
  • Concurrent programs, which are composed of threads that can operate concurrently, are intrinsically nondeterministic. Therefore, we can not directly apply classical testing or debugging techniques developed for sequential programs to concurrent programs because of the nonreproducibility due to nondeterminism. In this paper, we present a source tranformation method to guarantee the reproducibility of multi-threaded programs written in Java programming language. Once a mutli-threaded program has been transformed according to the transformation rules, we can force the program's execution to follow the given sequence of synchronized methods repeatedly and reduce the efforts to find the source of the errors. In addition, we present a method for checking the feasibility of the synchronized method sequence to be replayed.

  • PDF

Fixed Multi-Thread Polling based Dynamic Bandwidth Allocation in Long-Reach PON (LR-PON에서 고정형 다중 스레드 기반의 동적대역할당)

  • Choi, Su-il;Kim, Jinsul
    • Journal of Digital Contents Society
    • /
    • v.18 no.6
    • /
    • pp.1207-1211
    • /
    • 2017
  • Long-Reach PON (LR-PON) is a broadband access network using passive optical network (PON) technology which the reach is extended to 100 km or higher. A major challenge in LR-PON is that the propagation delay between OLT and ONUs is increased by a very significant amount. To effectively and fairly distribute the upstream bandwidth dynamically in LR-PON, we propose a new periodic and multi-thread polling based dynamic bandwidth allocation (DBA) algorithm. We compare the proposed algorithm with traditional DBAs and show its advantage on average packet delay. Numerical results are analyzed under varying offered loads.

Requirements for Code-Based Model Checking for Embedded Software (임베디드 소프트웨어를 위한 코드 기반 모델 체킹 도구의 요구사항)

  • Lee Taehoon;Kwon Gihwon
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2004.11a
    • /
    • pp.327-330
    • /
    • 2004
  • 테스팅이 오류의 존재를 증명할 수 있는데 반해서, 정형 검증 기술은 시스템에 오류가 존재하지 않음을 증명할 수 있다. 모델 체킹은 이런 정형 검증 기술 중의 하나이다. 최근에 모델 체킹을 이용하여 코드를 자동으로 검증하려는 연구들이 많다. 하지만 이런 연구는 일반적인 환경에서의 검사만을 할 수 있다. 반면에 임베디드 소프트웨어는 실시간성, 외부 환경, 다중 스레드 등의 다양한 특성이 존재한다. 따라서 임베디드 소프트웨어와 같이 안전한 소프트웨어 시스템을 필요로 하는 환경을 위한 모델 체킹을 수행하기는 힘들다. 본 논문에서는 임베디드 소프트웨어에 대한 모델체킹 도구가 검증할 수 있어야 하는 실시간 시스템의 검증, 외부 환경에 대한 고려, 다중 스레드 시스템의 검증 등을 설명하고, 기존 도구들이 얼마나 만족하고 있는지 조사해본다.

  • PDF

Implementation Real-Time High Quality Image Transmission and Receiving System using MPEG2 Multiplexing (MPEG2 다중화 방식을 이용한 실시간 고화질 이미지 송.수신 시스템 구현)

  • Kim, Sang-Su;Hwang, Chi-Jung
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2007.10b
    • /
    • pp.274-279
    • /
    • 2007
  • 본 논문은 MPEG2 다중화 방식을 이용한 고화질 이미지를 실시간으로 송수신하는 시스템을 제안한다. 송신 시스템은 카메라로부터 획득한 고화질 이미지와 GPS 장비로부터 획득한 위치정보를 MPEG2 TS 방식으로 변환하여 전송한다. 수신 시스템은 송신되는 MPEG2 TS data를 실시간으로 고화질 이미지와 위치정보로 추출한 후에 화면에 display한다. 본 논문에서는 오류 발생에 대한 회피 방법으로 고화질 이미지를 포함한 패킷을 단순히 중복적으로 전송하는 방법을 사용하였다. 이러한 방법은 신호의 왜곡 혹은 패킷 손실에 의해 발생되었던 오류들을 현저하게 줄여주었으나 한 장의 고화질 이미지에 대한 평균 처리시간을 증가하였다. 평균 처리 시간을 줄이기 위해 송신 시스템은 스레드를 이용한 전송 방법을 사용하였으며 이러한 방법의 사용은 스레드 기법을 사용하지 않았을 때보다 빠른 평균 처리시간을 측정할 수 있었다.

  • PDF

A Device of Parallelism Control in POSIX Based Parallelization of Recursive Algorithms (POSIX스레드에 의한 재귀적 알고리즘의 병렬화에서 병렬성 제어 방안)

  • Lee, Hyung-Bong;Baek, Chung-Ho
    • The KIPS Transactions:PartA
    • /
    • v.9A no.2
    • /
    • pp.249-258
    • /
    • 2002
  • One of the jai or purposes of multiprocessor system is to get a high efficiency in performance improvement. But in most cases, it is unavoidable to use some special programming languages or tools for full use of multiprocessor system. In general, loop and recursive call statements of algorithms are considered as typical parts for parallelization. Especially, recursive call statements are easy to parallelize conceptually without support of any special languages or tools. But it is difficult to control the degree of parallelism caused by high depth of recursive call leading to execution crash. This paper proposes a device to control Parallelism in the process of POSIX thread bated parallelization of recursive algorithms. For this, we define the concept of thread and process in UNIX system, and analyze the results of experimental application of the device to quick sorting algorithm.