• 제목/요약/키워드: 공유메모리 병렬프로그램

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

메모리 상주 DBMS 기반의 OLTP 응용을 위한 다중프로세서 시스템 캐쉬 성능 분석 (Cache Performance Analysis of Multiprocessor Systems for OLTP Applications based on a Memory-Resident DBMS)

  • 정용화;한우종;윤석한;박진원;이강우;김양우
    • 한국정보과학회논문지:컴퓨팅의 실제 및 레터
    • /
    • 제6권4호
    • /
    • pp.383-392
    • /
    • 2000
  • 다중프로세서 시스템에 대한 대부분의 기존 연구는 과학계산용 응용을 중심으로 수행되어 왔으며, 또 다른 응용 분야인 상용 응용을 이용한 연구는 아직까지 초보 단계에 머물고 있는 실정이다. 이는 상용 DBMS의 소스 프로그램을 액세스하기가 쉽지 않으며, POSTGRES와 같은 공개된 소스 프로그램을 액세스 할 수 있더라도 컴퓨터 구조 설계자가 수십만 라인의 그 소스 프로그램을 이해하여 의미있는 성능분석을 수행하기는 사실상 불가능하기 때문이다. 본 연구에서는 상용 응용을 이용하여 다중프로세서 시스템을 분석하기 위하여, SQL로 작성된 병렬 프로그램을 아키텍처 시뮬레이터 상에서 수행할 수 있는 EZDB라는 병렬 DBMS를 자체 개발하였다. EZDB가 POSTGRES와 다른점은 그 목적이 다중프로세서 시스템에서 상용 응용을 수행시키고 그 성능을 쉽게 분석할 수 있다는 점이다. EZDB의 유용함을 확인하기 위해, 본 논문에서는 다중프로세서 시스템에서 TPC-B 작업부하를 수행시켰을 때의 캐쉬 성능을 분석한다. 구축된 작업부하를 기반으로 프로그램 구동 시뮬레이션을 수행한 결과, 상용 응용에서 데이터 구조의 공유 특성이 매우 특별하며 국부성 및 작업 세트가 과학계산 응용의 경우와 매우 상이함을 확인하였다.

  • PDF

고성능 웹크롤러의 설계 및 구현 (Design and Implementation of a High Performance Web Crawler)

  • 김희철;채수환
    • 디지털콘텐츠학회 논문지
    • /
    • 제4권2호
    • /
    • pp.127-137
    • /
    • 2003
  • 웹크롤러는 인터넷 검색엔진을 포함한 다양한 웹 응용프로그램에 활용되는 중요한 인터넷 소프트웨어 기술이다. 인터넷의 급격한 성장에 따라 고성능 웹크롤러의 구현이 시급히 요구되고 있다. 이를 위해서는 웹크롤러에 대한 성능확장성에 초점을 둔 연구가 수행되어야 한다. 본 논문에서는 병렬 프로세스 기반 웹크롤러(Crawler)의 성능향상에 필수적인 동적 스케줄링의 구현 기법을 제안한다. 웹크롤러는 웹문서의 수집 성능요구를 만족시키기 위하여 일반적으로 다중 프로세스 기반으로 설계되고 있다. 이러한 다중 프로세스 기반의 설계에서 프로세스 별로 문서수집 대상을 적정하게 선택하여 할당하는 크롤 스케줄링(Crawl Scheduling)은 시스템의 성능향상에 매우 중요한 요소이라. 본 논문에서는 먼저 크롤 스케줄링에 있어 중요한 문제점들에 대한 연구 결과를 제시한 후 공유메모리 기반 동적 스케줄링 지원 기법을 고안, 이를 구현하는 웹 크롤러 시스템 구조(Architecture)를 제안한다. 본 논문에서는 동적 스케줄링 지원 기능을 갖는 웹크롤러의 설계 및 구현에 대하여 기술한다.

  • PDF

