배경
외부 메모리 또는 DAM 모델은 수행하는 I / O 수 (본질적으로 캐시 누락 수)로 알고리즘 비용을 정의합니다. 이러한 실행 시간은 일반적으로 , 메모리 크기 및 B , 한 번에 메모리로 전송할 수있는 단어 수로 표시됩니다. 때때로 L 과 Z 는 각각 B 와 M에 사용 됩니다.
예를 들어, 정렬에는 의 비용이 필요 하고 순진한 행렬 곱셈에는 Θ ( n 3 / B √ 필요).
이 모델은 또는 M에 대한 지식이없는 "캐시 불명확 한 알고리즘"을 분석하는 데 사용됩니다 . 일반적으로 캐시-불명확 한 알고리즘이 외부 메모리 모델에서 최적의 성능을 발휘하는 것이 목표입니다. 예를 들어 ( Bdaldal, Faderberg 2003에 표시된) 순열 문제에서와 같이 항상 가능한 것은 아닙니다 . 정렬 및 행렬 곱셈에 대한 논의를 포함하여 캐시가 알 수없는 알고리즘에 대한 자세한 설명은 Erik Demaine의이 글을 참조하십시오 .
을 변경 하면 정렬에 로그 속도가 증가하고 행렬 곱셈에 다항식 속도가 증가 함을 알 수 있습니다. (이 결과는 원래 Hong, Kung 1981에서 왔으며 실제로는 캐시 불명확성과 외부 메모리 모델의 공식화보다 앞서 있습니다.)
내 질문은 이것입니다 :
에서 속도가 기하 급수적 인 경우가 있습니까? 주행 시간과 같을 것이다 F ( N , B ) / 2 O ( M ) . 특히이 설명에 맞는 캐시를 모르는 알고리즘 또는 데이터 구조에 관심이 있지만 캐시를 인식하는 알고리즘 / 데이터 구조 또는 가장 잘 알려진 하한에 만족합니다.
N 이 입력 크기이고 명확하게 M > w 이면 단어 크기 것으로 대부분의 모델에서 일반적으로 가정 합니다. 그 다음의 고속화 2 M은 의 다항식 고속화 제공 N을 . 이것은 내가 찾고있는 문제가 존재한다면 다항식이 아니라고 믿습니다. (그렇지 않으면 상수 수에 따라 캐시 크기를 변경하여 일정한 수의 I / O를 얻을 수 있습니다.)