외부 메모리의 지수 속도 향상


15

배경

외부 메모리 또는 DAM 모델은 수행하는 I / O 수 (본질적으로 캐시 누락 수)로 알고리즘 비용을 정의합니다. 이러한 실행 시간은 일반적으로 , 메모리 크기 및 B , 한 번에 메모리로 전송할 수있는 단어 수로 표시됩니다. 때때로 LZ 는 각각 BM에 사용 됩니다. 미디엄미디엄

예를 들어, 정렬에는 의 비용이 필요 하고 순진한 행렬 곱셈에는 Θ ( n 3 / B √ 필요)Θ(/로그미디엄//). Θ(/미디엄)

이 모델은 또는 M에 대한 지식이없는 "캐시 불명확 한 알고리즘"을 분석하는 데 사용됩니다 . 일반적으로 캐시-불명확 한 알고리즘이 외부 메모리 모델에서 최적의 성능을 발휘하는 것이 목표입니다. 예를 들어 ( Bdaldal, Faderberg 2003에 표시된) 순열 문제에서와 같이 항상 가능한 것은 아닙니다 . 정렬 및 행렬 곱셈에 대한 논의를 포함하여 캐시가 알 수없는 알고리즘에 대한 자세한 설명은 Erik Demaine의이 글을 참조하십시오 .미디엄

을 변경 하면 정렬에 로그 속도가 증가하고 행렬 곱셈에 다항식 속도가 증가 함을 알 수 있습니다. (이 결과는 원래 Hong, Kung 1981에서 왔으며 실제로는 캐시 불명확성과 외부 메모리 모델의 공식화보다 앞서 있습니다.)미디엄

내 질문은 이것입니다 :

에서 속도가 기하 급수적 인 경우가 있습니까? 주행 시간과 같을 것이다 F ( N , B ) / 2 O ( M ) . 특히이 설명에 맞는 캐시를 모르는 알고리즘 또는 데이터 구조에 관심이 있지만 캐시를 인식하는 알고리즘 / 데이터 구조 또는 가장 잘 알려진 하한에 만족합니다.미디엄f(N,B)/2O(M)

N 이 입력 크기이고 명확하게 M > w 이면 단어 크기 것으로 대부분의 모델에서 일반적으로 가정 합니다. 그 다음의 고속화 2 M은 의 다항식 고속화 제공 N을 . 이것은 내가 찾고있는 문제가 존재한다면 다항식이 아니라고 믿습니다. (그렇지 않으면 상수 수에 따라 캐시 크기를 변경하여 일정한 수의 I / O를 얻을 수 있습니다.)w=Ω(logN)NM>w2MN


추측 할 수 있지만 ? Speedup B p o l y l o g ( B ) 로 주어진 경우가 충분합니까? =영형와이영형()
vzn

불행히도 내 목적으로 과 관련이 있어야합니다 . 그래도 참조에 관심이 있습니다. M
SamM

캐시 잊어 버린 알고리즘 에 대한 wikipedia . 이 분야 표기법에는 미묘한 부분이 있습니다. Demaine의 p7 각주는이 영역에서 은 문제 크기이며 때로는 n = N / B 이며 여기서 n 은 블록 수이지만 "소문자 표기법이 선호되지 않는 것 같습니다"라고 말합니다. 입력 크기로 위의 n 과 대체로 N 을 사용 합니다. 적어도 당신의 질문에서 표준화해야한다고 생각하십시오. Nn=N/BnnN
vzn

일관성을 위해 편집했습니다. 입력의 크기이며, N 이 문제에 대한 실행 시간은 일반적으로 정의되어 있기 때문에 단지 행렬 곱셈을 위해 사용되는 N × N 행렬 (즉, N = N 2 )Nnn×nN=n2
SAMM

문헌을 스캔 한 후이 경우를 보지 마십시오. 그런 심판이 없을까요? 어쩌면 그러한 알고리즘이 복잡하여 이론적으로 그러한 속도 향상을 얻기 위해 분석하기가 어려울 수도 있습니다 ...? 아니면 아마도 생각해야 했을까 ...? 아니면 가능하지 않습니까? 메모리에 무작위로 액세스하는 것이 최악의 경우라는 생각이 있습니까? 이 경우 속도 증가가 에서 선형 인 것처럼 보입니다 ...? 또는 메모리에 대한 일부 프랙탈 패턴 액세스가 최악의 경우입니까? 이 연구 라인은 10 년이 조금 넘었습니다.M
vzn

답변:


3

질문을 이해하지 못했습니다. 그러나 에 지수 시간이 필요한 문제가 있다고 가정 하면 MO ( log N ) 인 경우 지수 수의 I / O 연산이 필요하기 때문에 그러한 문제는 요구 사항을 충족시키는 것으로 보입니다 ( 사이클에 들어 가지 않고 다항식 수보다 많은 크기 O ( log N ) 의 동일한 메모리 블록에 "숙박"할 수 없으므로 M = N 인 경우PSPACEMO(logN)O(logN)미디엄= 에는 선형적인 수의 I / O 작업 만 필요합니다. 또한 이러한 문제가 속할 수 없다는 관찰과 관련하여 올바른 경우 M 은 다음과 같은 속도를 유지해야합니다.미디엄 (지수가 많은 수의 연산을 의미하기 때문에). 그러나 속도 향상이 M의 작은 값에만 적용되는 경우직관적으로 이것이 사실이 아니라고 생각합니다. 실제로 크기 O (의 작은 문제를 연결하는 문제를 설계 할 수 있어야한다고 생각하기 때문에Ω()미디엄각각 지수가 필요한 log N )자체의 크기, 및 I / O 동작들의 지수 번호 (시간 (P)의 영형(로그) , 이후 P의 입출력 Y ( N은 ) 이며, 지수의 O ( 로그 N을 ) ). 실제로 나는 T Q B F 와 같은 P S P A C E- 완전한 문제가당신의 조건을 충족한다고 생각합니다.영형와이()영형와이()영형(로그)PSPACETQBF


나는 당신의 주장 중 일부를 따르지 않을까 걱정됩니다. 경우 , 외부 메모리에 문제가 간단하다. 내가 언급했듯이 M = O ( log NM=Ω(N) 는 메모리가 일정한 단어 수를 갖기 때문에 다소 어리 석습니다 (외부 메모리를 일반적으로 검사하는 방법은 가능하지 않음). 지수 게인이 있다고 말한 것을 보았지만 중간 값에 대해서는 아무 말도하지 않습니다. 예를 들어, 외부 메모리의 최적 파티션은 두 용어의 최소값입니다 (실제로 모든 것이 메모리에 맞으면 그렇지 않은 경우와 완전히 다른 일을합니다). 당신은 그것을 배제 할 수 있습니까? M=O(logN)
SamM

1
경우 외부 메모리의 문제가 왜 사소한 지 이해할 수 없습니다 . 경우 M = N / 2 및 알고리즘, 지수 시간이 걸립니다, 당신은 스왑 뒷면에 강제 할 수 있으며 앞으로 메모리의 두 반쪽 배의 지수 번호 (말하자면) 사이. M=Ω(N)M=N/2
user8477

아, 물론 당신은 상수 요소가 중요하다는 것이 옳습니다. 그것은 많은 의미가 있습니다. 이것은 확실히 좋은 출발점입니다.
SamM

중간 값에 대한 논쟁이 없습니다. 매우 피상적 ​​인 수준에서, 일부 역 추적 알고리즘은 검색 트리에서 깊이가 낮은 노드에서 I / O 작업이 필요하기 때문에 메모리 크기에 기하 급수적으로 의존한다고 생각합니다. 이 의존성은 중간 값에 적용됩니다. 이것은 물론 문제의 본질적 복잡성에 대해서는 아무 것도 말하지 않습니다. 또한 인 경우 위에 주어진 pigeonhole (cycling) 인수는 여전히 T ( N ) / 2 M 의 이득을 얻습니다. 여기서 T ( N ) 은 문제의 시간 복잡성입니다.M=ω(logN)T(N)/2MT(N)
user8477

-4

이 질문은 테라 인코 그니 타, 즉 미 탐사 영토 로 향하는 것으로 보인다 . 약간의 사고와 검토 후에 여기에 분명히 어렵지만 미묘한 질문에 대한 몇 가지 생각 / 아이디어가 있기는하지만 지능적이지만 결정적인 것은 아닙니다.

"캐시 모호한 알고리즘의 기본 아이디어는 간단하다. M 을 모르는 외부 메모리 알고리즘을 설계한다 . 그러나이 간단한 아이디어는 놀랍게도 강력한 결과를 가져온다"고 썼다.BM

또한 놀랍게도 미묘한 영향을 미치는 것으로 보입니다. 극도의 행동에 대해이 모델을 분석하기가 어렵고 지금까지 아무도 수행하지 않은 것으로 보입니다. 몇 가지 설문 조사가 있으며 지금까지 전체 분야를 조사하는 것 같습니다. 이 분야가 ~ 10 년 전이라는 점을 감안할 때 이것은 놀라운 일이 아닙니다.

  • 이 모델은 아직 더 엄격한 / 공식 / 이론적 / 일반 / 표준 분석이 가능한 튜링 기계로 변환되지 않은 것으로 보입니다. Big-Oh 표기법의 전체 개념과 상수와 관련이없는 것과 같은 의미와 직관이 캐시 캐시 알고리즘의이 영역에서 반드시 자동으로 전달되는 것은 아닙니다. 예를 들어 모델은 이미 정확한 메모리 크기를 측정하는 상수 으로 작동하는 것 같습니다 . 그것은 지금까지이 분야의 역학에 대한 기본 공리를 가지고 있지 않은 것으로 보인다.B,M

  • TM은 1936 년 Turing에 의해 발명되었고 Hartmanis-Stearns 시간 / 공간 계층 정리 (이 질문에서 다소 암시하는)는 1965 년에 발견되었습니다. 그 점은 ~ 30 이지만 여전히 시간 / 공간 계층 정리는 다소 고려됩니다. 초등 및 학부 수업에서 가르칩니다. 이 모델에는 아직 설정된 계층 구조 정리가없는 것처럼 보이며 그렇게하는 방법은 사소한 문제가 아닙니다. 이 모델은 실제로 표준 Turing 머신 (이미 다소 복잡한 다이나믹을 가지고 있음)보다 더 많은 "이동 부품"을 가지고있는 것처럼 보입니다. 즉, 증강 Turing 머신과 같습니다.

  • 또 다른 아이디어는이 외부 메모리 모델을 어떻게 든 TMs로 변환하는 것인데, 캐시 캐시 알고리즘에 대한 문헌 / 설문 조사에 다시 표시되지 않고 Hartmanis-Stearns 계층 구조 정리가 어떻게 변환 될 수 있는지 볼 수 있습니다. 하나의 테이프는 크기가 'M'이고 다른 테이프는 무한하며, 블록은 'B'크기의 'M'으로 전송되는 2 개의 테이프 TM과 관련이있는 것으로 보입니다. 그러나 여기서의 어려움은 테이프에 순차적으로 액세스하는 Turing 모델보다 RAM 모델에 가깝다는 것입니다. 반면 에 단일 및 다중 테이프 TM 간의 변환 과 관련된 미묘한 문제가 발생할 수 있습니다 .

  • 예를 들어 Kumar의 Cache oblivious algorithms (2003) 에 대한 위대한 조사에서와 같이 문헌에 초점을 맞추는 시뮬레이션으로이 문제를 경험적으로 공격 할 것을 제안 합니다. 캐시 시뮬레이션을위한 많은 프로그램과 논문이 온라인에 있으며, 일부 단순화를 사용하여 많은 양의 코드없이 질문에 대답 할 수 있습니다. 하나의 기본 아이디어는 확률을 기반으로 "가까운"메모리 영역에 액세스하는 확률 알고리즘을 만드는 것입니다. 여기서 "가까이"는 반드시 연속적인 메모리 일 필요는 없지만, 가장 최근에 액세스 한 페이지를 추적하여 임의의 메모리 페이지 (블록)를 선택하는 알고리즘입니다. 권력 법을 제안하다"가장 최근에 액세스 한"목록에서 "가까운"페이지를 선택할 가능성을 결정합니다. 이는 캐시 기반 성능 개선과 관련된 주요 측면 인 것으로 보입니다.

  • 여기에 기본적으로 "코어 메모리"대 디스크 메모리의 측정 값 인 'M'에 기반한 대략적인 주장이 있습니다. 알고리즘의 경우 코어 메모리가 증가함에 따라 알고리즘 속도의 선형 개선에 [무조건적으로] 근접하고 알고리즘 속도의 초 선형 증가를 얻기 위해 "코어 메모리"를 추가하면 거의 속도를 초과하는 것처럼 직관적으로 보입니다. 제한하고 "아무것도없는 것". 그러나이를 증명하기에 충분히 모델을 파악하지 마십시오 (그러나 당국 / 설립자 / 전문가를 포함하여 다른 사람은 없습니다).

  • 이 캐시 불명확 한 알고리즘 문헌은 P 알고리즘에 중점을 두 었으며 지금까지 비 P 알고리즘에 대한 모든 분석에서 어떠한 사례도 보지 못했으며 아마도 존재하지 않을 것입니다. 분석이 너무 어려울 수 있습니다! 이 경우, 장기적으로이 분야에서 극도의 행동에 대한 질문에 대답하지 못할 수 있습니다.

  • 심지어 L에서와 같은 "작은"복잡성 알고리즘 또는이 모델에서 비 P (예 : Expspace 등)와 같은 "큰"알고리즘이 어떻게 작동하는지에 대해서는 직관적으로 명확하지 않거나 아직 전혀 연구되지 않은 것 같습니다. 이 모델은 기본적으로 다른 것처럼 보이지만 시간 및 공간 계층 구조와 얽혀있는 메모리 위치를 측정하고 있습니다.

  • 일부 연구, 결과 및 관련 논문과 함께 "반복 복잡도"라고하는 튜링 기계 복잡도에 대한 다소 모호한 측정이 있습니다. 기본적으로 TM은 특정 시간과 공간을 커버 할 수 있지만 반전은 계산 중 테이프 헤드의 다소 독립적 인 측정입니다. 두 경우 모두 테이프 헤드가 "더 작은"영역에 머무르는 것보다 큰 영역으로 이동하는 경향이 있기 때문에 "높은 반전"은 "높은 메모리 위치"와 관련이있는 것 같습니다.

  • 이 질문과 모델은 Amdahls 법을 생각 나게 하고,이 영역에서 수익 또는 잔고 / 무역 감소와 관련하여 아직 알려지지 않은 유사한 종류의 법률 을 의심합니다. 대략적인 추론 : 캐시의 자각 알고리즘 이론은 유한 "로컬"메모리와 비용 기반 외부 "무한"디스크 사이의 균형 / 무역을보고 있습니다. 이것은 기본적으로 "병렬로"작동하는 두 가지 리소스이며 이들 사이에 어떤 종류의 최적의 상충 관계가있을 수 있습니다.


2
k

TM 모델은 TCS의 기본 모델이며 캐시 계층화 알고리즘이있는 복잡한 계층 구조 (시간 / 공간, P / NP 등의 기본 복잡성 클래스) 사이의 "브리지 thms"는 매핑되지 않은 채 남아 있습니다. 외부 메모리 모델 및 관련 캐시 불명확 한 모델은 기본적으로 실제 성능 특성을 모델링하려고 시도하고 있으며 문헌은 질문에 의해 제기 된 것과 같은 더 큰 이론적 추상화에 관심이 없습니다.
vzn
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.