• 제목/요약/키워드: Loop Parallelization

검색결과 14건 처리시간 0.024초

On-line Trace Based Automatic Parallelization of Java Programs on Multicore Platforms

  • Sun, Yu;Zhang, Wei
    • Journal of Computing Science and Engineering
    • /
    • 제6권2호
    • /
    • pp.105-118
    • /
    • 2012
  • We propose two new approaches that automatically parallelize Java programs at runtime. These approaches, which rely on run-time trace information collected during program execution, dynamically recompile Java byte code that can be executed in parallel. One approach utilizes trace information to improve traditional loop parallelization, and the other parallelizes traces instead of loop iterations. We also describe a cost/benefit model that makes intelligent parallelization decisions, as well as a parallel execution environment to execute parallelized programs. These techniques are based on Jikes RVM. Our approach is evaluated by parallelizing sequential Java programs, and its performance is compared to that of the manually parallelized code. According to the experimental results, our approach has low overheads and achieves competitive speedups compared to the manually parallelizing code. Moreover, trace parallelization can exploit parallelism beyond loop iterations.

Locality-Conscious Nested-Loops Parallelization

  • Parsa, Saeed;Hamzei, Mohammad
    • ETRI Journal
    • /
    • 제36권1호
    • /
    • pp.124-133
    • /
    • 2014
  • To speed up data-intensive programs, two complementary techniques, namely nested loops parallelization and data locality optimization, should be considered. Effective parallelization techniques distribute the computation and necessary data across different processors, whereas data locality places data on the same processor. Therefore, locality and parallelization may demand different loop transformations. As such, an integrated approach that combines these two can generate much better results than each individual approach. This paper proposes a unified approach that integrates these two techniques to obtain an appropriate loop transformation. Applying this transformation results in coarse grain parallelism through exploiting the largest possible groups of outer permutable loops in addition to data locality through dependence satisfaction at inner loops. These groups can be further tiled to improve data locality through exploiting data reuse in multiple dimensions.

A Loop Transformation for Parallelism from Single Loops

  • Jeong, Sam-Jin
    • International Journal of Contents
    • /
    • 제2권4호
    • /
    • pp.8-11
    • /
    • 2006
  • This paper describes several loop partitioning techniques such as loop splitting method by thresholds and Polychronopoulos' loop splitting method for exploiting parallelism from single loop which already developed. We propose improved loop splitting method for maximizing parallelism of single loops with non-constant dependence distances. By using the distance for the source of the first dependence, and by our defined theorems, we present generalized and optimal algorithms for single loops with non-uniform dependences. The algorithms generalize how to transform general single loops into parallel loops.

  • PDF

Parallelizing Imperfectly Nested Loops

  • Kim, Ki-Chang
    • Journal of Electrical Engineering and information Science
    • /
    • 제1권1호
    • /
    • pp.140-150
    • /
    • 1996
  • Loops are some of the richest program constructs where parallelism is available. Exploiting fine-grain parallelizm out these constructs is particularly important in light of the growing popularity of superscalar and VLIW machines. This paper explains how the fine-grain parallelization techniques can be generalized to handle nested loops. Our technique integrates nested loop parallelization techniques at the fine-grain level, thus exposing more fine-grain parallelism, and is flexible enough to handle non-perfectly nested loops. Examples and some experimental results are presented to illustrate our approach.

  • PDF

GPGPU 기반 조인 연산 병렬화 성능 비교 (Performance Comparison of Join Operations Parallelization by using GPGPU)

  • 이종섭;이상백;이규철
    • 데이타베이스연구회지:데이타베이스연구
    • /
    • 제34권3호
    • /
    • pp.28-44
    • /
    • 2018
  • 데이터베이스 시스템 관계 연산자 중에서 연산 비용이 가장 비싼 연산은 조인 연산이다. 일반적으로 CPU 기반의 조인 연산의 경우에는 하나의 코어를 사용하거나 많게는 16개 정도의 코어를 사용하여 병렬 처리를 해서 병렬화에 따른 성능 향상이 크지 않다. 이에 반해, GPGPU(General-Purpose computing on Graphics Processing Units)는 수천 개의 프로세싱 유닛을 통한 병렬 처리가 가능해서 조인 연산 수행 시간을 크게 단축할 수 있다. 본 논문에서는 GPGPU 기반에서 조인 연산 병렬화를 구현하기 위해 NVIDIA의 CUDA SDK가 사용되며, CPU 기반과 GPGPU 기반에서의 조인 연산 성능을 측정한다. 사용되는 조인 연산은 NLJ (Nested Loop Join), SMJ (Merge Join), HJ (Hash Join)이며, GPGPU 장비는 TITAN Xp, GTX 1080 Ti 및 GTX 1080을 사용한다. CPU 기반과 GPGPU 기반의 성능을 비교하고, GPGPU 기반의 조인 연산과 이전 연구의 성능과의 성능을 비교한다. 마지막으로, 실험 결과는 GPGPU 기반의 성능이 CPU 기반의 성능보다 6~328 배 빠른 성능을 보였고 향후 연구의 방향성에 대하여 토의한다.

