정보 사회의 지속적인 발전으로 인해 점점 더 큰 규모의 수치 데이터를 배열 형태로 활용하는 데이터 분석이 활발해 지고 있다. 일부 반복 학습을 진행하는 머신 러닝 알고리즘은 연산 과정에서 중간 결과, 즉 임시 데이터가 많이 생성될 수 있다. 그렇기에, 메모리 크기를 넘어가는 매우 큰 배열 데이터의 아웃 오브 코어 (out-of-core)의 특징을 띠는 수학적 연산이 많이 필요해 지는데, 현재 이를 지원하는 시스템은 부족한 실정이다.
TilePACK은 위에서 언급한 배열 연산을 가능하게 하는 패키지이다. 이 시스템은 여러 번 재사용이 될 같은 데이터를 여러 번 계산하는 비효율성을 막기 위해 태스크 (task) 플랜을 트리가 아닌 유향 비순환 그래프 (DAG) 의 구조로 표현한다. 그러나 DAG를 활용하게 되면 한번 계산된 중간 결과를 재사용하기 위해 해당 데이터가 메모리 상에서 유지되는데, 더 이상 필요하지 않은 경우에도 계속 남아있기 때문에 불필요한 디스크 쓰기와 메모리 공간의 비효율적인 사용으로 이어진다. 이 문제를 해결하기 위해 임시 데이터가 더 이상 필요하지 않음이 확인되는 즉시 폐기하는 메소드를 제안한다.
우리가 제안한 계획은 크게 두 가지 기여를 한다. 필요 없는 임시 데이터를 삭제하면 해당 데이터의 불필요한 디스크 쓰기를 피할 수 있다. 동시에, 다른 데이터를 위한 더 많은 메모리 공간을 확보할 수 있게 한다. 이는 결과적으로 모두 연산에 소요되는 시간을 줄이는 효과를 보인다. 다양한 실험을 통해 우리가 제안한 메소드는 임시 데이터의 크기가 메모리 용량보다 클 때 효과가 나타나고, 입력 데이터의 크기가 메모리 용량보다 작고 임시 데이터가 입력 데이터보다 크기가 클수록 효과는 최대화 됨을 확인하였다.