중앙 큐 기반의 루프 스케쥴링 기법의 설계 및 구현 (Design and Implementation of the Central Queue Based Loop Scheduling Method)

  • 김현철;김효철;유기영
    • 전자공학회논문지CI
    • /
    • 제38권5호
    • /
    • pp.16-26
    • /
    • 2001
  • 본 논문에서는 루프의 반복들간에 종속 관계가 존재하는 루프의 효율적 수행을 위한 중앙 큐 기반의 새로운 할당 기법 CDSS(Carreid-Dependence Self Scheduling)를 제안하며, 이를 공유 메모리 환경에서 Java 언어로 구현하였다. 또한, 중앙 작업 큐 기반의 병렬 루프를 위한 셀프 스케쥴링(self-scheduling) 기법들을 루프 캐리 종속성(loop-carried dependence)을 가진 루프의 할당에 적용하기 위한 그들의 변형에 대해 알아본다. 제안된 기법은 종속 거리에 따른 동기화 시점을 고려하여 루프를 세 단계별로 할당하는 셀프 스케쥴링 기법이다. 단일처리기 시스템을 포함한 여러 플랫폼에 적용하기 위해 제안된 방법과 변형된 기법들을 스레드 레벨로 구현하였다. 응용 프로그램과 시스템 파라메터 값을 다양하게 하여 변형된 기법들과 비교 분석한 결과, 제안된 기법은 변형된 다른 기법들에 비해 스케쥴링 오버헤드를 포함한 전체 루프의 수행 시간을 줄여 효율적이다. 변형된 SS, Factoring, GSS, CSS에 대해 각각 0.02, 40.5, 46.1, 53.6%의 성능 향상을 보였다. 그리고, CDSS 기법으로 다양한 응용 프로그램에 대해 종속 거리에 해당하는 적은 수의 스레드를 사용하여 최대의 성능을 얻을 수 있다.

  • PDF

CUDA와 OPenMP를 이용한 빠르고 효율적인 신경망 구현 (Fast and Efficient Implementation of Neural Networks using CUDA and OpenMP)

  • 박안진;장홍훈;정기철
    • 한국정보과학회논문지:소프트웨어및응용
    • /
    • 제36권4호
    • /
    • pp.253-260
    • /
    • 2009
  • 컴퓨터 비전이나 패턴 인식 분야에서 이용되고 있는 많은 알고리즘들이 최근 빠른 수행시간을 위해 GPU에서 구현되고 있지만, GPU를 이용하여 알고리즘을 구현할 경우 크게 두 가지 문제점을 고려해야 한다. 첫째, 컴퓨터 그래픽스 분야의 지식이 필요한 쉐이딩(shading) 언어를 알아야 한다. 둘째, GPU를 효율적으로 활용하기 위해 CPU와 GPU간의 데이터 교환을 최소화해야 한다. 이를 위해 CPU는 GPU에서 처리할 수 있는 최대 용량의 데이터를 생성하여 GPU에 전송해야 하기 때문에 CPU에서 많은 처리시간을 소모하며, 이로 인해 CPU와 GPU 사이에 많은 오버헤드가 발생한다. 본 논문에서는 그래픽 하드웨어와 멀티코어(multi-core) CPU를 이용한 빠르고 효율적인 신경망 구현 방법을 제안한다. 기존 GPU의 첫 번째 문제점을 해결하기 위해 제안된 방법은 복잡한 쉐이팅 언어 대신 그래픽스적인 기본지식 없이도 GPU를 이용하여 응용프로그램 개발이 가능한 CUDA를 이용하였다. 두 번째 문제점을 해결하기 위해 멀티코어 CPU에서 공유 메모리 환경의 병렬화를 수행할 수 있는 OpenMP를 이용하였으며, 이의 처리시간을 줄여 CPU와 GPU 환경에서 오버 헤드를 최소화할 수 있다. 실험에서 제안된 CUDA와 OpenMP기반의 구현 방법을 신경망을 이용한 문자영역 검출 알고리즘에 적용하였으며, CPU에서의 수행시간과 비교하여 약 15배, GPU만을 이용한 수행시간과 비교하여 약 4배정도 빠른 수행시간을 보였다.