자료 종속성 제거 방법을 이용한 프로시저 변환 (The Procedure Transformation using Data Dependency Elimination Methods)

  • 장유숙;박두순
    • 정보처리학회논문지A
    • /
    • 제9A권1호
    • /
    • pp.37-44
    • /
    • 2002
  • 기존의 순차 프로그램에서 병렬성을 추출하는 연구들은 하나의 프로시저 내 변환에 치중되고 있다. 그러나 대부분의 프로그램들은 프로시저간 잠재된 병렬성을 가지고 있다. 본 논문에서는 자료 종속성 제거방법을 이용하여 프로시저 호출을 가진 루프에서 병렬성 추출 방식을 제안한다. 프로시저 호출을 포함하는 루프의 병렬화는 대부분 자료종석거리가 uniform 형태의 코드에서만 연구되었다. 본 논문에서는 자료종속거리가 uniform 코드와 nonuniform 코드에 대해 모두 적용 가능한 프로시저 간 변환 방법을 제시하였으며, 제시된 알고리즘의 성능평가를 위하여 CRAY T3E에서 성능평가하였고, 제시된 방법이 효과적임을 보였다.

OpenCL을 활용한 CPU와 GPU 에서의 CMMB LDPC 복호기 병렬화 (Parallel LDPC Decoder for CMMB on CPU and GPU Using OpenCL)

  • 박주열;홍정현;정기석
    • 대한임베디드공학회논문지
    • /
    • 제11권6호
    • /
    • pp.325-334
    • /
    • 2016
  • Recently, Open Computing Language (OpenCL) has been proposed to provide a framework that supports heterogeneous computing platforms. By using an OpenCL framework, digital communication systems can support various protocols in a unified computing environment to achieve both high portability and high performance. This article introduces a parallel software decoder of Low Density Parity Check (LDPC) codes for China Multimedia Mobile Broadcasting (CMMB) on a heterogeneous platform. Each step of LDPC decoding has different parallelization characteristics. In this paper, steps suitable for task-level parallelization are executed on the CPU, and steps suitable for data-level parallelization are processed by the GPU. To improve the performance of the proposed OpenCL kernels for LDPC decoding operations, explicit thread scheduling, loop-unrolling, and effective data transfer techniques are applied. The proposed LDPC decoder achieves high performance by using heterogeneous multi-core processors on a unified computing framework.

프로시저 호출을 가진 루프에서 병렬성 추출 (The Parallelism Extraction in Loops with Procedure Calls)

  • 장유숙;박두순
    • 한국멀티미디어학회논문지
    • /
    • 제4권3호
    • /
    • pp.270-279
    • /
    • 2001
  • 프로그램 수행 시간의 대부분이 루프 구조에서 소비되고 있기 때문에 루프 구조를 가진 순차 프로그램에서 병렬성을 추출하는 연구들이 많이 행해지고 있고 그 연구들은 하나의 프로시저 내 루프 구조의 변환에 치중되고 있다. 그러나 대부분의 프로그램들은 프로시저 간 잠재된 병렬성을 가지고 있다. 본 논문에서는 프로시저 호출을 가진 루프에서 병렬성 추출 방식을 제안한다. 프로시저 호출을 포함하는 루프의 병렬화는 대부분 자료종속거리가 uniform 형태의 코드에서만 집중되었다. 본 논문에서는 자료종속거리가 uniform 코드, nonuniform 코드 그리고 복합된(complex) 코드를 가진 프로그램에서 적용 가능한 알고리즘을 제시하였으며, 제안된 알고리즘과 loop extraction, loop embedding 그리고 procedure cloning 변환 방법을 CRAY-T3E로 성능 평가하였다. 성능평가 결과는 제안된 알고리즘이 효율적이라는 것을 보여준다.

  • PDF

병렬 계산을 위한 프로시저 전환 (Interprocedural Transformations for Parallel Computing)

  • 장유숙;박두순
    • 인터넷정보학회논문지
    • /
    • 제2권4호
    • /
    • pp.91-99
    • /
    • 2001
  • 프로그램 수행시간의 대부분이 루프 구조에서 소비되고 있기 때문에 루프 구조를 가진 순차 프로그램에서 병렬성을 추출하는 연구들이 많이 행해지고 있고 그 연구들은 하나의 프로시저 내 루프 구조의 변환에 치중되고 있다. 그러나 대부분의 프로그램들은 프로시저 간 잠재된 병렬성을 가지고 있다. 본 논문에서는 프로시저 호출을 가진 루프에서 병렬성 추출 방식을 제안한다. 프로시저 호출을 포함하는 루프의 병렬화는 대부분 자료종속거리가 uniform 형태의 코드에서만 집중되었다. 본 논문에서는 자료종속거리가 uniform 코드, nonuniform 코드 그리고 복합된(complex) 코드를 가진 프로그램에서 적용 가능한 알고리즘을 제시하였으며, 제안된 알고리즘과 loop extraction, loop embedding 그리고 procedure cloning변환 방법을 CRAY-T3E로 성능 평가하였다. 성능평가 결과는 제안된 알고리즘이 효율적이라는 것을 보여준다.

  • PDF

The Accuracy of the Non-continuous I Test for One-Dimensional Arrays with References Created by Induction Variables

  • Zhang, Qing
    • Journal of Information Processing Systems
    • /
    • 제10권4호
    • /
    • pp.523-542
    • /
    • 2014
  • One-dimensional arrays with subscripts formed by induction variables in real programs appear quite frequently. For most famous data dependence testing methods, checking if integer-valued solutions exist for one-dimensional arrays with references created by induction variable is very difficult. The I test, which is a refined combination of the GCD and Banerjee tests, is an efficient and precise data dependence testing technique to compute if integer-valued solutions exist for one-dimensional arrays with constant bounds and single increments. In this paper, the non-continuous I test, which is an extension of the I test, is proposed to figure out whether there are integer-valued solutions for one-dimensional arrays with constant bounds and non-sing ularincrements or not. Experiments with the benchmarks that have been cited from Livermore and Vector Loop, reveal that there are definitive results for 67 pairs of one-dimensional arrays that were tested.