병렬 복잡성 결과를 지속적으로 많은 코어로 축소하는 방법은 무엇입니까?


20

NC 클래스에서 제공하는 "병렬 알고리즘으로 효율적으로 해결됨"이라는 복잡한 이론적 견해를 받아들이는 데 문제가있었습니다 .

NC는 시간에 병렬 알고리즘에 의해 해결 될 수있는 문제의 클래스 을 P ( N ) ∈ O ( N K ) 와 프로세서 C , K ∈ N .O(logc⁡n)p(n)∈O(nk)c,k∈N

PRAM 이라고 가정 할 수 있습니다 .

내 문제는 이것이 "진정한"기계, 즉 한정된 양의 프로세서를 가진 기계에 대해 많이 말하지 않는 것입니다. 이제 우리는 p ∈ N 프로세서 에서 프로세서 알고리즘을 "효율적으로"시뮬레이션 할 수 있다고 "알려져있다"고 들었습니다 .O(nk)p∈N

여기서 "효율적으로"무엇을 의미합니까? 이 민속입니까 아니면 시뮬레이션으로 인한 오버 헤드를 정량화하는 엄격한 정리가 있습니까?

내가 두려워하는 것은 순차적 인 알고리즘과 p 프로세서에서 시뮬레이션 할 때 O ( n k ) 시간 이 걸리는 "효율적인"병렬 알고리즘을 갖는 문제가 있다는 것입니다. 순차 알고리즘이 점진적으로 최적 인 경우이 세분성 수준의 분석에서 예상 할 수 있습니다. 이 경우 우리가 볼 수있는 한 속도 향상은 없습니다. 실제로, 시뮬레이트 된 병렬 알고리즘은 순차적 알고리즘보다 느릴 수있다 . 즉, 나는 O 경계 보다 더 정확한 진술을 찾고 있습니다 (또는 그러한 결과가 없다는 선언).O(nk)pO(nk)O


브렌트 정리?
— cic

당신은 의미합니까 ? 그렇다면 특정 상황에서만 적용 가능하며 런타임을 즉시 번역 할 수 없습니다. 또는 그렇다면 답변을 정교하게 작성하십시오. Tp<Wp+D
— Raphael

NC는 "더 적은 런타임으로 더 많은 하드웨어를 교환 할 수 있습니까?"라는 질문에 대답합니다. 일정한 하드웨어로 자신을 제한하고 싶을 수도 있습니다. 이는 일정한 메모리로 제한하는 것과 비슷하며 일부 문제를 더 잘 모델링합니다. 실용적으로 사용하려면 룩 헤드 가산기, 하드웨어 추가를 참조하십시오. 비트 O ( N ) 에서 수행됩니다. NO(N)
— AProgrammer

답변:


13

프로세서의 수가 상수로 제한되어 있다고 가정하면 실제로 NC에 문제가있는 것은 아닙니다. k 프로세서와 t 병렬 시간 을 갖는 PRAM의 알고리즘 은 O ( kt ) 시간 의 단일 프로세서 RAM으로 시뮬레이션 할 수 있기 때문에 k 가 상수 인 경우 병렬 시간과 순차 시간은 상수 요소 만 다를 수 있습니다 .

그러나 입력 크기가 커짐에 따라 프로세서가 더 많은 컴퓨터를 준비 할 수 있다고 가정하면 NC에 문제가 있다는 것은 프로세서를 더 많이 준비 할 수있는 한 실행 시간이 "매우 짧거나" 입력 크기의 다항. 이 가정이 비현실적이라고 생각하면 무제한 메모리의 가정과 비교하십시오. 실제 컴퓨터에는 공간이 한정되어 있지만 알고리즘 및 복잡성 연구에서 계산 장치에는 항상 일정한 상위가 없다고 가정합니다. 공간에 묶여있다. 실제로 이것은 입력 크기가 커질수록 더 많은 메모리를 가진 컴퓨터를 준비 할 수 있다는 것을 의미합니다. NC는 유사한 상황을 병렬 계산으로 모델링합니다.


1
Okk/2k−1n≤20
— Raphael

4
@Raphael : 특정 문제가 NC에 속하는지 여부에 대한 질문은 질문을 모델링하지 않습니다. 나는 당신의 질문이 흥미롭지 않다고 말하는 것이 아닙니다. 나는 NC가 그것을 모델링하기에 올바른 복잡성 클래스가 아니라고 말하고 있습니다.
— 이토 쓰요시

나는 실제로 그것을 듣고 행복하다; 그러나 사람은 그렇지 않다고 주장합니다. 반드시 NC가 아니라 복잡한 이론 결과가 일반적입니다. 다른 수업과는 어떻습니까?
— Raphael

O(n)O(log⁡n)

@JeffE : 그건 정정이 아닙니다. 필자는 엄밀한 의미를주지 않으면 서“더 많은 프로세서 준비”만 썼습니다 (왜냐하면 그렇게하는 것이 요점을 모호하게 할 것이라고 생각했기 때문입니다).
— 이토 츠요시

10

NC

실제로, 정의상 NC에는 효율적으로 병렬화 할 수없는 많은 문제가 포함되어 있습니다. 일반적인 예는 병렬 이진 검색입니다. 병렬 이진 검색에 경우에도 다항식 시간 복잡성이 있기 때문에 문제가 발생합니다.p=1NC

그러나 더 많은 것이 있습니다.

NC 알고리즘은 다항식 수의 프로세서가있는 병렬 시스템이 다항식 시간으로 적당한 크기의 문제를 해결한다고 가정합니다. 그러나 실제로는 큰 문제 를 해결하기 위해 적당한 크기의 기계 (프로세서 측면에서)를 사용 합니다. 프로세서의 수는 다항식, 심지어는 선형 형인 경향이 있습니다.

PO(nϵ),0<ϵ<1NCnnn<lg3⁡nn≤0.5×109NC

그 중 하나는 "실제로 입력 크기가 커질수록 더 많은 메모리를 가진 컴퓨터를 준비 할 수 있다는 것을 의미합니다. 즉, 실제 컴퓨터를 일반적으로 사용하는 방식입니다. NC는 병렬 계산 ".

나는이 관점에 부분적으로 동의합니다. 우리는 구형 슈퍼 컴퓨터가 폐기 될 때 더 많은 메모리를 가진 새로운 병렬 컴퓨터를 구입합니다. 또한 DRAM 칩은 시간이 덜 걸리고 주요 구성 요소 (프로세서, 메모리, 상호 연결 등)와 관련하여 병렬 컴퓨터의 균형을 맞추기 때문입니다.

pnp

따라서 메모리 확장 가능한 병렬 알고리즘을 설계하는 것이 점점 더 중요 해지고 있습니다. 이는 큰 문제에 실용적이기 때문입니다.

n3n

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.