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


20

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

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

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

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

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

내가 두려워하는 것은 순차적 인 알고리즘과 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/2k1n20
Raphael

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

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

O(n)O(logn)

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

10

NC

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

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

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

PO(nϵ),0<ϵ<1NCnnn<lg3nn0.5×109NC

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

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

pnp

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

n3n

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