• 제목/요약/키워드: 다중스레드 구조

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

효율적인 이중 스레드 자자 프로세서 핵심 (An Effective Dual Threaded Java Processor Core)

  • 정준목;김신덕
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 1998년도 가을 학술발표논문집 Vol.25 No.2 (3)
    • /
    • pp.700-702
    • /
    • 1998
  • 자바(Java)의 수행 성능을 향상시키기 위한 방법으로 자바 프로세서가 제안되었다. 그러나 현재의 자바 프로세서는 자바 가상 머신(Java Virtual Macjine)의 구조만을 고려한 것이다. 본 논문에서는 기존 자바 프로세서의 성능을 향상시키는 자바 프로그래밍에서 사용되는 다중스레드를 직접 지원하는 새로운 자바 프로세서인 동시 다중스레드 자바 칩(Simultaneous Multithreaded Java Chip SMTJC)을 제안한다. SMTJC은 두 개의 독립적인 스레드를 동시에 수행함으로써, 자바 프로그램에서의 명령어 수준 병렬성(Instruction level parallelism)을 향상시킨다. 다중스레드 수행을 위해 새로운 스택 캐쉬의 구조 및 운영 방법을 사용한다. JavaSim을 통한 시뮬레이션은 SMTJC 이 기존 자바 프로세서에 비해 이중 스택 캐쉬와 추가적 처리 유닛들로 인해 1.28~2.00의 전체적 수행 성능이 향상됨을 보여준다. 본 연구는 하드웨어와 소프트웨어의 상호 보안적인 기술적 경향을 배경으로 자바의 언어적 특성을 고려한 프로세서를 설계, 지원함으로써 자바 프로세서의 성능 향상을 도모하고 있다.

  • PDF

정보 검색용 다중 스레드 한국어 형태소 해석기 (A Korean Morphological Analyzer Supports Multi-Threads)

  • 최유경;안동언;정성종
    • 한국정보과학회 언어공학연구회:학술대회논문집(한글 및 한국어 정보처리)
    • /
    • 한국정보과학회언어공학연구회 2001년도 제13회 한글 및 한국어 정보처리 학술대회
    • /
    • pp.41-47
    • /
    • 2001
  • 본 논문에서는 한국어 형태소 해석기에 다중 스레드 기법을 도입하여 다중 처리가 가능하도륵 하였다. 기존의 여러 형태소 해석기들은 언어 분석에만 관심이 있었기 때문에 다량의 문서를 동시에 처리하는 기능을 고려하지 않았다. 그러나 형태소 해석기가 정보 검색 시스템 분야에서 사용되기 시작하면서, 다수의 사용자가 대량의 문서를 처리해야 하는 필요성이 생겼다. 스레드 간에는 메모리 영역과 같은 자원을 공유한다. 이러한 특징 때문에 자칫하면 예상치 못한 결과가 야기될 수 있다. 따라서, 다중 스레드 기법을 사용하기 위해서는 스레드의 특징을 고려한 조치가 필요하다 기존의 한국어 형태소 해석기의 소스 코드를 분석하여 자주 사용되는 전역 변수는 하나의 구조체로 구성하였다. 그리고 이러한 전역 변수와 크기가 큰 지역 변수를 사용할 때 메모리를 동적으로 할당하였다. 또한, 파일에서 입력값을 읽어오거나 파일에 결과값을 쓰는 등 여러 스레드가 접근할 때 값이 변경될 위험이 있는 부분은 조건 변수를 이용하여 동기화 시켰다. 구현된 시스템의 검증을 위하여, 단일 스레드 방식으로 순차적인 처리를 하는 원래의 형태소 해석기와 비교 실험을 실시하였다. 35Kbyte 문서 30개를 처리하는 경우, 다중 처리가 가능한 형태소 해석기가 단일 스레드 방식의 형태소 해석기보다 처리속도가 약 12% 향상되었다.

  • PDF

다중스레드 구조를 위한 함수형 언어의 중첩루프 펼침 (Unfolding Nested Loops of Functional Languages for Multithreaded Architectures)

  • 하상호
    • 한국정보과학회논문지:소프트웨어및응용
    • /
    • 제29권11호
    • /
    • pp.826-836
    • /
    • 2002
  • Id 언어와 같은 함수형 언어의 중천루프에 포함된 미세한 수준의 대규모 병렬성을 다중스레드 구조상에서 이용하려면 프로세서뿐만 아니라, 이름공간을 위한 상당히 말은 기억공간 등의 자원이 추가로 요구된다. 이러한 병렬성을 포함하는 중첩루프론 시스템 자원 제한 없이 무분별하게 펼쳐서 실행하려고 한다면, 실행도중 기억공간의 자원의 고갈로 인하여 프로그램의 실행이 중단될 수 있다. 또한, 루프의 펼침에 따른 부담으로 인하여 프로세서의 수에 비해서 루프를 지나치게 많이 펼치는 경우에, 병렬 수행의 효과가 상당히 떨어질 수 있다. 본 논문에서는 함수형 언어의 중첩루프를 다중스레드 구조상에서 효과적으로 펼쳐서 실행할 수 있는 알고리즘을 제안하고 분석한다. 제안된 알고리즘의 특성은 주어진 중첩루프를 펼칠 시점에 프로세서 수와 기억공간의 현재 사용 가능한 시스템 자원 양에 제한하여 안전하면서도 가능한 최적으로 펼친다는데 있다.

