Core Concepts
EDGE 언어는 그래프 알고리즘을 텐서 대수의 언어로 표현하여 엄격하고 간결하며 표현력 있는 수학적 프레임워크를 제공한다.
Abstract
이 논문에서는 EDGE 언어의 설계 목표를 설명하고 Einsums에 추가한 확장 사항을 살펴본다. Einsums 표기법은 그래프 알고리즘을 표현하는 데 유용한 수학적 프레임워크를 제공한다. EDGE는 그래프-행렬 이중성과 Einsum 표기법의 강력함을 활용한다.
EDGE에서는 사용자 정의 데이터 값 및 유형, 텐서 초기화, 사용자 정의 연산자, 그래프 엔터티/텐서 좌표에 대한 계산과 그래프 값/텐서 데이터에 대한 계산의 분리, 반복 알고리즘, 조건부 계산 등을 지원한다.
EDGE 언어를 통해 연구자들은 다양한 그래프 알고리즘과 구현을 더 쉽게 비교할 수 있고, 개발자들은 무엇을 계산할지(Einsum 표기로 기술)와 어떻게 계산할지(하위 수준 세부사항)를 분리할 수 있다. 또한 EDGE 표현식에 대한 대수적 조작을 통해 새로운 알고리즘 변형을 발견할 수 있다.
Stats
그래프 알고리즘은 수많은 대안 알고리즘과 구현이 존재하며, 심지어 잘 해결된 문제에서도 새로운 구현이 계속 발견되고 있다.
그래프 프레임워크는 자연어나 의사코드를 사용하여 구현을 설명하며, 동일한 알고리즘에 대해서도 용어와 프로그램 구조가 다르다.
대부분의 그래프 프레임워크는 단일 백엔드에 최적화된 구현에 초점을 맞추고 있어, 다양한 구현을 탐색하기 어렵다.
Quotes
"그래프 알고리즘을 체계적으로 생각하고 구현 솔루션을 찾는 방법이 있을까?"
"다양한 그래프 프레임워크가 동일한 알고리즘에 대해 서로 다른 용어와 프로그램 구조를 사용하여 설명하고 있어, 다른 구현을 직접 비교하고 반복하며 한 환경에서 다른 환경으로 포팅하기 어렵다."
"그래프 문제 공간을 더 작은 관심사로 세분화할 수 있는 방법이 있을까?"