병렬 처리로 복잡성 감소


10

입력 크기와 관련하여 여러 프로세서가 필요하지 않은 병렬 알고리즘을 사용하여 문제의 계산 복잡성을 줄일 수 있습니까 (예 : 슬래시 제공)?


질문을 좀 더 명확히 해 주시겠습니까? 아주 일정한 수의 프로세서-> 기껏해야 일정한 요인으로 실행 시간을 향상시킬 수 있습니다. 나는 이것이 당신이 의미하는 것이 아닌 것 같습니까?
Jukka Suomela 18 23:10

"입력 크기와 관련이 없습니다". 그게 정확히 무엇을 의미합니까? O (1)?
Aryabhata

나는 O (1) 프로세서를 의미합니다. @ Juka : 즉, 입력 크기와 관련하여 많은 프로세서를 추가해야만 계산 복잡성을 줄일 수 있습니까?
Nick Larsen

답변:


12

O (1) 프로세서를 의미하는 경우 아니요, 계산 복잡성을 줄일 수 없습니다.

각 프로세서에서 수행 한 작업을 간단히 정렬하여 단일 프로세서에서 수행하십시오. 동기화가 걱정된다면 한 프로세서가이를 쉽게 에뮬레이트 할 수 있습니다.


빠른 답변 감사합니다. 밀접한 관련이있는 것에 대한 또 다른 질문을 만들지 않으면 입력 크기 이외의 다른 프로세서에 비해 많은 프로세서를 사용하여 계산 복잡성을 줄일 수 있습니까?
Nick Larsen

2
@Nick : 입력 크기 이외의 다른 것은 O (1) :-)
Aryabhata

고마워, 나는 다른 것을 생각하는 데 어려움이 있었지만 확신하고 싶었다.
Nick Larsen

WRT 입력 크기가 아닌 다른 수량으로 증가하는 여러 프로세서로 속도를 높일 수 있는지 여부는 대답이 '아니요'인지 확실하지 않습니다. 입력 크기가 다르지만 (상관되지는 않지만) 일부 매개 변수로 인해 복잡성이 커지는 문제가 있습니다. 예를 들어 일부 그래프 문제에 대해 그래프의 트리 너비와 관련된 여러 프로세서를 허용 한 경우 어떻게됩니까?
Aaron Roth

@Aaron : 허용 된 프로세서 수가 입력과 관련이있는 경우에는 "아니요"라고 말할 수 없습니다. 물론 우리가 구체적이지 않다면 의미가없는 질문입니다.
Aryabhata

6

실행 시간 (및 다른 연산 리소스 소모)가 독립 파라미터의 함수로서 간주 대단위 병렬 알고리즘의 새로운 필드가 N (입력 크기) 및 P 종종 천연 가정하에 (프로세서의 개수), N는 >> p .

좋은 시작점은 구글이 "bulk-synchronous parallelism"을 시작하는 것입니다.


하드웨어가 입력 데이터로 확장되도록 허용하면 복잡성 클래스가 변경 될 수 있습니까? 나는 평신도로서 구글에 문제가 있습니다 : /
Gerenuk


1

태스크를 (여기서 p 는 상수) 프로세서에 분배하는 경우

이어서 복잡 할 수있다 C = 1 / P .영형(에프()/)영형((1/)에프())영형(에프())영형(에프())=1/

/+에스영형미디엄이자형미디엄영형아르 자형이자형나는미디엄이자형

그러나 복잡한 변화는 없습니다.


1

"1 개의 프로세서로 계산할 수 없지만 2로 계산할 수 있습니다."

두 프로세서가 모두 TM이거나 덜 강력한 모델이라고 가정하면 불가능합니다. 다중 테이프 기계의 경우 wikipedia에서 :

이 모델은 직관적으로 단일 테이프 모델보다 훨씬 강력 해 보이지만 k의 크기에 관계없이 모든 다중 테이프 시스템은 2 배 더 많은 계산 시간을 사용하여 단일 테이프 시스템으로 시뮬레이션 할 수 있습니다 (Papadimitriou 1994, Thrm 2.1)

Walter J. Savitch와 Paul MB Vitányi의 "헤드가있는 멀티 헤드 튜링 머신의 선형 시간 시뮬레이션"에서 멀티 헤드 머신의 경우 :

이 백서의 주요 결과는 테이프 당 여러 개의 읽기 / 쓰기 헤드가 있고 추가로 한 번의 이동 이동 조작이있는 튜링 머신에서 "주어진 헤드를 다른 특정 헤드의 위치로 이동"하면 효과적으로 구성 할 수 있음을 보여줍니다. 테이프 당 단일 읽기 / 쓰기 헤드가있는 멀티 테이프 튜링 머신으로 선형 시간으로 시뮬레이션합니다. 즉, 원래 기계가 시간 T (n)에서 작동하면, 시뮬레이션 기계는 일정한 c 동안 시간 cT (n)에서 작동 할 것이다.


여기 추상화 비용에 대한 훌륭한 예가 있습니다. 실제 컴퓨터 (RM의 구현으로서)는 TM보다 병렬화 될 수 있습니다.
Raphael

RM의 약자 그것이 틀린 유형이고 TM을 의미한다면, 나는 동의하지 않습니다. 멀티 테이프 / 멀티 헤드 TM은 프로세서 통신과 Amdahl의 법칙에 대해 걱정할 필요가 없습니다. 또한 컴퓨터가 어떻게 랜덤 액세스 TM보다 성능이 우수하고 그 반대인지는 알 수 없습니다.
chazisop

0

아마도 "병렬 또는"(부울을 반환하는 두 함수가 주어졌지만 둘 중 하나가 종료되지 않을 수 있으므로 둘 중 하나가 true를 반환하는지 여부를 알려줍니다)는 당신이 말하고있는 것일 수 있습니다. 1 개의 프로세서로 2 개로 계산할 수 있습니다.

그러나 이것은 프로세스에 블랙 박스가 제공되는지 또는 자신을 해석 할 수있는 설명 등이 있는지 여부에 따라 사용할 계산 모델에 따라 다릅니다.


2
극도로 제한된 모델로 작업하지 않는 한 이것은 잘못된 것 같습니다. 단일 프로세서는 2에서 실행되는 명령을 인터리브하여 최대 2x + O (1) 속도 저하를 일으킬 수 있습니다. ``블랙 박스 ''에 따르면 인터리빙이 불가능하다는 것을 의미합니까? 그럼에도 불구하고 너무 오래 걸리는 블랙 박스 계산을 종료 할 수있는 경우에도 각 프로세스에 필요한 계산 길이를 반복적으로 추측하여 배가함으로써 두 개의 프로세서를 시뮬레이션 할 수 있습니다.
Aaron Roth

그러나 결과적으로 계산을 종료 할 수 있어야합니다. 나는 당신이 할 수있는 유일한 일은 계산이 끝날 때까지 계산을 실행하는 것입니다.
jkff

이제 나는 당신이 의미하는 바를 이해하지만 그것이 완전하지 않다고 생각합니다. 2로 계산할 수 없습니다. 한 컴퓨터가 계속 작동하고 다른 컴퓨터는 예라고 대답하면 대답은 예입니다. 그러나 NO를 반환하면 어떻게됩니까? 결정적인 방식으로 응답 할 수 없습니다. 시스템이 아직 실행 중이거나 멈추었는지 알 수 없기 때문에 (예 : HALTING 문제).
chazisop
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.