다중 스레드를 이용한 실시간 동판 검사 시스템 (A Real-time Copper Foil Inspection System using Multi-thread)

  • 이재광;최동혁
    • 한국정보과학회논문지:컴퓨팅의 실제 및 레터
    • /
    • 제10권6호
    • /
    • pp.499-506
    • /
    • 2004
  • 제안된 동판 표면 검사 시스템은 PC-기반으로 다중 스레드 기법과 다중 CPU를 이용해 동판 표면의 결함을 실시간으로 검사하는 시스템이다. 초고속 라인 스캔 카메라로 영상 취득 보드에 영상을 실시간으로 취득하여 처리할 때, 더블 버퍼링 방법으로 입출력과 처리가 동시에 수행되어 처리 속도를 높인다. 다중 스레드 기법에서는 시스템 자원 활용과 다중 스레드로 CPU의 사용을 최대화하여 실시간 처리하며, 다중 스레드 구조로도 실시간 처리가 어려운 경우에는 다중 CPU를 사용하여 이를 해결한다. 또한 동판 표면 영상에서 결함 검출하여 분류할 때, 실시간 처리를 만족시키기 위해서 결함영상의 공분산 행렬의 고유치 비율, 명암차 등의 연산으로 분류할 수 있는 방법을 제시한다. 결함의 검출은 조명 불균형에 대한 보상 처리가 적용된 다음 임계치에 의해 검출된다. 검출된 결함은 제안된 분류 방법으로 특징을 분석한 뒤 결함의 형태를 분류한다. 특징은 결함 너비와 고유치 비율, 명암차 등이 사용되었다. 제시된 방법을 검증하기 위해서 총 141개의 결함을 분류하는 실험이 진행되었고, 결과로는 89.4% 성공률을 보였다.

스레드를 이용한 함수 병렬성 추출 (Exploration of Functional Parallelism using threads)

  • 김현철;이성우;류시룡;유기영
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2000년도 가을 학술발표논문집 Vol.27 No.2 (3)
    • /
    • pp.633-635
    • /
    • 2000
  • 본 논문에서는 프로그램을 루프 구조에 근거하여 계층적으로 표현한 HTG (Hierarchical Task Graph)의 복합 노드 태스크들을 공유 메모리 다중처리기 환경에서의 효율적 수행을 위한 새로운 스케쥴링 기법을 제안한다. 단일처리기의 멀티스레드 구조를 비롯한 여러 플랫폼에 적용하기 위해 자바의 스레드를 사용하여 구현하였으며, 기존의 HTG의 함수 병렬성을 위한 비티 벡터 알고리즘과 성능을 비교 분석하였다. 실험 결과에서 보듯이, 제안된 기법이 비트 벡트 방법에 비해 수행 시간 측면에서 효율적임을 알 수 있으며 또한, 좋은 부하 균형을 유지하였다.

  • PDF

EJB에서의 멀티 쓰레드 디자인 (Multithread design of Enterprise Java Beans)

  • 이영지;김태윤
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2001년도 가을 학술발표논문집 Vol.28 No.2 (3)
    • /
    • pp.526-528
    • /
    • 2001
  • EJB는 Sun사에서 발표한 분산 객체 구조에 맞는 서버쪽 컴포넌트 아키텍쳐이다. EJB를 사용하면 다중 네트워크 환경에서 애플리케이tus의 디자인과 개발, 배포가 쉬워진다. 개발자는 하부 사항에 대해 신경쓰지 않고 상위 레벨에서 애플리케이션을 설계할 수 있다. EJB 1.1 명세서는 그러한 내용을 나타내고 있는 명세서이다. 하지만 이 명세에서는 멀티 스레드를 허용하지 않는다. 멀티 스레드는 프로그래밍에서 상당히 유용한 것으로 멀티 스레드를 사용하면 다른 오브젝트에 영향을 주지 않으면서 작업을 수행할 수 있는 등 여러 가지 이점이 많다. 본 논문에서는 이러한 이점을 살려서 명세서에 따르면서 멀티 스레드를 생성하는 방법에 대해 알아보고자 한다. 본 논문에서 제시하는 방법은 3가지이고 각각 장단점이 따른다 .

  • PDF

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

  • 황득영;권오진;최영근
    • 한국정보처리학회논문지
    • /
    • 제5권7호
    • /
    • pp.1730-1745
    • /
    • 1998
  • 순차 Java 프로그램을 병렬 시스템에서 실행할 경우 루프는 전체 수행 시간 중 많은 부분을 차지하므로 병렬성 검출의 기본이 된다. 본 논문은 기존에 작성된 단일 루프 구조를 갖는 Java 프로그래밍 언어에서 종속성 분석을 수행하여 묵시적 병렬성을 검출하는 방법을 제안한다. 또한 재구성 컴파일러에 의하여 병렬 코드를 생성하는 방법과 Java 원시 프로그램을 Java 프로그래밍 언어 자체에서 지원하는 다중스레드 기법으로 변환하는 방법을 제안한다. 스레드 문장으로 변환된 프로그램에 대해 루프의 반복계수와 스레드 수를 매개변수로 하여 성능 분석을 하였다. 재구성 컴파일러에 의한 장점은 사용자의 병렬성 검출에 대한 오버헤드를 줄이고, 순차 Java 프로그램에 대한 효과적인 병렬성 검출을 가능하게 한다.

  • PDF

