완화된 순차

Relaxed sequential

컴퓨터 과학에서 완화된 순차적 연속성은 병렬 프로그램이 순차적으로 실행되는 능력을 설명하는 실행 모델이다.병렬 프로그램이 유효한 순차 실행을 가지고 있다면 완화된 순차 실행 모델을 따른다고 한다.그것은 효율적일 필요가 없다.

릴렉스라는 단어는 직렬 프로그램이 실제로 암묵적인 직렬 종속성(프로그램 카운터 등)에 의해 지나치게 제약되고, 순차적으로 실행할 수 있는 능력을 제거하지 않고도 가능한 한 많은 병렬주의를 도입할 수 있다는 개념을 말한다.당신은 이 모델이 가능한 한 느긋하고 여전히 한 가닥의 실에서 올바르게 작동할 수 있다고 생각할 수 있다.그것이 목표다.

대부분의 병렬 프로그램은 순차적으로 실행될 수 있지만, 병렬 프로그램이 있을 경우 병렬 처리의 이점을 얻을 수 있다.올바른 행동을 위해 병렬화가 필요한 프로그램을 설계하는 것이 가능하다.두 개 이상의 스레드를 요구하기 위해 구현되는 생산자-소비자와 같은 알고리즘은 동시성이 제대로 작동하도록 요구하는 하나의 예다.예를 들어, 세 가지 항목만 담을 수 있는 경계 컨테이너와 "PUT PUT PUT PUT PUT"를 실행하는 한 개의 쓰레드와 "GET GET GET GET"를 실행하는 다른 하나의 프로그램을 한 번에 네 개씩만 사용하는 것을 고려해 보자.그런 프로그램에는 인터리빙(통화)이 필요하다.동시성이 필요한 프로그램은 디버깅이 더 어렵다.유효한 순차 실행 프로그램을 디버깅하는 것이 더 쉽다.

동시성을 요구하도록 고안된 프로그램은 디버깅하기가 더 어렵다.동시성을 요구하도록 설계된 프로그램들은 시간 슬라이싱 공예품들이 큰 타격을 입을 수 있기 때문에 필요한 스레드 수가 하드웨어 스레드 수를 초과할 때 성능 문제가 발생할 것이다.

참고 항목

참조

  • 재색인, 제임스, 인텔 스레딩 빌딩 블록: Multi-core Processor Parallelism, First Edition에 적합한 C++.오릴리 미디어, 2007년 ISBN978-0-596-51480-8169-170페이지.