CC-NUMA 시스템을 위한 다중 스레드 프로세스의 노드 스케줄링 설계 및 구현 (The Node Scheduling of Multi-Threaded Process for CC-NUMA System)

  • 김정녀;김해진;이철훈
    • 한국정보처리학회논문지
    • /
    • 제7권2호
    • /
    • pp.488-496
    • /
    • 2000
  • 본 논문에서는 여러 개의 노드가 상호연결망으로 연결되어 각각의 메모리를 공유하는 CC-MUMA 시스템인 고성능 멀티미디어 서버(MX-Server)상에서 다중 스레드 프로세스의 노드 스케줄링 설계 및 구현 내용을 소개한다. 고성능 멀티미디어 서버의 컴퓨팅 서버용 운영체제인 COSMIX(cache COherent Shared Memory unIX)에서는 서버의 플랫폼에 알맞은 하드웨어 및 시스템 관련하여 CC-NUMA 시스템에 적합한 운영체제 기능을 설계하였다. 고성능 멀티미디어 서버는 최대 8개까지의 노드로 구성된 CC-NUMA 시스템으로 각 노드들은 SCI ring으로 연결된다. 이러한 CC-NUMA 구조의 시스템에서 데이터의 지역성을 고려한 노드 스케줄링 방식으로 Oracle8i와 같은 DBMS의 성능을 높이고자 한다. 고성능 멀티미디어 서버에서는 데이터의 저역성을 고려하여 한 노드에 프로세스를 바인드 하는 기능이 있으나, 그중 다중 스레드로 구성된 프로세스의 바인드 기능은 없다. Oracle 8i와 간츤 DBMS에서는 다중 스레드로 구성된 하나의 프로세스가 일정한 디스크를 점유하여 사용할 수 있으므로 이와 같은 다중 스레드의 프로세스를 해당 디스크가 있는 하나의 노드 즉 cg에 마인드 하는 기능을 구현하였다. 현재는 가용한 플랫폼이 없어서 MX Server 대신 PC 테스트베드를 이용한 CC-NUMA 시스템의 시뮬레이션 환경을 구축하여 다중 스페드의 CG 바인드 기능을 개발하고 그 시험을 완료하였다.

  • PDF

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

  • 황득영;최영근
    • 한국정보처리학회논문지
    • /
    • 제5권8호
    • /
    • pp.1997-2012
    • /
    • 1998
  • 병렬 시스템에서 순차 자바 프로그램을 재 사용할 수 있기 위해서는 자바 프로그램 내에 존재하는 병렬성을 찾아내는 것이 중요하다. 자바 프로그램을 병렬 시스템에서 실행할 경우 루프는 전체 수행 시간 중 많은 부분을 차지하므로 병렬성 검출의 기본이 되지만 데이터 종속으로 인하여 완전한 병렬 수행을 쉽게 이룰 수 없다. 따라서, 본 논문은 기존의 중첩 루프 구조를 갖는 자바 프로그래밍에서 데이터 종속성 분석에 의한 종속 그래프를 구성하여 묵시적 병렬성을 검출하는 방법을 제안한다. 또한 재구성 컴파일러에 의하여 자바 원시 프로그램을 자바 프로그래밍 언어 자체에서 지원하는 다중스레드 기법으로 변환하여 병렬 시스템에서 실행하는 방법을 제안한다. 스레드 문장으로 변환된 프로그램에 대해 루프의 반복계수와 스레드 수를 매개변수로 하여 성능 분석을 하였다. 재구성 컴파일러에 의한 장점은 사용자의 병렬성 검출에 대한 오버해드를 줄이고, 순차 자바 프로그램에 대한 효과적인 병렬성 검출을 가능하게 하여 병렬 시스템에서 실행 시간을 단축할 수 있다.

  • PDF

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

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

  • PDF